Skip to content

lightning4747/Restaurant

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🥗 Annapurna - Indian Restaurant Management System

Annapurna is a full-stack modern restaurant management application designed to handle menu browsing, table reservations, and administrative tasks like menu management and analytical dashboards.

✨ Features

  • Dynamic Menu: Categorized menu with real-time status (Veg/Non-Veg, Trending, Availability).
  • Interactive Table Reservation: Visual table layout across multiple floors (Ground, Lounge, Patio) with real-time availability checking.
  • Admin Dashboard:
    • Real-time analytics (Weekly revenue, booking counts, trending dishes).
    • Menu Management (CRUD operations with Cloudinary image upload).
    • Reservation Management (Update status: Pending, Confirmed, Completed, Cancelled).
  • Authentication: Secure login using Google OAuth 2.0.
  • Responsive Design: Premium aesthetics with smooth animations and glassmorphism effects.

🛠️ Tech Stack

  • Frontend: React.js, TypeScript, Vite, Lucide React, Axios, CSS Variables (Design System).
  • Backend: Node.js, Express, TypeScript, Mongoose.
  • Database: MongoDB Atlas.
  • Authentication: Passport.js (Google Strategy), JWT.
  • Cloud Storage: Cloudinary (for menu item images).

🚀 Getting Started

Prerequisites

1. Clone the Repository

git clone https://github.com/lightning4747/Restaurant.git
cd Restaurant

2. Backend Setup

Navigate to the server directory and install dependencies:

cd server
npm install

Create a .env file in the server directory:

PORT=8000
NODE_ENV=development
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret
JWT_EXPIRES_IN=7d

# Google OAuth
GOOGLE_CLIENT_ID=your_google_client_id
GOOGLE_CLIENT_SECRET=your_google_client_secret
GOOGLE_CALLBACK_URL=http://localhost:8000/api/auth/google/callback

# Cloudinary
CLOUDINARY_CLOUD_NAME=your_cloud_name
CLOUDINARY_API_KEY=your_api_key
CLOUDINARY_API_SECRET=your_api_secret

# URLs
CLIENT_URL=http://localhost:5173
FRONTEND_URL=http://localhost:5173

# Admin Initial Setup
ADMIN_EMAIL=admin@example.com # vignesh112847@gmail.com
ADMIN_PASSWORD=admin_password # vignesh1128
// included the admin and admin mail for test purposes

Seed the Database:

# Seed Menu Categories and Items
npm run seed

# Seed Table Layout (Ground, Lounge, Patio)
npm run seed:tables

Start the Backend:

npm run dev

3. Frontend Setup

Navigate to the client directory and install dependencies:

cd ../client
npm install

Create a .env file in the client directory:

VITE_API_URL=http://localhost:8000/api
VITE_GOOGLE_MAPS_API_KEY=your_google_maps_api_key

Start the Frontend:

npm run dev

🔑 Key API Keys & Configuration

Service Purpose Where to get
MongoDB Atlas Database mongodb.com
Google OAuth Login Google Cloud Console
Cloudinary Image Uploads cloudinary.com
Google Maps Contact Page Google Cloud Console

📸 Screenshots

Home Page

Home Page

Trending Dishes

Trending Items

Full Menu

Menu

Table Reservation Plan

Table Layout

Admin Analytical Dashboard

Dashboard

Menu Management (Cloudinary Integration)

Menu Admin

Contact & Location

Contact

Authentication

Auth

About

A responsive restaurant website that allows users to explore the menu, view food items, make table reservations, and contact the restaurant. The system includes an admin panel to manage menu items, customer bookings, and website content.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages