An AI-powered multi-restaurant reservation marketplace built with Node.js, Express, and MySQL. Features smart search powered by Google Gemini AI, personalized recommendations, and an interactive analytics dashboard.
- Multi-Restaurant Marketplace — Browse and reserve tables across multiple restaurants
- AI Smart Search — Natural language search powered by Google Gemini API
- Recommendation Engine — Personalized restaurant suggestions based on user preferences
- Analytics Dashboard — Real-time insights on bookings, peak hours, and customer trends
- Location-Based Filtering — Filter restaurants by state and city (India)
- Admin Panel — Restaurant owners can manage menus, photos, and reservations
- User Authentication — Secure login/registration with session management
| Layer | Technology |
|---|---|
| Backend | Node.js, Express.js |
| Database | MySQL |
| AI/ML | Google Gemini API |
| Frontend | HTML, CSS, JavaScript |
| Authentication | bcrypt.js, Express Sessions |
| File Uploads | Multer |
- Node.js (v18+)
- MySQL (v8+)
- Google Gemini API Key
-
Clone the repository
git clone https://github.com/YOUR_USERNAME/restaurant-reservation.git cd restaurant-reservation -
Install dependencies
npm install
-
Configure environment variables
cp .env.example .env
Edit
.envwith your database credentials and Gemini API key. -
Set up the database
- Create a MySQL database named
restaurant_reservation - The tables are auto-created on first run
- Create a MySQL database named
-
Start the server
npm start
-
Open your browser and navigate to
http://localhost:3000
restaurant-reservation/
├── server.js # Express server & API routes
├── db.js # Database connection & schema
├── ai.js # Gemini AI integration
├── package.json
├── .env.example # Environment variable template
├── public/
│ ├── index.html # Landing page
│ ├── restaurants.html # Restaurant listing
│ ├── restaurant.html # Restaurant detail & booking
│ ├── my-reservations.html
│ ├── admin.html # Admin dashboard
│ ├── register.html # User registration
│ ├── app.js # Frontend JavaScript
│ └── styles.css # Stylesheet
└── uploads/ # Restaurant images
This project is for educational purposes.