FeastExpress is a comprehensive online food delivery platform that revolutionizes how customers order food from their favorite restaurants. With an intuitive interface and powerful admin tools, we deliver exceptional dining experiences right to your doorstep.
Features • Tech Stack • Installation • Screenshots • Documentation
FeastExpress is a full-stack web application that connects hungry customers with quality restaurants. Our platform streamlines the food ordering process through:
- 🏪 Restaurant Discovery - Browse hundreds of restaurants with detailed information
- 🍜 Smart Menu Browsing - Filter and search through extensive menus
- 🛒 Seamless Checkout - Quick and secure order placement
- 📊 Admin Control - Comprehensive management dashboard for restaurant owners
- 📱 Responsive Design - Perfect experience on all devices
| Feature | Description |
|---|---|
| 🔐 User Authentication | Secure registration and login system |
| 🔍 Restaurant Discovery | Browse restaurants by cuisine, rating, and location |
| 🍽️ Menu Exploration | View detailed menu items with descriptions and prices |
| 🛒 Shopping Cart | Add/remove items and manage quantities |
| 💳 Checkout | Fast and secure order placement |
| 📍 Order Tracking | Real-time order status updates |
| 👤 Profile Management | View order history and manage preferences |
| ⭐ Ratings & Reviews | Rate restaurants and menu items |
| Feature | Description |
|---|---|
| 📊 Dashboard | Analytics and overview of key metrics |
| 🏢 Restaurant Management | Add, edit, and manage restaurant information |
| 🍴 Menu Management | Control menu items, prices, and availability |
| 📦 Order Management | View, update, and track all orders |
| 👥 User Administration | Manage customer accounts and roles |
| 📈 Reports & Analytics | Track sales, popular items, and trends |
Java 8+ | Jakarta Servlet | JSP | JDBC
HTML5 | CSS3 | JavaScript (Vanilla)
MySQL 8.0 | InnoDB Engine
Apache Tomcat 9.0+ | Eclipse IDE | Git
FeastExpress/
│
├── 📂 src/com/onlinefood/
│ ├── 📂 dao/ # Data Access Interfaces
│ │ ├── MenuDAO.java
│ │ ├── OrderDAO.java
│ │ ├── RestaurantDAO.java
│ │ └── UserDAO.java
│ │
│ ├── 📂 daoimplementation/ # DAO Implementations
│ │ ├── MenuDAOImpl.java
│ │ ├── OrderDAOImpl.java
│ │ ├── RestaurantDAOImpl.java
│ │ └── UserDAOImpl.java
│ │
│ ├── 📂 model/ # Entity Models
│ │ ├── User.java
│ │ ├── Restaurant.java
│ │ ├── MenuItem.java
│ │ ├── Order.java
│ │ ├── OrderItem.java
│ │ ├── Cart.java
│ │ ├── CartItem.java
│ │ ├── OrderConfirmation.java
│ │ ├── SignInRequest.java
│ │ └── SignUpRequest.java
│ │
│ ├── 📂 servlet/ # MVC Controllers
│ │ ├── LoginServlet.java
│ │ ├── RegisterServlet.java
│ │ ├── RestaurantServlet.java
│ │ ├── MenuServlet.java
│ │ ├── CartServlet.java
│ │ ├── CheckoutServlet.java
│ │ ├── ProfileServlet.java
│ │ ├── LogoutServlet.java
│ │ └── AdminServlet.java
│ │
│ └── 📂 utility/ # Helper Utilities
│ └── DBConnection.java # Connection Manager
│
├── 📂 WebContent/
│ ├── 📄 index.jsp # Landing Page
│ ├── 📄 home.jsp # Home Dashboard
│ ├── 📄 login.jsp # User Login
│ ├── 📄 register.jsp # User Registration
│ ├── 📄 restaurants.jsp # Restaurant Listing
│ ├── 📄 restaurantMenu.jsp # Restaurant Menu
│ ├── 📄 menu.jsp # Menu Items
│ ├── 📄 menuItemDetails.jsp # Item Details
│ ├── 📄 cart.jsp # Shopping Cart
│ ├── 📄 checkout.jsp # Order Checkout
│ ├── 📄 orderConfirmation.jsp # Confirmation Page
│ ├── 📄 profile.jsp # User Profile
│ ├── 📄 adminDashboard.jsp # Admin Dashboard
│ ├── 📄 adminMenu.jsp # Admin Menu Manager
│ ├── 📄 adminOrders.jsp # Admin Orders View
│ ├── 📄 adminRestaurants.jsp # Admin Restaurants
│ ├── 📄 adminUsers.jsp # Admin Users Manager
│ ├── 📄 contactUs.jsp # Contact Form
│ ├── 📄 helpCenter.jsp # Help & Documentation
│ ├── 📄 error.jsp # Error Page
│ ├── 📂 images/ # Image Assets
│ └── 📂 WEB-INF/
│ ├── web.xml # Deployment Descriptor
│ └── lib/ # Dependencies
│
├── 📄 schema.sql # Database Design
└── 📄 README.md # This File
┌─────────────────┐ ┌──────────────────┐
│ USERS │ │ RESTAURANTS │
├─────────────────┤ ├──────────────────┤
│ ▪ userId (PK) │ │ ▪ restaurant_id │
│ ▪ name │ │ ▪ name │
│ ▪ username │ │ ▪ cuisine_type │
│ ▪ email │ │ ▪ rating │
│ ▪ password │ │ ▪ is_active │
│ ▪ phone │ └──────────────────┘
│ ▪ address │ │
│ ▪ role │ │ (1:N)
└─────────────────┘ │
│ ▼
│ (1:N) ┌──────────────────────┐
│ │ MENU_ITEMS │
│ ├──────────────────────┤
│ │ ▪ item_id (PK) │
│ ┌───────────┤ ▪ restaurant_id (FK) │
│ │ │ ▪ name │
│ │ │ ▪ price │
│ │ │ ▪ category │
│ │ │ ▪ is_available │
│ │ └──────────────────────┘
│ │
▼ ▼
┌──────────────┐ ┌──────────────────┐
│ ORDERS │ │ ORDER_ITEMS │
├──────────────┤ ├──────────────────┤
│ ▪ order_id │───────▶│ ▪ order_item_id │
│ ▪ user_id(FK)│ │ ▪ order_id (FK) │
│ ▪ total_qty │ │ ▪ item_id (FK) │
│ ▪ status │ │ ▪ quantity │
│ ▪ date │ │ ▪ price │
└──────────────┘ └──────────────────┘
---
## 🚀 Installation & Setup
### Prerequisites
| Requirement | Version | Status |
|------------|---------|--------|
| Java JDK | 8 or higher | ✅ Required |
| MySQL Server | 8.0+ | ✅ Required |
| Apache Tomcat | 9.0+ | ✅ Required |
| Eclipse IDE | Latest | ✅ Recommended |
### Step-by-Step Setup
#### 1️⃣ **Clone/Download Project**
```bash
git clone https://github.com/himanshu9470/feastExpress.git
cd feastexpress
# Login to MySQL
mysql -u root -p
# Create database and import schema
CREATE DATABASE onlinefood;
USE onlinefood;
source schema.sql;Edit: src/com/onlinefood/utility/DBConnection.java
private static final String URL = "jdbc:mysql://localhost:3306/onlinefood";
private static final String USERNAME = "root";
private static final String PASSWORD = "your_password"; // Update this- Open Eclipse IDE
- Click
File→Import→Existing Projects into Workspace - Browse and select the project folder
- Click
Finish
- Right-click Project →
Properties - Select
Project Facets - Set as
Dynamic Web Project - Configure
Apache Tomcat v9.0as Runtime
Right-click Project → Run As → Run on Server
Select Apache Tomcat v9.0 → FinishApplication URL: http://localhost:8080/onlinefood
- Stunning hero section with featured restaurants
- Quick search and filter options
- Popular restaurants carousel
- URL:
http://localhost:8080/onlinefood/home.jsp
┌─────────────────────────────────────────┐
│ FeastExpress Logo [Search] [Menu]│
├─────────────────────────────────────────┤
│ │
│ 🍕 CRAVING SOMETHING DELICIOUS? │
│ │
│ [Search restaurants...] │
├─────────────────────────────────────────┤
│ Featured Restaurants │
│ ┌──────────┐ ┌──────────┐ │
│ │ Rest. 1 │ │ Rest. 2 │ │
│ │ ⭐⭐⭐⭐⭐ │ │ ⭐⭐⭐⭐ │ │
│ └──────────┘ └──────────┘ │
└─────────────────────────────────────────┘
- Clean, minimalist login form
- Email/Username input
- Password field with recovery option
- Social login integration (optional)
- URL:
http://localhost:8080/onlinefood/login.jsp
- Comprehensive registration form
- Real-time validation
- Address input with autocomplete
- Role selection (Customer/Admin)
- URL:
http://localhost:8080/onlinefood/register.jsp
- Grid view of all restaurants
- Filter by cuisine, rating, delivery time
- Restaurant cards with images
- One-click menu access
- URL:
http://localhost:8080/onlinefood/restaurants.jsp
- Category-based menu organization
- Item cards with images and descriptions
- Price display and availability status
- Quick add-to-cart functionality
- URL:
http://localhost:8080/onlinefood/menu.jsp
- Visual cart items list
- Quantity adjusters
- Subtotal and order summary
- Promo code support
- URL:
http://localhost:8080/onlinefood/cart.jsp
- View order history and manage preferences
- Update account information
- Address management
- URL:
http://localhost:8080/onlinefood/profile.jsp
- Order review page
- Delivery address confirmation
- Payment method selection
- Order confirmation number
- URL:
http://localhost:8080/onlinefood/checkout.jsp
- Comprehensive statistics overview
- Quick action buttons
- Recent orders feed
- Sales analytics
- URL:
http://localhost:8080/onlinefood/adminDashboard.jsp
- Add/edit restaurant details
- Manage operational hours
- Status toggle (active/inactive)
- URL:
http://localhost:8080/onlinefood/adminRestaurants.jsp
- Add/edit menu items
- Batch import items
- Category management
- Price and availability control
- URL:
http://localhost:8080/onlinefood/adminMenu.jsp
- Real-time order tracking
- Order status updates
- Customer communication
- Order history and reports
- URL:
http://localhost:8080/onlinefood/adminOrders.jsp
- View all customers
- Manage user accounts
- Role assignment
- Activity tracking
- URL:
http://localhost:8080/onlinefood/adminUsers.jsp
POST /LoginServlet Login user
POST /RegisterServlet Register new user
POST /LogoutServlet Logout user
GET /RestaurantServlet Fetch all restaurants
GET /RestaurantServlet?id=X Get restaurant details
POST /AdminServlet?action=addRestaurant Add restaurant (Admin)
GET /MenuServlet Fetch menu items
GET /MenuServlet?rid=X Get menu by restaurant
POST /AdminServlet?action=addMenuItem Add menu item (Admin)
POST /CheckoutServlet Place new order
GET /CheckoutServlet View order orders
POST /AdminServlet?action=updateOrder Update order status
POST /CartServlet Add item to cart
DELETE /CartServlet Remove from cart
GET /CartServlet View cart items
GET /ProfileServlet Get user profile
POST /ProfileServlet Update profile
-
Register Account
- Navigate to Register page
- Fill all required fields
- Verify email
- Start ordering!
-
Find & Order Food
- Browse restaurants
- View menu items
- Add to cart
- Proceed to checkout
- Confirm order
-
Track Orders
- Go to Profile
- View order history
- Check real-time status
- Rate restaurants
-
Login to Admin
- Use admin credentials
- Access dashboard
- View statistics
-
Manage Restaurant
- Update details
- Set hours
- Control status
-
Manage Menu
- Add menu items
- Set prices
- Toggle availability
-
Handle Orders
- View incoming orders
- Update status
- Communicate with customers
- Secure password hashing
- Session management
- Role-based access control
- Login persistence
- Add/remove items
- Quantity adjustment
- Real-time total calculation
- Session-based storage
- Order statistics
- Revenue tracking
- Popular items
- Customer insights
- Real-time status updates
- Delivery estimation
- Customer notifications
- Order history
| Issue | Solution |
|---|---|
| Database Connection Error | Check MySQL service, verify credentials in DBConnection.java |
| JAR Files Not Found | Place MySQL JDBC driver in WebContent/WEB-INF/lib/ |
| Page Not Loading | Restart Tomcat, clear browser cache, check logs |
| Admin Access Denied | Verify user role in database is set to 'ADMIN' |
| Servlet Not Found | Ensure web.xml is properly configured |
- Java JDK 8+ installed
- MySQL Server running
- Apache Tomcat configured
- Database schema imported
- Database credentials updated
- Project imported in Eclipse
- Server runtime configured
- Libraries/JARs in lib directory
We welcome contributions! Here's how to contribute:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit changes (
git commit -m 'Add AmazingFeature') - Push to branch (
git push origin feature/AmazingFeature) - Submit a Pull Request
- Follow existing code style
- Add comments for complex logic
- Test thoroughly before submitting
- Update documentation as needed
This project is licensed under the MIT License - see the LICENSE file for details.
MIT License
Copyright (c) 2026 FeastExpress
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction...
| Attribute | Details |
|---|---|
| Project Name | FeastExpress |
| Type | Online Food Delivery Platform |
| Version | 1.0.0 |
| Status | ✅ Active Development |
| Last Updated | February 2026 |
| Build Tool | Eclipse IDE |
| Server | Apache Tomcat 9.0+ |
Have questions or found a bug?
- 📧 Email: support@feastexpress.com
- 🐛 Issues: GitHub Issues
- 💬 Discussions: GitHub Discussions
- 📚 Wiki: Documentation
Perfect for learning:
- ✅ Java Servlet & JSP concepts
- ✅ MVC architecture pattern
- ✅ Database design and normalization
- ✅ Full-stack web development
- ✅ JDBC and connection pooling
- Mobile app development
- Real-time notification system
- Payment gateway integration
- AI-based recommendation engine
- Delivery tracking with GPS
- Multi-language support
- Cloud deployment
- Built with ❤️ using Java, JSP, and MySQL
- Modern responsive UI design
- Community-driven development
- Open-source libraries and frameworks


