DineFlow is a smart restaurant management web app built to make table ordering, kitchen tracking, payment handling, and customer reviews smoother for restaurants.
https://dineflow-theta.vercel.app/
- Public homepage, menu, reviews, and about pages
- Customer table registration before ordering
- Full menu browsing for guests
- Cart and order placement for registered table users
- Customer-side table clearing
- Staff login for kitchen and payment counters
- Kitchen order dashboard
- Payment counter with table reset
- Supabase PostgreSQL database integration
- Review/contact form saved in the database
| Layer | Technology |
|---|---|
| Frontend | HTML, CSS, JavaScript |
| Backend | Node.js, Express.js, EJS |
| Database | Supabase PostgreSQL |
| Session | express-session |
| DB Driver | pg |
- Install dependencies:
npm install-
Create a Supabase project.
-
Open Supabase SQL Editor and run the SQL from:
schema.sql
-
Open Supabase dashboard, click Connect, and copy the Session pooler connection string.
-
Create
.envfrom.env.example, then replaceDATABASE_URLwith your Supabase connection string:
PORT=8080
SESSION_SECRET=change-this-secret
DATABASE_URL=postgresql://postgres.PROJECT_REF:YOUR_PASSWORD@aws-0-REGION.pooler.supabase.com:5432/postgres- Initialize or update the database:
npm run db:init- Start the app:
npm startLocal app URL:
http://localhost:8080
Deployed app URL:
https://dineflow-theta.vercel.app/
| Route | Purpose |
|---|---|
/ |
Customer entry / table registration |
/home |
Public home page |
/menu |
Public menu browsing |
/cart |
Customer cart, requires table registration |
/reviews |
Contact and review form |
/about |
About DineFlow |
/login |
Staff login |
/kitchen |
Kitchen counter, requires kitchen login |
/payment |
Payment counter, requires payment login |
Kitchen counter:
Email: kitchen@gmail.com
Password: kitchen123
Payment counter:
Email: payment@gmail.com
Password: payment123
- Guests can browse Home, Menu, Reviews, and About without registration.
- Adding dishes, opening Cart, placing orders, and clearing tables require customer registration.
- Kitchen and Payment pages require staff login.
- Customer names and emails can repeat, so customer visit history can be retained.
- Kitchen and Payment counters only show placed orders, not in-progress carts.
- Payment reset clears the order and frees the table while keeping customer data.
- Payment counter also has a Free All Tables action for end-of-day cleanup.
- Menu images are served from
public/dishes. - Reviews are saved in the Supabase
reviewstable.
Name: Parth Gupta
Mobile: 8989247785
Address: SGSITS, 23 Sir M. Visvesvaraya Marg, Indore, Madhya Pradesh 452003
Created by Parth Gupta.