Web Applications Group Project
Uri Kreindler, Alec Morrison, Jonny Zoccola
Universidad Carlos III de Madrid
Fall 2023
A basic web application for viewing and creating recipes. Detailed functionality further below.
- Clone the repository
- Install the requirements with
pip install -r requirements.txt - Modify
__init__.pyonl ine 21 to point to your chosen database - If desired, run
setup.pyandpopulate_db.pyto generate some test data - Run the app with
flask --app=cooking run
- User accounts
- Account Creation
- Login
- Logout
- Error handling
- Cryptographically secure password storage
- Detailed user profile page
- Recipe Creation
- Logged in users can create new recipes
- Recipes have a title, description, list of quantified ingredients, list of steps, serving size, cook time, category, and images (optional)
- Reading Recipes
- Recipes can be viewed by anyone
- Recipes can be filtered by category
- Recipes can be sorted by rating, number of reviews, and recency
- Global searchbar allows for searching based on title, description, category, creator, and ingredients
- Rating Recipes
- Logged in users can rate recipes
- Users can only rate a recipe once
- Users have the option to leave a written review when rating
- Users have the option to include an image with their review
- Users can edit their existing reviews
- Users can delete their existing reviews
- Bookmarking Recipes
- Logged in users can bookmark recipes
- Users can remove a recipe from their bookmarks
- Users can view their bookmarked recipes on their profile page
- Uploading Photos
- Logged in users can upload photos, either when creating a recipe or when leaving a review
- Users can view their uploaded photos on their profile page
- Recipe Filtering
- Recipes can be filtered by category
- Category is selected when creating a recipe
- Can be used in conjunction with sorting
- Recipe Sorting
- Recipes can be sorted by rating, number of reviews, and recency
- Can be used in conjunction with filtering
- Global Searchbar
- Allows for searching based on title, description, category, creator, and ingredients
- Can be used in conjunction with filtering and sorting
- Written Reviews
- Users have the option to leave a written review when rating
- Users can edit their existing reviews
- Users can delete their existing reviews
- Login/Signup Overlay
- Login and signup are handled in a modal overlay using JavaScript
- JavaScript for Recipe Creation
- Used to dynamically add and remove ingredients and steps
- Brilliant UI
- The UI is beautiful and intuitive
- The UI is responsive
- The UI is consistent
- Ability to Upload Photos During Recipe Creation
- Optional field when creating a recipe
