-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Old version of the SRS here: https://docs.google.com/document/d/1mmAk5t32UTLhX_8dvx6iRNlINQKe7qjKIkIjuiJq5cU/edit?usp=sharing
1. Introduction
Shakshuka is a recipe planning and meal preparation app that helps users manage their recipes, plan meals, and eat better. Users using their App or the browser interface to upload, download and search for recipes with the data safely stored in the cloud server.
Shakshuka is designed for any user who wants to store his or her recipes online without worrying about losing them later. The App will provide features for adding, deleting, updating and backup. Users can upload and download not just recipes but also photos of their dishes. All users can bookmark their favorite recipes to retrieve them later. The App also allow users to convert between metric and imperial systems. A search feature will also be available to allow users to find recipes either by name or by cuisine types. Any user can sign up for this App with an email account or with their Google or Apple accounts.
User: Anyone signs up with his/her email or Google or Apple account. Tag: A category or categories for types of cuisines, cooking methods, or ingredients. Search: Allows users to search by using tags or keywords.
2. Description
The front-end will be developed using the Flutter SDK for cross platform compatibility. It will provide the users with sign up and login services. Additional stateless and stateful widgets will be provided for users to add, update, tag, upload, and view recipes and images.
Server and Database: The back-end for Shakshuka will be powered by Firebase and Firestore NoSQL database. It will provide adds, updates and deletes for recipes and images. User management will be using Firebase Authentication.
The database for Shakshuka will be Firestore NoSQL database. It will be used to store user account information, recipes, tags and images.
Users will be required to create an account. A user will have the choice of using a personal Google Account or Apple Account, or can register using a personal email account. If the personal email is used, the user will first be required to provide their email, full name, and a password inorder to create a permanent reusable account login. Once the user is logged in, they will be able to browse recipes and execute any feature outlined in section 1.3.
- Login page
- On-Boarding page
- Bottom navigation bar
- Recipe page
- Groceries page
- Meal plan page
- Floating action button
- Search page
ID: FR1
Description: The user will be able to sign with their account be that an apple, google, or email account or register a new account. rationale: necessary to separate user recipes by account id. dependency: N/A
ID: FR2
Description: a navigation bar located at the bottom of the screen enabling users to quickly access different pages of the app. rational: Users need a way to quickly and easily navigate to different parts of the app. dependency: FR1
ID: FR3
Description: A page specific to each user that displays all of their recipes. Includes a method to retrieve recipes from the firestore database and a function that takes in user input from the application and inserting that data into the firestore database. rational: Allow users to view and manage all of their recipes. Users need a way to retrieve their recipes from the cloud in order recover recipes when signing in on a new device and a way to store their recipes in the cloud as a backup. dependency: FR1, FR2
ID: FR4
description: floating action button for users to tap on and create recipes rational: enable users to to create their own recipes dependencies: FR3
ID: FR5
Description: Displays a list of weeks. Each week button will take the user to a screen that displays that week's meal prep plan. rational: dependencies:
ID: FR6
Description: Displays what ingredients the user must buy. rational: dependencies:
ID: FR7
Description: Has a search bar that accepts users' search queries. Displays a grid of recipe tags that will filter results. rational: dependencies:
- Security: Protect user information
- Compatibility: The App will function on all browsers and mobile devices
- Usability: The App will load within 1 second
- Recipe Recommendations: Recipes Page will recommend recipes
- Prototype for UI
- Schema for the database
-
Wire frame
-
Database schema
-
Class Diagram
-
Prototype
-
Sequence Diagram
-
Use Case Diagram