Restaurant Manager is a full-stack application using Spring-Boot and React, with features for both customers (scanning QR code, selecting menu items, submitting orders) and admins (viewing/creating orders). Implemented Spring Security 5 for authentication, used MySQL with Hibernate, and added private/non-private routes with react-router. The application offers both customer and admin journeys, which are detailed below.

Customer Journey

  • Customer will be able to scan QR code and go to webpage
  • Customer will be able to choose items from Menu.
  • Add menuItem to the cart.
  • Submit cart to create an order.
  • In cart customer can add a menuItem, remove a menuItem, change quantity of menuItem.
  • Customer will require to login/sign-up before creating an order.

Admin Journey

  • Admin will be able to see list of customer order.
  • Admin can create order with admin credentials.
  • Admin can create order with customer credentials.
  • Order will have following state: Draft -> Submit-> Waiting -> Served -> Completed.

Technology Used

  • Used SpringBoot application to create backend services.
  • Used Spring Security 5, to filter resources and added JWT token to user remain authenticated for future requests.
  • Used MySQL database with hibernate.
  • Used React to create front-end for the app, using react hooks like useState, useEffect.
  • Added private and non-private routes using react-router-dom.
  • Used local-storage as cache for the storing data.

Contribution and Feedback

The Project is open for feedback and contribution at Github