A JavaFX-based application for managing restaurant operations, featuring employee and customer functionalities, database integration, and advanced design patterns for scalability.
- Authentication: Users must sign up before logging in. Credentials are stored in a MySQL database (
restaurant_db
) configured via Connector/J. - Validation: Alerts notify users of invalid login attempts or mismatched passwords.
- Navigation: Successful login redirects to the main dashboard (
nextScene
).
-
Employee Validation
Employees verify their ID (stored in theEmployee
table) to access their dashboard. -
Welcome Page
Displays the employee’s name and role dynamically fetched from the database. -
Colleague Viewer
A list view of other employees with their names, roles, and profile images, excluding the logged-in employee. -
Dashboard
Presents key statistics and performance metrics. -
Menu Management
Allows employees to add, remove, or update menu items.
-
Customer Dashboard
- Browse menu items with details like price and availability.
- Real-time cost updates for selected items.
-
Order Management
- Customize orders with options like "Spicy" or "Extra Cheese."
- Stock levels are dynamically adjusted.
-
Receipt Generation
- Includes timestamp, itemized breakdown, and total cost.
- Used for adding customizations (e.g., spicy items or extra cheese) without altering the core structure of menu items.
- MenuItem: Base class for all menu items.
- MenuItemDecorator: Abstract decorator class.
- SpicyDecorator & ExtraCheeseDecorator: Add £2 and £5 charges, respectively.
- Database: MySQL database (
restaurant_db
) managed via XAMPP. - Tables:
Name
(credentials).Employee
(IDs and roles).Receipt
(IDs and price).
- Java 11+
- Maven (Connector/J added to dependencies).
- XAMPP (for MySQL database).
- Clone the repository.
- Set up the database using XAMPP and import the provided SQL schema.
- Add Connector/J to Maven dependencies.
- Build and run the application.
- Seifeldin Walid Abdelmoneum
- Habiba Ahmed Samir