Technical Test PN

Question Type: fullstack

Question

Hi, meet me, Juna. I’m the owner of Juna Restaurant. Recently, it’s been so hard for me to take customers’ orders to their table one by one since my restaurant is getting bigger and bigger. Therefore, I want to have a mobile (iOS & Android) application in the hope that I can more easily manage the orders. And here you are the chosen one to help me develop the system!

Here is what I’ve been thinking of:

  • Customers will order using provided tablets on their table.
  • Customers can view the food list on the main screen.
  • Each food on the list should have at least a name, picture, and price.
  • Customers can directly choose the food including the order quantity.
  • Customers will have a Cart Detail screen that displays each food quantity, price, and the order’s total price.
  • On the Cart Detail screen, customers can update the quantity. To remove the food from the cart, customers can set the quantity to 0.
  • Customers can put their table number on the cart detail screen.
  • Customers can submit their orders from the Cart Detail screen.
  • For further enhancement, I want to print the order detail using a third-party application (not included in this application) and give it to the customer, so please provide an API to get the order detail.

Specification

To successfully develop the application, you need to pay attention to these conditions:

Git

  • Before you starting to develop the apps, please do git init and make sure to do commit & push all your changes on main branch.

Unit Test

  • Unit test is nice to have for Backend and Frontend

Frontend

  • Developing your Frontend with React Native / Flutter / Android Native / iOS Native (React Native is preferable)

Backend / API

  • Developing your backend service with Express JS / Hapi JS / Other node.js framework (Express JS is preferable)
  • Use Design Pattern and Folder Structure that you know

Database

  • Using a database (memory variable is allowed) is nice to have.

Code Practices

  • It’s nice to implement coding best practices.
  • UI/UX or interface is out of scope, good and clean UI will be appreciated.

README

  • Please add README on how to run the application

Submission

  • Use a private Github repository for your project
  • You must complete this test within 5 calendar days