2.1 KiB
Restaurant Management System
A very basic and bare-bone but still pretty useful restaurant management system with only the following features:
- Dashboard for tracking sales and favorite dishes
- Menu management system for adding and removing dishes from menu
- Invoice management system for generating and printing invoices
Clearly not meant to automate the entirety of the restaurant with hundreds of features. But frankly if I had a small to mid size restaurant, I wouldn't go any further then this as that can cause more problems then it would've solved.
For example, let's say a customer steps in on our moderate sized restaurant, then he sits down on a table and calls a waiter and orders a fried rice. Pretty average thing to do for a customer I'd say. If I had an enormous restaurant management system, it would've required the staff members to login to it and manage a plethora of things like table reservation, order tracking, raw ingredients track, etc. But do we really need things like table reservations in a small to mid sized restaurants where we can know just by taking a look? That's why I've chosen to keep things simple where it will actually be helpful and not get in the way. In our country, we have more small to mid sized restaurants than enormous ones. Therefore this piece of software will prove to be very useful to my opinion.
Project Structure
The frontend and backend are totally seperated in this project and is kept under a frontend and backend folder respectively.
The frontend is very simple utilizing only the following tech:
- HTML5 for markup
- Tailwindcsss for styling
- Alpine.js for easing the Javascript part
And the backend part is also very simple using only php and mysql. Be aware that pdo_mysql php extension must be enabled as it's used to communicate with the mysql database server.
The frontend and backend communicates by utilizing restful api. The frontend makes HTTP requests to the php backend. Upon getting the request, the backend then fetches some data from the database using pdo_mysql and returns a response to the frontend with some json data. The frontend then represents and aids to interact with this data.