Deliverable 3: MVP - alejoriosm04/F2F GitHub Wiki
Table of Contents
1. Architecture & Data
1.1. Deployment Diagram
What changed
- Added the gunicorn and nginx to Programs.
- Added "dall-e-2" model to API node along gpt-3.5-turbo.
- Specified the PostgreSQL version.
- Specified operating version system (was "Ubuntu Jammy", now is "Ubuntu 22.04.1").
- Switched from an AWS EC2 instance to an Oracle Cloud instance.
- Updated libraries:
- Removed pandas and pillow.
- Specified matplotlib version.
- Added dotenv, openai, and django-bootstrap.
- Changed "ChatGPT 3.5" to "gpt-3.5-turbo".
- Downgraded to Python 3.10.12 from Python 3.11.1.
1.2. Component Diagram
Architectural overview
We use an MVC architecture where each component is, for the most part, directly mapped to a Django "app".
Module descriptions
- Authentication: Handles the sign-up, login, logout, and session.
- Recipes: Generates and displays recipes and their corresponding images.
- Kitchen: Creates ingredients and reminds user to update it.
- Statistics: Generates and shows a report.
- User: Handles editing and deleting accounts.
What changed
No changes.
1.3. Data Model
What changed
- Fixed the relationship between
Ingredient.user_id
andUser.id
(wasUser.username
). - Removed the fields
first_name
,last_name
,is_staff
,is_active
,is_superuser
,date_joined
from the User table as they were not that important to represent our system, but they still exist as fields in Django's default User model. - Removed the fields
unit_count
andmeasurement_unit
from the Ingredient table.
Data dictionary
User
# | Column | Data type | Description |
---|---|---|---|
1 | id | int | Unique id. |
2 | varchar | Used for log-in. | |
3 | password | hash | Log-in credentials. Not stored as plain-text. |
4 | last_login | date | Last time the user interacted with the system. |
Kitchen
# | Column | Data type | Description |
---|---|---|---|
1 | user_id | int | Id of the user. |
2 | last_modified_at | timestamp | Unix time when the user last modified any ingredients. |
Recipe
# | Column | Data type | Description |
---|---|---|---|
1 | id | int | Unique id. |
2 | user_id | int | Id of the user for whom the recipe was generated. |
3 | title | varchar | Title generated by the LLM. |
4 | description | varchar | Steps of the recipe generated by the LLM. |
5 | prompt | varchar | Prompt sent to the LLM to generate the recipe |
6 | generated_at | timestamp | Unix time when the recipe was generated. |
7 | is_favorite | boolean | Whether the user marked the recipe as favorite. |
Ingredient
# | Column | Data type | Description |
---|---|---|---|
1 | id | int | Unique id. |
2 | user_id | int | Id of the user that created the ingredient. |
3 | name | varchar | Name of the ingredient (user inputted). |
RecipeHadIngredient
# | Column | Data type | Description |
---|---|---|---|
1 | recipe_id | int | Id of a generated recipe. |
2 | ingredient_name | varchar | Name of the ingredient at the time the recipe was generated. |
2. Corporate Image
Color palette
A complementary .ase
file can be downloaded from
here.
Fonts
Glory and Montserrat are both licensed under the Open Font License.
Logo
Generated with Microsoft Image Creator.
Slogan
We want to emphasize that our app uses the ingredients you already have so that they don't go to waste.
Screenshots from application
Main screen
Kitchen
Recipe
3. Repository
-
Generated with the
pipreqs
package (which only includes packages that have been imported in the project). -
README.md
with installation instructions.
4. Video
http://www.youtube.com/watch?v=iu1o0oV7v0w
5. Project management
5.1. Backlog
Sprint backlog: https://github.com/users/alejoriosm04/projects/1/views/3?filterQuery=iteration%3A%22Iteration+3%22