-
Notifications
You must be signed in to change notification settings - Fork 1
Architecture
Coy Burke edited this page Nov 2, 2021
·
5 revisions
This will be an Android Application written in Java using Android Studio, and will use Gradle as a build tool. The application will use the Tasty API to search and fetch recipe information. FireBase will be used for storing user/recipe data, as well as user authentication. The libraries/imports will include:
- org.json
- java.io
- java.net
- java.util
-
ABuonantuono: UI/XML/Resources
-
jmfalzarano: Internal methods for fragments, event handling
-
coydb: firebase, read/write JSON
-
JimiSendrix: firebase, user authentication
An .apk will be made available on the Github Release.
https://github.com/SCCapstone/Purplelimited/wiki/UML-Diagram
The application will use FireBase to host the stored user data, as well as the recipe data. The stored data will follow JSON formatting.
User accounts will be stored with fields for a unique user Id, as well as fields for a first and last name. Each user account will contain arrays for their currently set filters, their on-hand ingredients, saved recipes, and the current list of recipe suggestions that will be displayed on their "Suggestions" page.Recipes will be stored with a unique recipe Id and a title. Each recipe will also include fields for the number of calories, the cook time, the preparation time, and a description. Recipes will include arrays of ingredients and instructions.
The login screen will consist of an ImageView to hold the application logo, EditText views for the username and password combination, and buttons to login or create an account.
Navigation throughout the app will be handled with an AppBarConfiguration in the Main Activity. The navigation bar will include buttons for the Suggestions, Saved Recipes, Search/Filters and On-Hand Ingredients fragments.
The Suggested Recipes fragment will contain a ViewPager that allows swiping through a "carousel" of suggestions, each represented as a CardView with a nested ImageView. Swiping left or right in the ViewPager will allow the user to dismiss or save the current recipe, and clicking on the CardView will take the user to the Expanded Recipe view for the recipe contained on that CardView. The three buttons below offer an alternative way to dismiss, save or view the current recipe.
The Saved Recipes fragment will contain a ListView of all of the user's currently saved recipes. Each list item in the ListView will have an associated ImageView that provides an image preview of the recipe.
The Expanded Recipe fragment will contain an ImageView that holds an image preview of the recipe. Below that there will be a TextView which stores the recipe title as well as a RatingBar that will allow the user to rate the current recipe. Two buttons will allow the user to either save the recipe if it is not already saved, or remove it from their saved list if it is.
The On-Hand Ingredients fragment will contain a ListView of the user's on-hand ingredients. Each item will have an associated checkbox that the user can use to remove or edit an item in the list. A button will allow the user to add an item to the list.
The Search and Filters fragment will contain a SearchView from which the user can perform keyword searches for new recipes. The top-most text view will display "Current Filters." This is followed by three TextViews, each with an associated EditText view. These will contain the filter label and the current value that the user has selected for that filter. The final TextView will display "Ingredients," followed by a ListView of the current ingredient filters that the user has selected.