The Adludio Restaurant Concept!
Greetings! As a potential new-hire we want to put you in charge of your very own restaurant. What will you be serving? We don't mind, as long as it's tasty (and completely digital).
The Challenge
Your challenge is to build a Full Stack Web app that lets the user order food and drinks from a menu (of your choice), and notifies them when it's 'ready' for pickup.
How it behaves:
-
The menu have three sections, foods, drinks and desserts. At least three items in each, priced differently. We expect you to use the information in the MENU.md file, and created a menu.json. Remember to choose three desserts.
-
The menu comes with a set of deals, make sure to check out the MENU.md file before you get started.
-
The app must store the menu, order and any stateful information in a database (MySQL).
-
The app must notify the user when the food is ready for pickup (My recommendation is that you set a wait/timeout to simulate the "chef").
-
The app must use styling (even if it's not pretty). Extra points for Material UI.
-
When browser's refreshed, the session must remain intact - the user and order details persist.
-
The app must have some tests (only enough so we understand how you approach testing)
-
The app must use Typescript, extra points if properly typed.
The technology
We have already set up the repo to use these technologies:
- Docker + Docker-compose
- Node + Express + Typescript
- React (using Create React App, you may switch it out if you wish) + Typescript
- MySQL
Questions
When you give us your task back, we expect you to answer these questions:
- What would you improve with your code?
- How would you scale your code for more users?
- What general patterns did you use to structure your code?
- Is there anything you think we should change about this test?
We will use them when we read your code, to try and understand your thought process, so that even if it's not perfect (or even done), we are able to give you a fair chance! :)
How to get started
- Clone this repository
- Checkout a new branch to work on
- Make sure you have docker and node installed
- Add
api.adfoodio.site
to your hosts. If you are on linux you can use the following command:
sudo sh -c 'echo "\n127.0.0.1 api.adfoodio.site\n::1 api.adfoodio.site\n" >> /etc/hosts'
- Run docker-compose up in the project folder
- Run npm start in frontend folder
- Start writing! Good luck
How to send things back
When you have something to send in, create a git patch like this
git format-patch master --stdout > ~/path/to/file/somename.patch
- Email the patch to join-devs@adludio.com
Help!
If you get stuck, are not able to complete the assignment to a degree you feel comfortable with in time, or have any question at all, please let us know as soon as possible!
The entire reason for this test is to get an idea of your skills, so we want to make sure that you have the best possible chance :)
Just send us an email on: join-devs@adludio.com