Recipe Book Application
This is the first major release of the Recipe Book Application as part of Milestone #1 for CS 361 - Software Engineering 1.
This release includes the following features:
- Login & Sign-up
- Adding a Recipe into the Recipe Book
- Editing a Recipe in the Recipe Book
- Viewing a Recipe in the Recipe Book
- Deleting a Recipe from the Recipe Book
- Logout
This release also covers the following User Stories as mentioned in my Milestone #1 Sprint #1 Document:
**User Story 1: Login
User Story 1: “As a … I want to …. so that …” format:
As a user, I want to be able to log into the application so that I am able to refer to the recipes that I have stored in the application which references only the recipes I have included in the recipe book associated with myself.
User Story 2: Adding a new recipe
User Story 2: “As a … I want to …. so that …” format:
As a user, I want to be able to add a new recipe to the existing list of recipes in my recipe book, so that I can access the new recipes that I try today at a later date the next time I log in.
User Story 3: Viewing a Recipe’s Details
User Story 3: “As a … I want to …. so that …” format:
As a user, I want to be able to view the details of a specific recipe in my recipe book, including the ingredients required for the recipe, the steps to prepare the recipe, and a YouTube Tutorial video of the recipe, so that I am able to read and access the information prior to preparing a meal using the information stored in the recipe book.
User Story 4: Deleting a Recipe**
User Story 4: “As a … I want to …. so that …” format:
As a user, I want to be able to delete a recipe that is currently in my recipe book, so that I am able to remove recipes that I no longer intend to refer to or use.
User Story 8: Rating Recipes
User Story 8: “As a … I want to … so that …” format:
As a user, I want to be able to rate the recipes in my recipe book from 0 to 5 stars, so that I am easily able to identify which recipes I like, and which recipes I don’t.
User Story 10: Logout
User Story 10: “As a … I want to … so that …” format:
As a user, I want to be able to logout of the app so that my recipes are stored and my information is no longer accessible.
In addition, the following Inclusivity Heuristics are addressed:
IH#1 - Explain (to Users) the benefits of using new and existing features.
On the Login page and Sign up page, there are taglines / messages to the user which describes the main purpose of the application and the features of the application (i.e. building a recipe collection). "Sign up to start building a recipe collection" and "Login to access your recipe collection" informs the user of the benefits and purpose of the application before they begin using it.
IH#2 - Explain (to Users) the cost of new and existing features.
When the user attempts to delete a recipe in the recipe book, a modal pops up and the user is warned that deleting the recipe will result if the recipe data being lost from the platform and they will need to add it back after deletion if they’d like the recipe back. Additionally, the user is asked to confirm if they would like to logout of the platform and told they will need to log back in to gain access to the recipes again.
IH#3 - Let users gather as much information as they want, and no more than they want.
When the user first sees the main Recipe Homepage, the user is greeted with the recipe, a picture of the recipe, a title, cooking time, serving size, and rating. However, once the user clicks into the recipe, they are able to see much more information including ingredients, instructions, a video, etc.
IH#4 - Keep familiar features available.
After signing up and logging into the application, the user is able to see the same navigation bar across the entire app, keeping familiar features available like the feature to go home, add a recipe, and logout.
IH#5 - Make undo / redo and backtracking available.
Once a recipe is added, there are options to either delete the recipe or edit the recipe in order to undo unintentional mistakes in the recipe or unintentional mistakes in adding the recipe to the recipe book at all. Additionally, there is both login and logout functionality on the website which allows users to logout if they didn't want to login, or login if they unintentionally logged out.
IH#6 - Provide and explicit path through the Task.
When a user would like to add a new recipe to their recipe book, there is a clear path to follow to complete the task, which includes clicking the Add Recipe button and filling out the Add Recipe web form with all relevant information.
IH#7 - Provide ways to try out different approaches.
When a user is adding a new recipe to their recipe book, they are able to either upload a photo of their own for the recipe or link an external photo from the internet. Additionally, the user can either link a YouTube video, or upload a video of their own for the particular recipe in question.
IH#8 - Encourage tinkerers to tinker mindfully.
When a user clicks on the Edit button of a particular recipe, they are prompted to ensure they actually do mean to edit the Recipe, which allows tinkerers to tinker mindfully and not disturb data that would otherwise be correct.
For User Story 1, the following functional requirements are met:
Given a user is on the welcome / login page, when the user inputs their username and correct password, they will then be redirected to their recipes page.
Given a user is on the welcome / login page, when the user inputs wrong credentials, they will then be notified that they have provided the wrong credentials and prompted to try again.
For User Story 1 the following quality attributes / non-functional requirements are met:
Secureability: Securability is defined as the characteristics or degree of being securable, especially the ability of a system to provide different levels of security access. With respect to this user story, a user will must only be able to access their recipe book when they have authenticated and logged in using the correct credentials which match 100% to what is stored for their user profile within the app’s databases.
Responsiveness: Responsiveness as a concept of computer science refers to the specific ability for a system or functionality unit to complete assigned tasks within a given time. In the context of this application, it is important that the user is able to be authenticated and log into the application within 10 seconds given that they have a stable internet connection of entering their credentials, as any longer than this would make for a bad user experience.
For User Story 2, the following functional requirements are met:
Given a user clicks on the add recipe button, when they enter the recipe information and associated tutorial video link and click submit, then the recipe is added to the website and the recipe is visible on their recipes main page.
For User Story 2, the following quality attributes / non-functional requirements are met:
Configurability: Configurability is the ability of a system, device, or software to be arranged, organized, or set up to meet specific requirements without altering its core structure. That is, the user will be able to configure the recipe as much as they would like regardless of tutorial video link, ingredients, and preparation steps, without taking away or altering the core functionality of the web application of storing recipes in a recipe book, and maintaining 100% of the applications core functionality.
For User Story 3, the following functional requirements are met:
Given that a user is on the main recipes page, when the user clicks on a recipe that has already been added to the recipe book, then the user of greeted with either a modal pop-up, or redirected to a page which displays the ingredients of the recipe, a tutorial video of the recipe, and the preparation steps.
For User Story 3, the following quality attributes / non-functional requirements are met:
Accuracy: Accuracy and precision are measures of observable error, accuracy is how close a given set of measurements are to their true value and precision is how close the measurements are to each other. In the contacts of this user story, the accuracy of a recipe including the ingredients listed and instructions listed must be 100% accurate to what is shown in the linked video associated with the recipe and material referenced by the recipe.
This application offers value to users by allowing users to build a robust and efficient online recipe book.
Full Changelog: https://github.com/Raj-Ragunath/CS-361-Project/commits/V1.0.0