7052CEM-Coursework
Mobile Platforms and Application Development Coursework
Page Layouts and Views Used:
StackLayout
GridLayout
RelativeLayout
PancakeView
ScrollView
CollectionView
ListView
Animations Used:
Activity Indicator
Loading Pages
Tab swiping
Swiping shopping list items away
Scaling animation
Translation animation
Fade Animtation
Database Use (in below definitions, italics denotes a Primary Key):
Remote Database using Google Firebase - stores:
- User table:
- User email
- User Id
- Grocy Host name
- Grocy Port number
- Grocy API key
- Mealplan:
- Meal plan owner's email
- List of recipe ids for each day of the week
- Recipe:
- Recipe Owner's email
- Recipe ID
- Recipe name
- List of ingredients:
- Ingredient name
- Amount
- Measurement name
- Shopping List:
- Shopping list owner's email
- Shopping list items:
- Item name
- Amount
- Measurement name
Local database using SQLite - stores:
- User table:
- User email
- User ID
- Grocy Host name
- Grocy Port Number
- Grocy API Key
Preferences - used to store the user's email when logged in, to be able to tell if a user is logged in or not.
API Usage:
Grocy - Used to allow the user to integrate their Grocy server with the app. This integration allows items that the user already has to be automatically taken off their shopping list. In order to be able to test Grocy, a server had to be set up and configured to run the tool.For this Docker images were used and the server was deployed using DigitalOcean.
Spoonacular - Used to allow the user to get ingredients for recipes by supplying a link to the recipe, so that if they have a recipe they want to use, they dont have to input all the ingredients themselves.
Wolfram Alpha - Used for converting units of measurement, picked because it allowed for non-standard conversions using their sophisticated approach, such as being able to make the query "1 small carrot in grams", whereas other APIs could only convert units of measure to other units of measure.
Google Firebase - Used to allow for a remote database so that a user can access their data from different devices if necessary.
Google+ Login API - Used to allow the user to login with their Google+ account so that their information could be synced across multiple devices using the aforementioned firebase.