You task is to build a full stack application using a Java (Spring) back-end and a JavaScript (React) front-end. You are building one integrated product and good communication between front-end and back-end developers will be crucial.
- The front-end is the user's experience of your application not just something bolted onto a back-end. So carefully consider the user. Use your UX 'toolkit' to good effect!
- We're assuming one user of our application. Authentication is really out of the scope of this project. And 'faking it' (perhaps with different routes for
/admin
/customer
etc) typically just doesn't work well.
You have been tasked to create a booking system for a brand new restaurant. The restaurant needs a way to book and arrange tables for customers who are booking over the phone. This system is for the staff to use.
Your system must be able to:
- Allow a customer to book a table at the restaurant for a particular time and date
- Update a booking, for example if the customer wants to change a booking time
- Display a list of bookings for a given date
- Display a list of customers ordered by frequency of visits
- Don't allow double bookings
- Add a customer's receipt to a booking so you can view their previous orders and how much they spent
- Calculate how much a customer has spent over a given period of time
- Give discounts to frequent customers
- Whatever features you think would be beneficial to a restaurant