Social media app for foodies. Sign up, post recipes, join clubs, follow users, and scroll through a curated feed. Made with Java Swing.
- Amanda Li (amansdali) implementing user story 2
- Emilia Ma (emtato) implementing user story 3 (john pork 🐷)
- Janya Singh (JanyaSingh) implementing user story 4
- Spence Saghatelyan (wormonahstring) implementing user story 5; devices: S, Saghatelyan Ani Lilli
- Kate Shen (kat3sjy) implementing user story 6
- Domain: Social Media App for Foodies
- Summary: Munchables is a social media app for foodies everywhere. Users can create an account and log in to a world of all things food! Make posts, join clubs, explore restaurants, connect with like-minded peers, and more!
Doug Ford is a foodie who just heard about this app and wants to create an account.
- Sign up
- Log in
Caf Feine wants to manage her account to personalize it to her needs; in the edit profile page, she changes her display name to her nickname, “Java,” adds a fun bio, a new profile picture, and updates a list of things she is interested in. In the settings page, she changes her account's privacy to private, disables notifications, and changes her password. In the following page, she scrolls through a list of accounts she is following, and a list of accounts she has requested to follow. She enters her friend's username and sends a follow request, which her friend soon accepts. Finally, she returns to her profile to view her new account information displayed.
- Edit Profile and Settings
- Edit profile/save changes
- Change account privacy
- Enable/disable notifications
- Change password
- Delete account
- Logout
- View profile:
- View personal profile
- View other users' profiles
- Manage followers/following related use cases:
- Follow/unfollow
- Send/accept follow request
- Delete follower
John Pork has recently been disconcerted about how much processed food he eats and wants to find healthier but still delicious recipes that suit his tastes. He uses this app to analyze the recipes he picks, to quickly and easily evaluate his choices and balance between flavours, cuisines, and health. The app uses Spoonacular API to analyze the nutritional value of the recipes, which takes in a string input of the recipe, then outputs data such as the recipe’s nutrition in JSON format. John then experiments with the recipes, posting his own alterations.
Use cases:
-
Analyze recipe (API)
-
Browse recipes and posts
-
Interactions with posts:
- Commenting on posts
- Liking posts
- Creating new posts
- saving posts and comments and likes to database
- fetching posts, likes and comments from database
(homepage view, display posts, fetch posts)
(full post view, comment, save comment to database)
(create new post view, save post to database)

Del Icious is new in town and wants to familiarize herself with the restaurants around her, so that she can show her friends when they visit. Meanwhile, Del wants to make sure to find the best restaurant in the city, checking every review and comment relating to the business. During her spare time, Del goes out to check out the restaurants, noting their location on the app, and later writes her own reviews. She has a preference for inexpensive foods, with vegetarian options, to compensate for some of her friends’ needs.
Main Topic: Restaurant list, Map View, Reviews
- Map [Uses Google Places API (New)]
- Find restaurants based on location, preference, and dietary needs [Uses Google Places API (New)]
- Browsing reviews
- Post review
- Saving reviews in the database (works locally)
Given the preferred tags (cuisine) and location of the user, a list of restaurants show in the explore view. If none is provided, the restaurants will still show based on the user's IP.
Associated Use Case:
-
Create review; creates a new review, a lot similar to creating a new post
-
Fetch review; fetches the review from the database [Uses CSC207 Grade APIs]
-
Search restaurant; searches restaurants based on cuisine (ArrayList) and location (String) [Uses Google Places API (New)]
Navigating each component:
Explore View: After logging in, click the explore button (on the bottom, 2nd button from the left)
In the left column, the user can see a list of restaurants based on their location.
Each restaurant has 3 buttons:
-
Click "View Map"
You will see a map panel with an image and description of the restaurant
- Click "Open in Google Maps"
- Click "Open Website"
-
Click "Close"
It goes back to the explore page
-
Click "Website"
It is the same as "View Map" -> "Open Website"
-
Click "Post Review"
You will see an pop-up for user's to fill in a review of the restaurant
- Empty review
- Incomplete review
- Complete review
If the review is empty or incomplete, the review will not submit.
If the review is complete, the review will submit.
Jean Armstrong runs his own French bakery, and wants to interact with other French pastry chefs to talk about French baked goods and meet more people in the industry.
He joins a French bakery club and creates posts in the specific French bakery club feed, where he can make posts tailored to French pastries and users interested in the same topic. He also scrolls through the club feed to view and interact with posts that other members in the club have made.
Main Features:
Create Club: Create a new club with a name, description, profile image, tags
- Select Club Members: Selecting users from database of existing users to join the club from a drop down menu
Delete Club: delete an existing club
Joining/Deleting Club: the user can join or leave an existing club by clicking their respective buttons
Making Announcements and Posts: Users can make an announcement or post through a specific club that will only show up on that specific club's feed. Announcement and general posts are separated into different feeds, while announcement posts will also show up on the general club home page.
Before installing, make sure you have the following:
- Java Development Kit (JDK 11 or higher)
- Apache Maven (3.6.0 or higher)
- Download: https://maven.apache.org/download.cgi
- Installation guide: https://maven.apache.org/install.html
- Git (If cloning the repository)
Cloning From Github:
- Open a terminal
- Enter Commands:
- git clone https://github.com/emtato/csc207-project.git
- cd csc207-project
Downloading as ZIP File:
- Go to the GitHub repository page.
- Click Code → Download ZIP.
- Extract the ZIP file.
- Open a terminal
- Navigate to the extracted folder:
- cd path to extracted folder
- Use Maven to build the project and download dependencies:
- In the terminal run: mvn clean install
- Run the application:
- mvn exec:java -Dexec.mainClass="app.Munchables"
Simply sign up with a new account or log in to an existing one, and explore the app however you'd like.
Fill in the following text fields to sign up, then click on "sign up"

After signing up, click on the "log in" button to proceed to the login page and then type in the same credentials you used to sign up. Then click on "log in" to gain access to the rest of the program.
Log in page:

You did it! Feel free to explore the rest of the app :))
Creative Commons Zero v1.0 Universal
- Feedback is currently not accepted. A form for providing feedback will be provided in the future.
- Contributions are closed for users who are not on the team.









