Eden Online

Nov 2021
School ProjectNov 20217 technologies17 features

About this project

A full-featured restaurant order management system for Eden Bar & Lounge, built with Node.js/Express, MySQL, Handlebars (SSR), and Socket.io for real-time communication. Supports six roles (Admin, Chef, Barman, Waiter, Delivery, Customer) via Passport.js local authentication with MySQL session storage.

Local dine-in orders are created per table with products (drinks/dishes) assigned to the appropriate station — Chef sees only food, Barman sees only drinks — with real-time Socket.io notifications at every status transition. Online home-delivery orders follow a separate flow: customers browse the menu, manage a cart, confirm orders, and track status through capture, preparation, prepared, delivery, and delivered states.

The delivery person role manages outbound deliveries with automatic inventory deduction on completion. The admin panel includes full CRUD for products, employees, customers, and tables; inventory management with stock entries, outflows, and real-time tracking; local and online sales reports with payment control; and a cashier flow for in-restaurant bills. Built with SB Admin 2 (Bootstrap 4), Toastify notifications, and Push.js browser alerts for real-time updates.

Features

Six role-based access levels (Admin, Chef, Barman, Waiter, Delivery, Customer) with Passport.js local authentication
Local dine-in order management by table with add/remove products and quantity adjustment
Online home-delivery flow: menu browsing, cart management, order confirmation, and status tracking
Full order status workflow: Capture → Unpaid → Preparation → Prepared → Delivery/Checkout → Delivered/Paid
Role-filtered kitchen/bar views: Chef sees only food, Barman sees only drinks
Real-time Socket.io notifications between all roles at every order status transition
Delivery tracking workflow with automatic inventory deduction on delivery completion
Product management with categories (Drink/Dish) and image URLs
Table management with named seating areas
Inventory management with stock entries, automatic outflows, and real-time stock tracking
Purchasing records with cost tracking and stock updates
Local and online sales reports with payment control
Cashier/payment flow for in-restaurant bills with detailed account view
Employee, customer, and user CRUD management from admin panel
Email-based password recovery via Nodemailer
SB Admin 2 (Bootstrap 4) dashboard theme with Toastify and Push.js browser notifications
Dashboard KPIs per role showing order counts, preparation stats, and product counts

Tech Stack

Node.jsExpress.jsMySQLBootstrapSocket.ioHandlebarsPassport.js