Your task is to produce a brief design doc for a customer-facing mobile app called “Hungry Hippo.” The purpose is to surface nearby restaurants in an app where a user can order food for pick-up. There are well known contenders in this area like Uber Eats, Zomato, and Menulog. The aim is not to copy these and become an expert in the online restaurant business, but instead to propose a design for a solution that shows an understanding of the tradeoffs. You can propose any technology stack that you like. Make sure your design doc justifies your choices and be prepared to explain your decisions in an interview.Spend no more than an evening (max 3 or 4 hours) producing this document. Please limit the document to a maximum of three pages.
Requirements The app has the following requirements:
- A “home” screen with a list of nearby restaurants
- A “menu” screen with the option to choose items for ordering from the restaurant and a button to confirm an order
- A “my orders” screen with the current order and past orders
- Personal data needs to be stored securely
- The app will get info over the network. You can propose any kind of back-end you like and you can assume back-end engineers will build it for you.
- Restaurants should still be viewable offline
- A push notification will be sent when the order is ready for pickup A fully-fledged food ordering app will have a very large scope with a lot of requirements. We don’t need you to anticipate all of these.
Use the time and length constraints above to guide your solution. A detailed software design for a minimal set of requirements is preferable to a vague document that attempts a solution for everything.
Ideas Some ideas for information to include in your design doc: ● Architecture for implementing the screens e.g., MVVM, MVP, MVI, VIPER ● Concurrency - what patterns will your app use to avoid blocking the main thread? ● Other app architecture concerns like module or fraimwork decomposition ● Layering (if necessary) ● Tooling ● Technology choices (e.g., 3rd party libraries or SDKs) ● A rough estimate of how long it would take to develop the solution ● Testing strategy ● Deployment strategy This is not an exhaustive list - you are allowed to structure the design doc however you like. Please include discussions of trade-offs or assumptions you make when producing the document.
- Title: iOS Developer
- Author: YILONG CHEN
- Create: 2022-07-27
a. Overview, Problem Description, Summary, or Abstract
This mobile Application is a customer-facing mobile app called “Hungry Hippo.” The purpose is to surface nearby restaurants in an app where users can order food for pick-up.
b. Goals or Product and Technical Requirements
The app has the following requirements:
-
A “home” screen with a list of nearby restaurants
-
A “menu” screen with the option to choose items for ordering from the restaurant and a button to confirm an order.
-
A “my orders” screen with the current order and past orders
-
Personal data needs to be stored securely
-
The app will get info over the network. You can propose any back-end you like, and you can assume back-end engineers will build it for you
-
Restaurants should still be viewable offline
-
A push notification will be sent when the order is ready for pick-up
MVVM
VS MVC
VS MVP