This full-stack Restaurant Point of Sale (POS) system was originally built for my Computing coursework, and I've since updated and improved it. It allows staff to manage tables, take customer orders, and handle checkouts efficiently. The system is powered by PHP and MySQL to deliver dynamic and responsive functionality.
Tech Stack
- Frontend: HTML, CSS
- Backend: PHP
- Database: MySQL
- Environment: XAMPP (Apache + MySQL)
Project Functionality
This section showcases the main features of the restaurant POS system, including table management, product selection, receipt handling, and admin controls. You'll find explanations alongside screenshots to demonstrate how staff and managers interact with the system in real time.
Login Page
Staff must log in before accessing the POS system.
Table Overview
After login, the staff selects the table and number of guests. Once the table is active it turns green and shows the number of people at the table as the number of poeple that were entered
Order Page
Each table has its own order view to manage products and quantities. As you add items to the basket the stock changes appropriately. This is all stored in the database
Product Management
Everyone can add and edit menu items from the product management page. It also shows the list of products and here you can update or delete the products
Checkout
Once the order is complete, staff can review and clear the table after payment. There is a cash or card option and there is option to spilt the bill too.
System Control
There is a System Control page that includes links to view receipts and access the User Management section. From there, admins can manage user accounts, including adding, editing, or removing users. If a staff member (non-admin) tries to access the user management features, they will see an "Access Denied" message.
User Management
Admins, such as the manager, can add or edit user accounts and update passwords. All user information is stored securely in a database, with passwords hashed for protection
Receipt Management
All staff members have access to view receipts. Once viewed, they also have the option to delete receipts or download them as PDF files for record-keeping.
Key Code Snippets
Below are a few core code snippets that highlight the functionality and logic behind the restaurant POS system.
Hashed Password Storage
To protect user security, passwords are hashed before being stored in the database:
Access Control for Staff
This logic ensures that only users with the admin role can access restricted pages like user management:
Generate PDF Receipt
Staff members can view receipts and generate a downloadable PDF version for printing or saving:
Smart Order Handling
This code checks whether a table already has an open order. If not, it creates one. It then either updates the quantity of an existing product or adds it as a new item. Finally, it decreases the product stock and redirects the user back to the table view.
Secure Login Authentication
This login system securely checks the user’s credentials using hashed passwords and starts a session on success.