Deliverable 4: MVP Documentation - alejoriosm04/F2F GitHub Wiki

Table of Contents


1. Project requirements

Requirement identifier Requirement Developed
FR01 If the user wants to add ingredients to the request, the web app shall allow writing the ingredients if the list of items in their Kitchen is nonempty. Yes
FR02 After adding all ingredients, the web app should allow the user to write the request in a text box element. Yes
FR03 If the user wants to manage an ingredient, the web app shall provide the ability to edit their Kitchen. Yes
FR04 When the Kitchen is updated, the system should save the timestamp in the database. Yes
FR05 As soon as the request is sent the web app shall be able to display from the LLM API answer the recipe if the ingredients were actually edible Yes
FR06 When the user wants a new recipe, the web app could allow choosing the kind of food to eat or cook. Yes
FR07 If a new user wants to use the platform, the web app shall require signing up with email and password. Yes
FR08 Upon entering, the authentication system should allow login associated with their email. Yes
FR09 If the user wants to see statistics, the web app shall provide custom reports if there is data in the statistics section. Yes
FR10 If the user wants to connect on different devices, the web app could be accessed on any modern cell phone or computer. Yes
FR11 When a user enters the web application, the web app should remind the user to update their Kitchen information. Yes
FR13 If the user wants to see their recipes history, the web app should provide access if there is data in their profile. Yes
FR14 When a recipe is generated the web app shall be able to display from the LLM API answer the recipe image Yes
FR15 When the user wants a new recipe, the web app could allow indicating the number of people to cook for. Yes
FR16 When the user wants to generate a new report, the web app should provide custom reports if the last report was generated at least 15 days before. Yes
FR17 Upon entering, the authentication system should authorize access for allowed users only. Yes
FR18 Before sending the request to an LLM API the system shall count all daily requests sent by the user No
FR19 When a recipe is generated, the web app shall allow the user to mark the recipe as favourite. No
FR20 If the user wants to unmark a favourite recipe, the web app shall allow this if the favourites list is not empty. No
FR21 Upon entering, the web app shall allow the user to see the favourites list in the favourites section. No
FR22 While the application is loading, the web app should display an animation of a food item. No

2. Infographic

Infographic

3. System design

3.1. Deployment View

Deployment diagram

3.2. Implementation View

Component diagram

3.3. Data Model

Data diagram

4. Usability analysis

Comment/Observation Possible improvement actions Improvement implementation (Yes/No)
"I can't use the app since I don't speak English" Add translation strings for Spanish No
"I don't understand what to do when I register. There are no clear instructions on where I am and what is the main thing in the application." Add clearer instructions at the prompt, add a call to action that invites the user to enter something and add the home page to the top navigation bar. Yes
"I can't add exact quantities of what I have" Add the possibility to easily manage the quantities of the ingredients Yes
"If I add things that are not food to the kitchen, the system uses them in the recipe, without having any control over whether it is possible to use them as food." Configure the model to be more accurate with the ingredients and verify that it is food or not. To avoid errors when generating recipes No
"In some cases, it may not be obvious that you need to click on the logo on the page to return to the home page and generate recipes" Add a "Generate Recipe" section to the main menu for similar redirection, in addition to the option of clicking the logo to be redirected to the home page. Yes
"If the ingredient list is already too long, I can't easily see the ingredient I just added to my kitchen because it's at the end" Sort the ingredients in descending order by time. Yes

5. Future work

  • A more optimal pre-trained model of recipe generation can be implemented within the application, through more accurate information and reference. Allowing clearer results and avoiding errors in the generation of confusing results.
  • Allow users to mark recipes or ingredients as favorites. Optimizing recipe history management and continuous updating of the kitchen.
  • Greatly improve the user experience and user interface to provide a unique and branded experience. Offering more information before using the application on its operation, scope, opinions, history, etc...
  • More advanced and accurate analytics, allowing to understand behaviors that offer future information about the user in a predictive way. Through the design of advanced behavioral algorithms.
  • Translation into different languages. Allowing to make the product more scalable at a global level and expanding its image.
  • Use the timestamp of the last time the user modified the kitchen to schedule updates regularly at a fixed interval.

6. Repository

  1. requirements.txt.

    Generated with the pipreqs package (which only includes packages that have been imported in the project).

  2. README.md with installation instructions.

7. Video

https://www.youtube.com/watch?v=tCy5E_lSM6E

8. Project management

8.1. Backlog

Sprint backlog: https://github.com/users/alejoriosm04/projects/1/views/3?filterQuery=iteration%3A%22Iteration+4%22

8.2. Weekly Meetings

  1. Weekly 12: 2024‐04‐23
  2. Weekly 13: 2024‐05‐02
  3. Weekly 14: 2024‐05‐07
  4. Weekly 15: 2024‐05‐14