Inspiration
People often like to share aesthetic photos of their food on their Instagram posts and stories. As lovers of food, we wanted a site geared strictly towards food photos. So, we decided to make one!
What it does
The home page displays the most recent posts from all the users on the site. Press on any photo to see the user who posted it, along with the post's title and caption. Usernames link to the user's profile page, where all of their posts can be viewed, along with their post/follower/following counts. Users can register and log in using the buttons on the top bar. On their own profile page, they can access a button to create a new post. When viewing other profile pages, users can follow or unfollow other people. Who a user follows and is followed by can be viewed by pressing on the following and follower counts.
How we built it
We used Flask to build our site. On the backend, we used Pymongo to make a MongoDB database. The frontend was built with Pug templating, along with CSS and JS, to create the pages of the site. For deployment, we used Docker to containerize our application, with an nginx-certbot container for reverse-proxy, and monitored the containers using cAdvisor. We deployed the site on an AWS EC2 instance. Automation was another backbone of this project, as we added CI/CD integration through Github Actions. Additionally, we added tests with pytest to make sure our routes and functions worked correctly.
Challenges we ran into
There were a lot of features that we wanted to implement, but we realized that given the time constraints it would be infeasible to do them all. Some of these challenges were about the following features: implementing search bar functionality and getting the icon to appear on the website tab as a favicon. We had to decide what features would be the most important for the basic functionality of the site.
Accomplishments that we're proud of
We're really proud of the product we created! It has all the basic features of a photo sharing site and looks nice on both computer and phone screens.
What we learned
Pug was a technology that was unfamiliar to most of us, so we were able to learn about how to use it in for templating and in conjunction with a Flask app. We also created a lot of modals to fit with the design of the site, which was a new experience that involved using JS with our Pug templates.
What's next for Foodstagram
It would be cool to personalize the home page for different users based on who they follow. We also want to add functions for editing and deleting posts, as well as for liking and commenting on posts. Additionally, we'd like to add a search bar function to the site so users have more ability to find different posts.


Log in or sign up for Devpost to join the conversation.