JWang2003/FoodOrderApp
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
## Hungr - Food Ordering App by Team 15 (Richmond Secondary School) ## General Information Our goal was to create a food ordering app that minimized choice paralysis by displaying information in a way that is easy to digest. We also wanted to make it faster for users to order their favourite food items by saving them with our "Playlist" feature. Our app currently contains 5 categories, 16 restaurants, and 39 different food items. Restaurant data and food data is stored with a SQL database. Here is a link to a spreadsheet with all our data. https://docs.google.com/spreadsheets/d/1nJZMTQx7NHYwNTIhn0NGCqcfiRjB-YCsvgqoMQ_yIpM/edit?usp=sharing We could have added more data, but we just wanted to prove that we have the infrastructure in place to easily add more restaurants and dishes. ## Notes: * When running the app, some dishes didn't have an image. In those cases, a default image "Hungr" replaces it. * The emulator we used has a resolution of 1080 x 1920 420dpi. Buttons may be misaligned if your emulator resolution does not match this. We do not know how to prevent this. ## Database structure To view the database file go to food-order/app/src/main/assets/databases/FoodApp.db then download and open with an application such as DB Browser for SQLite. Our database file has 19 tables as follows: * A table listing all the restaurants with the following datapoints: Category | Restaurant Name | Address | $/$$/$$$ | Stars Rating | Delivery Fee | Yelp Page URL * Each restaurant has its own table containing its menu - for most restaurants we only added 2 dishes: Food Name | Price | Image | Food Details * A table to hold dishes added to cart: Quantity | Food Name | Food Image | Food Price | Food Details * A table to hold dishes saved to a playlist: Name of Playlist | Quantity | Food Name | Food Image | Food Price | Food Details ## Pages in the app The app has 7 pages/activities: * Home page to choose a category/search for a restaurant. The is also a SlidingUpPanelLayout to display the user's saved playlists. (Our playlist feature allows the user to save their favourite foods and order them quickly, we should've called it something else, but the name "playlist" stuck) * Page to view restaurants after a category/search has been made. The user can also use the searchview to filter restaurants. * Page to view a restaurant's menu. This has a Yelp button that opens a webview fragment displaying the restaurant's Yelp page. * Page to view a selected a dish. Here it can be added to the cart and/or saved to their playlist. * Page to view all user playlists * Page to edit a specific playlist and order specific dishes, or delete them from the playlist * Checkout page which displays all food items and the total price ## Things we learned for this project * Make SQL database, add data, modify data, and access data * Singletons * toString() * Bitmap * Put buttons on recyclerviews * Webview * Fragments * FrameLayout * SlidingUpPanelLayout * NestedScrollView * RatingBar * Spinner * AlertDialog * Writing a README ## Known issues * Selecting the searchview in the home page slides up the playlists tab which can be dragged up to block the screen. * Playlist tab on homepage has rounded corners, but the rectangle it is in can still be seen. * When use the search feature, sometimes a restaurant is shown twice. * Webview is slow to load * Yelp WebView denies access when trying to click on links inside it * In previous versions, webview has completely denied access, it does not happen to us anymore, but might still exist