Skip to content

UtkarshAditya/Restaurant-Management-System-Using-MYSQL

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

28 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🍽️ Restaurant Management System Using MySQL

A modern, full-stack restaurant management system built with Next.js, Express.js, and MySQL. Features a responsive customer portal for ordering, interactive shopping cart with beautiful animations, and a robust REST API backend.

Node.js Next.js Express MySQL React Tailwind CSS License


πŸ“Š Database Schema (ER Diagram)

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚           RESTAURANT MANAGEMENT SYSTEM - ER DIAGRAM                  β”‚
β”‚                    Database: "menu" (MySQL 9.5.0)                    β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

MENU ITEM TABLES (14 Categories - Same Structure):
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚    MENU_CATEGORY_TEMPLATE           β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ PK  SL          INTEGER             β”‚ ← Primary Key (1-26)
β”‚     ItemName    VARCHAR(255)        β”‚ ← Item description
β”‚     Price       INTEGER             β”‚ ← Price in rupees
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

MENU CATEGORIES (14 tables):
   1. beverages       β†’ 12 items (Coffee, Tea, Juices, Milk)
   2. chatitem        β†’ 22 items (Bhel Puri, Samosa, Pav Bhaji)
   3. chineseitems    β†’ 17 items (Noodles, Fried Rice, Chopsuey)
   4. curry           β†’ 26 items (Paneer Butter Masala, Dal, Kohlapuri)
   5. dosaitem        β†’ 16 items (Plain Dosa, Masala Dosa, Paper Dosa)
   6. fruitjuice      β†’ 10 items (Fresh juices)
   7. icecreams       β†’ 8 items (Vanilla, Chocolate, Mango)
   8. indianbreads    β†’ 16 items (Naan, Roti, Paratha, Kulcha)
   9. mealcombo       β†’ 7 items (Combo offers)
  10. riceitem        β†’ 15 items (Biryani, Pulao, Fried Rice)
  11. soup            β†’ 5 items (Tomato, Corn, Veg Soup)
  12. southindian     β†’ 17 items (Idli, Uttapam, Vada)
  13. starters        β†’ 16 items (Samosa, Pakora, Spring Roll)
  14. sweets          β†’ 5 items (Gulab Jamun, Rasgulla, Halwa)

                            ↓
                  [Composite Key Used]
              (Category + SL = Unique Item ID)
                            ↓
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚         ORDERS TABLE                 β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ PK  OrderID     INT AUTO_INCREMENT   β”‚ ← Unique order ID
β”‚     ItemName    VARCHAR(255)         β”‚ ← Item name (FK reference)
β”‚     Price       DECIMAL(10,2)        β”‚ ← Unit price
β”‚     Quantity    INT                  β”‚ ← Items ordered
β”‚     TotalPrice  DECIMAL(10,2)        β”‚ ← Quantity Γ— Price
β”‚     OrderTime   DATETIME DEFAULT NOW β”‚ ← Order timestamp
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

RELATIONSHIPS:
- Menu Tables: One item per SL (Primary Key)
- Orders Table: References menu items by ItemName
- Composite Unique ID: (Category + SL) identifies unique menu item
- One-to-Many: One menu item can be ordered multiple times

DATA FLOW:
Customer β†’ Selects Items β†’ Cart (Category + SL) β†’ Checkout β†’ ORDER INSERTED

CONSTRAINTS:
βœ“ All menu tables: PRIMARY KEY (SL)
βœ“ Orders table: PRIMARY KEY (OrderID), AUTO_INCREMENT
βœ“ All prices: DECIMAL(10,2) for accurate calculations
βœ“ OrderTime: DATETIME with DEFAULT CURRENT_TIMESTAMP
βœ“ Tax Calculation: Stored separately (not in DB, calculated in app)

STATISTICS:
- Total Items: 192 menu items
- Total Categories: 14
- Total Orders: Unlimited (auto-increments)
- Database Size: ~50KB (depends on order history)

✨ Features

πŸ›οΈ Customer Features

  • Browse Menu: 14 categories with 192 menu items
  • Interactive Shopping Cart:
    • Add/remove items seamlessly
    • Real-time quantity adjustments with +/- buttons
    • Cart persists across category switches
    • Handles duplicate SL numbers from different categories
    • Beautiful animated sidebar display with totals
  • Tax Calculation: Automatic CGST (2.5%) + SGST (2.5%) calculation
  • One-Click Checkout: Seamless order placement with confirmation messages
  • Category Navigation: Smooth transitions between 14 menu categories
  • Responsive Design: Optimized for desktop, tablet, and mobile
  • Beautiful Animations:
    • Framer Motion smooth transitions
    • OrderXpress orange-red gradient branding
    • Animated silk background effects
    • Glass-morphism card designs
    • Real-time price updates with NumberFlow

πŸ‘¨β€πŸ’Ό Admin Features

  • Order Dashboard: View all orders with detailed information
  • Statistics: Real-time total orders and revenue tracking
  • Order Details: Item-wise breakdown per order with timestamps
  • Responsive Interface: Works on all devices

πŸ”§ System Features

  • RESTful API: 7 well-designed endpoints for all operations
  • MySQL Database: Optimized schema with 15 tables
  • CORS Enabled: Seamless frontend-backend communication
  • Error Handling: Comprehensive error responses and validation
  • Environment Management: Secure .env credential handling
  • Type Safety: Full TypeScript implementation
  • Git Version Control: Semantic commit messages

πŸ“‹ Tech Stack

Frontend

Technology Version Purpose
Next.js 14.0.3 React framework with App Router
React 18.3.1 UI library & state management
TypeScript Latest Type safety & IDE support
Tailwind CSS 3.3.0 Utility-first styling
Framer Motion 9.x Smooth animations & transitions
Lucide React Latest Beautiful SVG icons
@number-flow/react Latest Animated number transitions
Axios 1.6.2 HTTP client for API calls

Backend

Technology Version Purpose
Node.js v24.9.0 JavaScript runtime
Express.js 4.18.2 Web server framework
MySQL2 3.15.3 Database driver (sync callback-based)
CORS 2.8.5 Cross-origin request handling
Dotenv 16.3.1 Environment variable management

Database

Component Details
System MySQL 9.5.0
Database menu
Tables 15 (14 menu categories + 1 orders)
Menu Items 192 total items across all categories
Connection Connection pooling with optimized queries

πŸ“ Project Structure

DBMS-Project/
β”œβ”€β”€ πŸ“ backend/
β”‚   β”œβ”€β”€ server.js                 # πŸš€ Express API server (port 5001)
β”‚   β”œβ”€β”€ package.json              # Node.js dependencies
β”‚   β”œβ”€β”€ .env.local                # Database credentials & config
β”‚   β”œβ”€β”€ menu_database.sql         # πŸ“Š MySQL schema (15 tables)
β”‚   └── node_modules/             # Installed packages
β”‚
β”œβ”€β”€ πŸ“ frontend/
β”‚   β”œβ”€β”€ πŸ“ app/
β”‚   β”‚   β”œβ”€β”€ page.tsx              # 🎯 Landing page with Silk background
β”‚   β”‚   β”œβ”€β”€ menu/
β”‚   β”‚   β”‚   └── page.tsx          # πŸ›’ Menu + cart state (v2.2.0)
β”‚   β”‚   β”œβ”€β”€ πŸ“ components/
β”‚   β”‚   β”‚   β”œβ”€β”€ Silk.tsx          # ✨ CSS-animated silk background
β”‚   β”‚   β”‚   β”œβ”€β”€ InteractiveMenu.tsx # 🍽️ Menu grid + cart sidebar
β”‚   β”‚   β”‚   └── πŸ“ ui/
β”‚   β”‚   β”‚       └── button.tsx    # πŸ”˜ Reusable button component
β”‚   β”‚   β”œβ”€β”€ layout.tsx            # Root layout (Tailwind)
β”‚   β”‚   └── globals.css           # Global styles + animations
β”‚   β”œβ”€β”€ πŸ“ lib/
β”‚   β”‚   β”œβ”€β”€ utils.ts              # πŸ”§ cn() utility function
β”‚   β”‚   └── types.ts              # πŸ“‹ MenuItem, CartItem types
β”‚   β”œβ”€β”€ package.json              # React dependencies (Next.js 14, Tailwind, Framer Motion)
β”‚   β”œβ”€β”€ tsconfig.json             # TypeScript config (@/* aliases)
β”‚   β”œβ”€β”€ tailwind.config.ts        # Tailwind CSS config
β”‚   β”œβ”€β”€ next.config.js            # Next.js configuration
β”‚   β”œβ”€β”€ .env.local                # API configuration
β”‚   └── node_modules/             # Installed packages
β”‚
β”œβ”€β”€ .gitignore                     # Git ignore rules
β”œβ”€β”€ README.md                      # πŸ“– Project documentation (v2.2.0)
β”œβ”€β”€ SETUP_SUMMARY.md              # Quick reference guide
β”œβ”€β”€ setup.sh                       # Auto-installation script
└── package.json                   # Root package.json

### Today's Updates (v2.2.0)

| File | Changes |
|------|---------|
| `app/menu/page.tsx` | βœ… Lifted cart state + async placeOrder() API integration |
| `InteractiveMenu.tsx` | βœ… Fixed duplicate SL with category awareness |
| `Silk.tsx` | βœ… CSS-based animations (replaced Three.js - 60fps smooth) |
| `lib/types.ts` | βœ… Added `category?: string` to MenuItem interface |
| `README.md` | βœ… Features, Tech Stack, ER Diagram sections updated |

πŸ“ Recent Updates (v2.2.0 - November 26, 2025)

πŸ› Bug Fixes

  • Fixed Checkout Button: Added async placeOrder() function with proper error handling and order confirmation
  • Fixed Cart Persistence: Lifted cart state from child component to parent to prevent reset on category switches
  • Fixed Duplicate SL Handling: Implemented composite key (Category + SL) to properly distinguish items with same SL from different categories

✨ New Features & Improvements

  • Beautiful Silk Background: Implemented CSS-based animated silk effect (60fps smooth, no external dependencies)
  • Enhanced Cart Display: Real-time price updates, category-aware item identification, smooth animations
  • Improved Tax Calculations: Automatic CGST (2.5%) + SGST (2.5%) with NumberFlow animations

πŸ“Š Git Commits Today

40de3d4 - ✨ Upgrade: Implement beautiful fluid silk background with advanced CSS animations
6e6b5f1 - πŸ”§ Fix: Replace Three.js Silk with CSS-based animated background
a565447 - πŸ› Fix: Three.js Silk background component initialization error
07c7eb1 - ✨ Feat: Replace landing page background with Three.js Silk component
0ea9428 - πŸ› Fix: Handle duplicate SL numbers from different categories in cart
e7da5ad - πŸ› Fix: Checkout functionality and cart persistence across categories

πŸ“ˆ Test Results

βœ… All cart operations verified with category-aware identification βœ… Checkout flow: Add items β†’ Category switch β†’ Items persist β†’ Checkout succeeds βœ… Animations: Smooth 60fps silk background rendering βœ… API Integration: POST /orders endpoint receives properly formatted order data


Prerequisites

  • Node.js 18.0.0 or higher
  • MySQL 8.0 or higher
  • npm or yarn package manager
  • Git (for version control)

Installation

Option 1: Automatic Setup (Recommended)

cd /path/to/Restaurant-Management-System
chmod +x setup.sh
./setup.sh

Option 2: Manual Setup

1. Clone the repository

git clone https://github.com/PranavOaR/Restaurant-Management-System-Using-MYSQL.git
cd Restaurant-Management-System-Using-MYSQL

2. Set up MySQL Database

mysql -u root -p < backend/menu_database.sql

3. Install Backend Dependencies

cd backend
npm install

4. Configure Backend Environment

Create/edit .env file in backend/:

DB_HOST=localhost
DB_USER=root
DB_PASSWORD=Welcomenav1#
DB_NAME=menu
PORT=5001
NODE_ENV=development

5. Start Backend Server

npm run dev

Backend will run on http://localhost:5001

6. Install Frontend Dependencies

cd ../frontend
npm install

7. Configure Frontend Environment

Verify .env.local in frontend/:

NEXT_PUBLIC_API_URL=http://localhost:5001/api

8. Start Frontend Server

npm run dev

Frontend will run on http://localhost:3000


πŸ“– Usage

Customer Portal

  1. Open Browser: Navigate to http://localhost:3000
  2. Home Page: View restaurant statistics and featured items
  3. Place Order: Click "Place Order" button
  4. Browse Menu: Select categories and items
  5. Add to Cart: Click on items to add them
  6. Manage Cart: Update quantities or remove items
  7. Checkout: Review total with taxes and place order

Admin Dashboard

  1. Access Admin: Navigate to http://localhost:3000/admin
  2. Login: Enter password: admin123
  3. View Orders: See all customer orders with timestamps
  4. Track Revenue: Monitor total sales and statistics
  5. Manage Orders: View detailed order information

API Endpoints

Health Check

GET /api/health

Get Categories

GET /api/categories

Response:

{
  "success": true,
  "data": ["beverages", "curry", "dosaitem", ...]
}

Get Menu Items

GET /api/menu/:category

Response:

{
  "success": true,
  "data": [
    {
      "SL": 1,
      "ItemName": "Filter Coffee",
      "Price": 15
    }
  ]
}

Place Order

POST /api/orders
Content-Type: application/json

{
  "items": [
    {
      "itemName": "Filter Coffee",
      "price": 15,
      "quantity": 2,
      "totalPrice": 30
    }
  ]
}

Get Orders

GET /api/orders

Response:

{
  "success": true,
  "data": [
    {
      "OrderID": 1,
      "ItemName": "Filter Coffee",
      "Price": "15.00",
      "Quantity": 2,
      "TotalPrice": "30.00",
      "OrderTime": "2025-11-24T15:20:28.000Z"
    }
  ]
}

Get Statistics

GET /api/statistics

Response:

{
  "success": true,
  "data": {
    "totalOrders": 8,
    "totalRevenue": "520.00"
  }
}

πŸ—„οΈ Database Schema

Menu Categories (14 Tables)

  • beverages - 12 items
  • chatitem - 22 items
  • chineseitems - 17 items
  • curry - 26 items
  • dosaitem - 16 items
  • fruitjuice - 10 items
  • icecreams - 8 items
  • indianbreads - 16 items
  • mealcombo - 7 items
  • riceitem - 15 items
  • soup - 5 items
  • southindian - 17 items
  • starters - 16 items
  • sweets - 5 items

Orders Table

CREATE TABLE orders (
  OrderID INT AUTO_INCREMENT PRIMARY KEY,
  ItemName VARCHAR(255) NOT NULL,
  Price DECIMAL(10, 2) NOT NULL,
  Quantity INT NOT NULL,
  TotalPrice DECIMAL(10, 2) NOT NULL,
  OrderTime TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

πŸ” Security & Configuration

Environment Variables

Backend (.env)

DB_HOST=localhost           # MySQL host
DB_USER=root                # MySQL user
DB_PASSWORD=Welcomenav1#    # MySQL password
DB_NAME=menu                # Database name
PORT=5001                   # Backend port
NODE_ENV=development        # Environment

Frontend (.env.local)

NEXT_PUBLIC_API_URL=http://localhost:5001/api  # API endpoint

Admin Credentials

  • URL: http://localhost:3000/admin
  • Password: admin123

πŸ“Š Performance Metrics

Operation Response Time
Health Check ~5ms
Get Categories ~10ms
Get Menu Items ~20ms
Place Order ~15ms
Get Orders ~50ms
Statistics ~10ms
Frontend Load ~500ms

Memory Usage:

  • Backend: ~71MB
  • Frontend: ~40-50MB

πŸ§ͺ Testing the System

Test Workflow Script

# Test 1: Health Check
curl http://localhost:5001/api/health

# Test 2: Get Categories
curl http://localhost:5001/api/categories

# Test 3: Get Menu Items
curl http://localhost:5001/api/menu/beverages

# Test 4: Place Order
curl -X POST http://localhost:5001/api/orders \
  -H "Content-Type: application/json" \
  -d '{
    "items": [
      {"itemName": "Filter Coffee", "price": 15, "quantity": 2, "totalPrice": 30}
    ]
  }'

# Test 5: Get Orders
curl http://localhost:5001/api/orders

# Test 6: Get Statistics
curl http://localhost:5001/api/statistics

πŸ› Troubleshooting

Backend Issues

Port Already in Use

# Kill process on port 5001
lsof -i :5001
kill -9 <PID>

MySQL Connection Failed

# Verify MySQL is running
mysql -u root -p'Welcomenav1#' -e "SELECT 1"

# Check database exists
mysql -u root -p'Welcomenav1#' -e "SHOW DATABASES;"

Database Not Found

# Import database schema
mysql -u root -p'Welcomenav1#' < backend/menu_database.sql

Frontend Issues

Port 3000 Already in Use

# Kill process on port 3000
lsof -i :3000
kill -9 <PID>

Cannot Connect to Backend

  • Verify backend is running on port 5001
  • Check .env.local has correct NEXT_PUBLIC_API_URL
  • Check browser console for CORS errors

Dependencies Issues

# Clean install
rm -rf node_modules package-lock.json
npm install

πŸ”„ Workflow Diagram

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚              RESTAURANT MANAGEMENT SYSTEM               β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
         β”‚     Customer Browser (Port 3000)     β”‚
         β”‚         Next.js Frontend             β”‚
         β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
         β”‚  β”‚ Home Page (Statistics)          β”‚ β”‚
         β”‚  β”‚ Menu Page (14 Categories)       β”‚ β”‚
         β”‚  β”‚ Shopping Cart & Checkout        β”‚ β”‚
         β”‚  β”‚ Admin Login                     β”‚ β”‚
         β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                       β”‚
                       β”‚ HTTP/REST
                       β”‚
         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
         β”‚  Backend API Server (Port 5001)      β”‚
         β”‚      Express.js + Node.js            β”‚
         β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
         β”‚  β”‚ /api/health                     β”‚ β”‚
         β”‚  β”‚ /api/categories                 β”‚ β”‚
         β”‚  β”‚ /api/menu/:category             β”‚ β”‚
         β”‚  β”‚ /api/orders                     β”‚ β”‚
         β”‚  β”‚ /api/statistics                 β”‚ β”‚
         β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                       β”‚
                       β”‚ SQL Queries
                       β”‚
         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
         β”‚      MySQL Database                  β”‚
         β”‚   (menu database)                    β”‚
         β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
         β”‚  β”‚ 14 Menu Category Tables         β”‚ β”‚
         β”‚  β”‚ - 192 Menu Items                β”‚ β”‚
         β”‚  β”‚ Orders Table                    β”‚ β”‚
         β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ“ Recent Updates (v2.0.0)

βœ… Full-Stack Modernization

  • Migrated from Tkinter GUI to modern web stack
  • Implemented Next.js 14 for frontend
  • Built Express.js REST API backend
  • Organized code into clean frontend/backend structure

βœ… New Features

  • Responsive shopping cart system
  • Real-time tax calculations
  • Admin authentication dashboard
  • RESTful API with 7 endpoints
  • MySQL connection pooling
  • CORS support for frontend integration

βœ… Performance Improvements

  • Backend response times: 5-50ms
  • Connection pooling for database efficiency
  • Optimized bundle sizes with Next.js
  • Caching headers for static assets

βœ… Code Quality

  • TypeScript for type safety
  • Comprehensive error handling
  • Environment variable management
  • Git version control

πŸš€ Deployment

Deploy to Production

Backend Deployment (Heroku/Railway/Render)

# Build for production
npm run build

# Start production server
NODE_ENV=production npm start

Frontend Deployment (Vercel/Netlify)

# Build Next.js
npm run build

# Deploy to Vercel
vercel deploy

πŸ“š Learning Resources


🀝 Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


πŸ“ž Support & Contact


πŸ™ Acknowledgments

  • REVA University - DBMS Project
  • MySQL Community
  • Next.js Team
  • Express.js Community
  • React Community

Made with ❀️ by PranavOaR

⭐ If you find this project helpful, please give it a star!


Last Updated: January 4, 2026 Version: 2.2.1

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 63.9%
  • Python 22.9%
  • JavaScript 7.2%
  • CSS 4.6%
  • Shell 1.4%