-
Notifications
You must be signed in to change notification settings - Fork 2
Software Requirements Specification
Name | Date | Reason for Changes |
---|---|---|
Team 3 | 2-6-17 | Draft |
Team 3 | 3-21-17 | Final Draft |
The purpose of this software requirements specification document is to support the development of MealBuddy Android application. The requirements will cover the full scope of the system and shall support features beyond the first release of application.
Requirements are described in this document with “shall” or “should” to depict the priority and importance for the requirement to be implemented in the application. Shall is used for requirements that must be implemented and should is used to indicate a goal. All requirements are written using a natural language.
This document is intended for members of Team 3. It is suggested that this document be read beginning the overview sections and proceed through the sections that are most important to reader.
The MealBuddy application is meant to analyze meal plans in a 1-2 week period and produce a shopping list needed to make all of the meals. The goal is to make people’s life easier who like to create meals plans and want a quick way to start shopping. MealBuddy’s primary focus is to ensure people get the exact shopping list they need.
IEEE std 830-1998 Recommended Practice for Software Requirements Specifications.
This application will be a new product developed for Android mobile devices.
MealBuddy application shall be able to:
- Allow user to enter a meal plan for a 1 or 2 week period
- Produce a shopping list based on the meal plan
- Allow user to have their own account
- Allow user to create more than one shopping plan list
- Allow user to modify their ingredients for meals
MealBuddy application should be able to:
- Show a recipe for each meal in the meal plan
- Allow user to share their meal plan with another user
Use case diagram
User Class diagram
Plan Class diagram
DayPlan Class diagram
Recipe Class diagram
The MealBuddy application will run on Android version Marshmallow 6.0.1 and earlier. The application will be developed using Android Studio version 2.2.3.
MealBuddy application will use APIs such as, Facebook and/or Google to log in to the application. Other APIs or cloud services may be used utilized for database or networking support. Any updates to APIs may impact system during development if used.
There will be no documentation provided with this application, other then SRS.
The application will be dependent on APIs used and version of Android developed for.
UR-1: The app shall be able to keep track of weekly meals and know what ingredients and quantities are needed to produce a shopping list.
UR-2: The app will have a database of meals that shall include a name for the meal, serving size and ingredients along with quantity. The database should include preparation directions.
UR-3: The app shall allow the user to tag meals from the database that they would like to save to their "Favorites" so that they can be recalled without having to search through the database again.
UR-4: The app shall allow the user shall to click/touch the day within a 1 or 2 week range to enter a meal, specify the type of meal and serving size.
UR-5: When the user chooses "Add Meal", the app shall ask to input a name for a new meal, directions, serving size and ingredients along with quantity. This meal is then added to the database where user can select it any anytime. If user enters an ingredient that is not in the database, the system adds it so that other users can choose it when creating their own meals.
UR-6: When user chooses "Shopping List", the app shall display an ingredient shopping list with the ingredients and quantities needed to make the selected meals. The app shall allow the user to indicate which items from the list they already have.
UR-7: The app shall display a vertical chronological calendar view of the meals listed for each day. When clicking on a meal, the app should display list of ingredients and/or directions on how to prepare the meal.
UR-8: The app shall allow the user login to the app, which allows user to save meals and shopping lists, that user can recall later.
UR-9: The app shall allow the user to share a meal plan with another user, giving both users the ability to modify the shared plan and shopping list.
UR-10: The app shall work on all Android mobile devices with appropriate versions.
UR-11: The app shall be able to be responsive to users click/touch.
UR-12: The app shall be able to run until user closes or minimizes.
UR-13: The app shall be able to exchange data between interfaces.
UI-1.1: The app shall allow the user to input/select meals for each day.
UI-1.2: The app shall allow the user to input/select meals for a 7 or 14 day period.
UI-1.3: The app shall allow the user to be able to create shopping list plans.
UI-3.1: The app shall allow the user to click on a star icon next to any meal to indicate it is a favorite meal.
UI-3.2: The app shall provide an option to search all meals when user is adding a meal to their meal plan
UI-3.3: The app shall provide an option to search all tagged/favorite meals when user is adding a meal to their meal plan.
UI-3.4: The app shall allow user to be able to un-tag a favorite meal to remove it from their favorite meals list.
UI-4.1: The app shall allow the user to select one day out of their meal plan and the app shall prompt the user to select breakfast, lunch, or dinner.
UI-4.2: After the user makes selection for meal type, the app shall prompt the user to enter serving size for the meal.
UI-4.3: After the user enters serving size, the app shall prompt the user to select a meal from a pre-populated list.
UI-4.4: If user cannot find a meal from list, the app shall allow user to select “Add Meal to list” option.
UI-4.5: The app shall allow user to be able to remove meals from meal plan.
UI-4.6: The app shall allow the user to be able to copy an existing meal plan.
UI-5.1: The app shall present a searchable list of ingredients that have been previously entered for meals. The backing store will maintain a list of ingredients used in all the previously entered meals.
UI-5.2: The app shall present a suggested ingredient list based on values entered by the user.
UI-6.1: The app shall display a shopping list of all ingredients and quantities for the period of the meal plan.
UI-6.2: The app shall user to be able to indicate if they have any of the ingredients listed.
UI-7.1: The app shall display all days of the week for a 1 or 2 week period.
UI-7.2: The app shall prompt the user to select 1 or 2 weeks for the range of their meal plan.
UI-7.3: The app should allow the user to click on a certain meal within a day and the app shall display an option for the user to “View Ingredients” or “View Recipe”.
UI-7.4: The app shall allow the user to be able to modify the ingredients lists.
UI-7.5: The app should allow the user to be able to modify the recipe.
UI-8.1: Meals and meal plans that are created by a given user shall be available when that user is logged in to the app on any device.
UI-9.1: The app shall allow the user to shall be able to enter other user’s unique ID to indicate who meal plan can be shared with.
UI-9.2: The shall allow user A to be able to enter user B’s unique ID and have edit access to that meal plan if user B granted access.
UI-9.3: The app shall allow user A to be able to enter user B’s unique ID and not have edit access to that meal plan if user B did not grant access.
HI-5.3: The app should allow the user to scan the code of an ingredient with camera in order, to add ingredient to list.
BE-1.4: The app shall use serving size to calculate the amount ingredients of needed for the shopping list.
BE-1.5: The app shall consolidate all the ingredients for each meal into a summary of shopping list for a plan.
BE-2.1: The app shall store the following information about meals that have been entered: * The name of the meal * The serving size of the meal * The ingredients of the meal
BE-2.2: The app shall store meals with a designated category such as “pasta” in such a way that can be searched by user entered keywords.
BE-2.3: The app shall allow the user to access their account from different devices.
BE-3.5: The app shall keep a list of a user’s favorite meals in the database.
BE-4.7: The app shall retrieve a list of meals from the database when user is prompted to select a meal.
BE-4.8: The app shall scale the quantity of the ingredients based on the meals entered in meal plan.
BE-5.4: The app shall differentiate between meals entered by the user and those entered by other users. The app shall present a list of meals that were entered by the user.
BE-5.5: The app shall accept an ingredient that has not been previously entered.
BE-6.3: The app shall iterate over all meals in the meal plan and count all ingredients and quantities.
BE-7.6: The app’s database should store the recipe for each meal.
BE-7.7: The app’s database shall have a default list of ingredients for each meal.
BE-8.2: The app shall identify users by means of a uniquely identifying account. A user can log in to the app.
BE-8.3: The app shall use a user login to identify meals and plans that are created by the user.
BE-8.4: The app shall allow the user to use a guest account.
BE-8.5: The app should associate a locally saved meal plan with a unique user when going from a guest account to registered account.
BE-9.5: The app shall allow the user to have a unique ID for the app.
CI-13.1: The app shall be able to connect to cloud server.
PR-11.1: The app shall be able to respond to users touch within 250 MS of clicking/touching a button.
PR-12.1: The app shall not crash more than once while user is using application.
SAR-5.6: The app shall warn user about meals that may contains ingredients that user may be allergic to.
SER-8.6: The app shall protect user’s password and any sensitive information by encrypting data before storing it database.
Figure 1: Login Screen
Figure 2: Meal Plans
Figure 3: Meal Planner
Figure 4: Display Users Meals
Figure 5: Browse Meals
Figure 6: List of Plans to Covert into Shopping List
Figure 7: Shopping List
App – Means application.
Unique ID – Can refer to user’s email, username or etc.
Team Members
- Stephanie M.
- Tim R.
- Robert F.