Skip to content

DishantBhere/Foodrush

Repository files navigation

🍽️ FoodRush.io

Smart Campus Canteen Food Ordering System, It's was my academic final year project. It's a full-stack smart canteen ordering system that replaces the traditional manual canteen process,students can browse the menu, order food, pay online, and track their order in real time, while admins manage everything from a central dashboard.


πŸ“Έ Screenshots

Homepage Homepage

AI Chatbot Chatbot

Menu Menu

Payment Payment

Order Tracking Tracking


FoodRush.io – Full Workflow Demo

FOODRUSH.mp4

πŸ”„ How It Works

Customer

  1. Sign up / Login
  2. Browse menu by category β€” Appetizers, Beverages, Desserts, Main Course, Salads & Bowls
  3. Use the AI Chatbot (bottom-right of homepage) for recommendations or canteen queries
  4. Add items to cart β†’ proceed to Checkout
  5. Enter name, table number and email β†’ OTP sent to email β†’ verify to place order
  6. Pay via Razorpay
  7. Order confirmation bill sent as PDF attachment to email
  8. Unique alphanumeric ticket generated β†’ popup appears with a COPY button
  9. Go to tracking page β†’ paste ticket β†’ click Track β†’ view live order status

Order Status Flow

Pending β†’ Confirmed β†’ Preparing β†’ Ready β†’ Done
                                         β†’ Cancelled

Admin

  • Login via separate admin page
  • View monthly & weekly revenue charts + order breakdown pie chart
  • Manually update order status for each order
  • Export order data to Excel

πŸ› οΈ Tech Stack

Technology
Framework Next.js 14, React 18, TypeScript
Styling Tailwind CSS v4, Radix UI, Shadcn/ui
Animations GSAP, Three.js
State Zustand
Database MySQL (mysql2)
Auth bcryptjs, Zod, React Hook Form
Email Nodemailer (OTP + PDF bill attachment)
Payment Razorpay
AI Chatbot Groq API (LLaMA3)
Charts Recharts
Export Excel (order data), jsPDF (email bill)

πŸ“ Project Structure

Foodrush/
β”œβ”€β”€ app/
β”‚   β”œβ”€β”€ page.tsx                  # Homepage + AI Chatbot
β”‚   β”œβ”€β”€ login/                    # Login page
β”‚   β”œβ”€β”€ signup/                   # Sign up page
β”‚   β”œβ”€β”€ checkout/                 # Checkout + OTP verification
β”‚   β”œβ”€β”€ payment/                  # Razorpay + Ticket popup
β”‚   β”œβ”€β”€ track/                    # Order tracking
β”‚   β”œβ”€β”€ admin/                    # Admin dashboard
β”‚   └── api/                      # auth, orders, food-items, send-otp, send-email, export, chat, stats
β”œβ”€β”€ components/
β”‚   β”œβ”€β”€ admin/                    # Dashboard, orders, stats components
β”‚   └── ui/                       # cart-sidebar, food-card, checkout-form, chatbot, animations
β”œβ”€β”€ hooks/                        # Custom hooks (cart, auth)
β”œβ”€β”€ lib/                          # DB connection, utilities
β”œβ”€β”€ scripts/                      # DB seed scripts
└── styles/

βš™οΈ Setup

Before You Start

Download and set up the following:

What Why Where
Node.js v18+ Run the project nodejs.org
pnpm Package manager npm install -g pnpm
MySQL 8.0+ Database mysql.com
Gmail App Password OTP + PDF bill emails myaccount.google.com/apppasswords
Razorpay Account Payment (test keys) razorpay.com
Groq API Key AI Chatbot console.groq.com

Everything else β€” GSAP, Three.js, Recharts, Radix UI, Zustand, Shadcn/ui, bcryptjs, jsPDF and all other packages β€” install automatically via pnpm install.


Installation

# 1. Clone the repo
git clone https://github.com/DishantBhere/Foodrush.git
cd Foodrush

# 2. Install all dependencies
pnpm install

# 3. Create your env file and fill in the values
cp .env.example .env.local

Environment Variables

# Database
DB_HOST=localhost
DB_USER=root
DB_PASSWORD=your_password
DB_NAME=food_ordering_system

# Auth
JWT_SECRET=your_jwt_secret

# Email (Nodemailer)
EMAIL_USER=your_email@gmail.com
EMAIL_PASS=your_gmail_app_password

# Razorpay
RAZORPAY_KEY_ID=your_key_id
RAZORPAY_KEY_SECRET=your_key_secret

# Groq AI
GROQ_API_KEY=your_groq_api_key
# 4. Set up the database
mysql -u root -p < scripts/schema.sql

# 5. Run the dev server
pnpm dev

Open http://localhost:3000
Admin β†’ http://localhost:3000/admin


⚠️ Notes

  • Razorpay runs in test mode β€” no real transactions
  • Runs locally only, not deployed
  • PDF bill is sent as email attachment after payment success

Built by Dishant Bhere Bsc.IT Β· University of Mumbai