Please enable JavaScript.
Coggle requires JavaScript to display documents.
IA2 (Client Problem (Requirements (Reduce tuckshop lines by allowing…
IA2
Client Problem
-
-
-
Create an efficient and meaningful app allowing students to view and utilise tuckshop menus and preordering
User Problem
Impacts
Social
A potential social impact of this app in the context of a broader school community is that it will be able to allow students to spend more of their lunches relaxing. Studies have shown that students perform better when well rested and fed and as such if they are able to quickly and easily get their lunch without waiting in lines they will be better fed and better rested for their next classes, improving their performance
Economic
An economic impact of this app for the school is that it the ease of access and ability to purchase will increase and as such will drive more students to buy from the tuckshop. This will increase the revenue produced by the tuckshop and subsequently the school. Allowing for more money to be put into the education of students
Personal
A personal impact of this app is that, similar to the wider social impact of the app, will allow for students to be able to spend more of their lunch times resting. This will allow for them to perform better in their later classes and as such improve their overall grades in school.
-
User Gus
-
-
-
Wants to be able to order from the upper campus tuckshop and exclusively see what is available there
User Mr T
-
-
Would like to be able to have a random meal generated for him to experience different food and have some diversity in his lunch
Developer Problem
User Interface
Screens
Tuckshop Menu Screen:
The menu screen will have a large table view that shows all the different items that are able to be bought at the tuckshop. Each table view cell will have the name, an image, whether its halal and vegetarian friendly, price and size. This will allow the user to make an effective decision quickly about what they would like to have. It also allows vegetarian and Muslim users the ability to quickly identify items that they are able to have
Order History Screen:
The order history screen will show the user previous orders they have made. This will be displayed in a table view to allow for infinite theoretical past orders to be shown to the user. Each table view cell will have an image, the name and the price of the item. It will also have a button that will allow the user to order the selected previous order again allowing for quick ordering if the user has the same thing often
Profile Screen:
The profile screen will show the user all the personal information that is associated with the account. The users wallet balance will be present and a button will allow them to add money to their account balance. A logout button will be in the bottom centre of the screen that will allow the user to logout and be taken to the login screen.
Home Screen:
The home screen will act as a hub for all other major functions of the app, having buttons that connect to all the other features of the app such as the menu screen, settings, profile, and current order screen. This screen will also be accessible from every other screen through a 'return to home' button.
Login Screen:
The login screen will be the first screen the user accesses and will have the app name and the username and password section. These minimal features will direct the user to login without having to be told to. A small hint box will be located underneath the username and password field instructing the user as to what their username should look like
-
Usability Principles
All interactable features of the app will be clearly distinguished from the background with a unique colour as to allow for the user to easily define buttons and text fields as interactable
A consistent and minimalistic colour scheme will be used throughout the app to make it more accessible as it will not overload the user with information and will be aesthetically pleasing to users
The users personal information and information required to access their ‘wallet’ will be encrypted and authorised before allowing a user to access their account. Measures will be taken against cyber attacks focusing on stealing a users money
-
-
-
Images must be used, referenced, and attributed in accordance to relevant copyright laws
-
Coded Component
Coding Environment
-
The database will be able to modified through an admin login for the app so as that it can be updated if prices and other information about items is added or removed
The Xcode development environment will be used to create this app for the latest IOS and ideally an iPhone as most people have access to an iPhone and it is more practical than an iPad for ordering food on the go
The database will be created as a relational schema so as that multiple tables can be created at connected through primary and foreign keys so as that it can be more effectively normalised
Key Algorithms
Random Meal Generator
The random meal generator will generate a random meal by first creating 3 random integers. These will be used to select a main meal, snack and drink from the Menu table in the tuckshop database. The total price and other options about the food will also be able to be changed by the user. This will be impleneted by using a WHILE statement and a 'brute force' method and generating meals until they meet the users requirements
-
Order History
The order history process will be made by storing all previous order ID's from the users previous orders. These will be stored in a separate table in the database through the use of the APPEND function. These will than be retrieved from the database through the WHERE function as the user will be shown all previous orders associated with their userID
Ordering
The user will be able to press an 'add to cart' button that will add the item they have selected to their cart. This will be done by appending the menuID of the selected item and appending it to the orderHistory table with the corresponding orderID
Menu Display
The menu will be displayed on a table view, this will allow for the user to scroll and see all information about each item. The data will be retrieved from the database through the SELECT * FROM function as it is collecting every menu item from the menu table as well as all information associated with each item to display
Data
Database
Modifications
In order to normalise the data to allow for it to be used effectively in a database several things must be done including; creating seperate columns for the sizes of meals and drinks as they can be several different data types, putting the extra information of a the item on a different table to the description and price of the item, these being halal, allergy and veg info.
The data will be normalised using the three normal forms. This will allow the data to be formed into a relational schema database and be used in the project.
Datasets
Menu.csv
The dataset given provides a list of menu items with a MenuID, Category, Desc, Price, Halal, Allergy info, and Veg columns. This gives enough information to create a detailed description of a food item to the user before they buy it.
Additional information that will be gathered to add to the dataset is images of the food/drinks. This will help the user to understand what they are purchasing.
Additional information that will be gathered to add to the dataset will be information about students including their: student ID, family name, given name, wallet amount, and email. This will allow for the student to login to their school account and access their school wallet balance.