Skip to content

himanshu9470/feastExpress

Repository files navigation

🍽️ FeastExpress

Your Gateway to Delicious Food, Delivered Fast

License: MIT Java MySQL Status

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.

FeaturesTech StackInstallationScreenshotsDocumentation


📌 Overview

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

✨ Key Features

👥 Customer Features

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

🏪 Admin Features

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

🛠️ Technology Stack

Backend Architecture

Java 8+ | Jakarta Servlet | JSP | JDBC

Frontend Layer

HTML5 | CSS3 | JavaScript (Vanilla)

Database

MySQL 8.0 | InnoDB Engine

Server & Tools

Apache Tomcat 9.0+ | Eclipse IDE | Git

📁 Project Structure

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


🗄️ Database Design

Entity Relationship Diagram

┌─────────────────┐         ┌──────────────────┐
│   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

2️⃣ Setup Database

# Login to MySQL
mysql -u root -p

# Create database and import schema
CREATE DATABASE onlinefood;
USE onlinefood;
source schema.sql;

3️⃣ Configure Database Connection

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

4️⃣ Import in Eclipse

  1. Open Eclipse IDE
  2. Click FileImportExisting Projects into Workspace
  3. Browse and select the project folder
  4. Click Finish

5️⃣ Configure Server

  1. Right-click Project → Properties
  2. Select Project Facets
  3. Set as Dynamic Web Project
  4. Configure Apache Tomcat v9.0 as Runtime

6️⃣ Deploy & Run

Right-click Project → Run As → Run on Server
Select Apache Tomcat v9.0 → Finish

Application URL: http://localhost:8080/onlinefood


📸 Screenshots & Demo

🏠 Home Page

  • 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  │           │
│  │ ⭐⭐⭐⭐⭐  │  │ ⭐⭐⭐⭐   │           │
│  └──────────┘  └──────────┘           │
└─────────────────────────────────────────┘

🔐 Login Section

  • Clean, minimalist login form
  • Email/Username input
  • Password field with recovery option
  • Social login integration (optional)
  • URL: http://localhost:8080/onlinefood/login.jsp

📝 Register Section

  • Comprehensive registration form
  • Real-time validation
  • Address input with autocomplete
  • Role selection (Customer/Admin)
  • URL: http://localhost:8080/onlinefood/register.jsp

🍽️ Restaurants Page

  • 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

Restaurants Page

🍜 Menu Section

  • 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

Menu Page

🛒 Shopping Cart

  • Visual cart items list
  • Quantity adjusters
  • Subtotal and order summary
  • Promo code support
  • URL: http://localhost:8080/onlinefood/cart.jsp

User Profile

  • View order history and manage preferences
  • Update account information
  • Address management
  • URL: http://localhost:8080/onlinefood/profile.jsp

User Profile Page

�💳 Checkout & Payment

  • Order review page
  • Delivery address confirmation
  • Payment method selection
  • Order confirmation number
  • URL: http://localhost:8080/onlinefood/checkout.jsp

⚙️ Admin Dashboard

  • Comprehensive statistics overview
  • Quick action buttons
  • Recent orders feed
  • Sales analytics
  • URL: http://localhost:8080/onlinefood/adminDashboard.jsp

🏢 Admin - Restaurant Management

  • Add/edit restaurant details
  • Manage operational hours
  • Status toggle (active/inactive)
  • URL: http://localhost:8080/onlinefood/adminRestaurants.jsp

🍴 Admin - Menu Management

  • Add/edit menu items
  • Batch import items
  • Category management
  • Price and availability control
  • URL: http://localhost:8080/onlinefood/adminMenu.jsp

📦 Admin - Orders Management

  • Real-time order tracking
  • Order status updates
  • Customer communication
  • Order history and reports
  • URL: http://localhost:8080/onlinefood/adminOrders.jsp

👥 Admin - User Management

  • View all customers
  • Manage user accounts
  • Role assignment
  • Activity tracking
  • URL: http://localhost:8080/onlinefood/adminUsers.jsp

🔌 API Endpoints

Authentication

POST   /LoginServlet              Login user
POST   /RegisterServlet           Register new user
POST   /LogoutServlet             Logout user

Restaurants

GET    /RestaurantServlet         Fetch all restaurants
GET    /RestaurantServlet?id=X    Get restaurant details
POST   /AdminServlet?action=addRestaurant    Add restaurant (Admin)

Menu

GET    /MenuServlet               Fetch menu items
GET    /MenuServlet?rid=X         Get menu by restaurant
POST   /AdminServlet?action=addMenuItem      Add menu item (Admin)

Orders

POST   /CheckoutServlet           Place new order
GET    /CheckoutServlet           View order orders
POST   /AdminServlet?action=updateOrder     Update order status

Cart

POST   /CartServlet               Add item to cart
DELETE /CartServlet               Remove from cart
GET    /CartServlet               View cart items

User

GET    /ProfileServlet            Get user profile
POST   /ProfileServlet            Update profile

📖 Usage Guide

🛍️ For Customers

  1. Register Account

    • Navigate to Register page
    • Fill all required fields
    • Verify email
    • Start ordering!
  2. Find & Order Food

    • Browse restaurants
    • View menu items
    • Add to cart
    • Proceed to checkout
    • Confirm order
  3. Track Orders

    • Go to Profile
    • View order history
    • Check real-time status
    • Rate restaurants

🏪 For Restaurant Admins

  1. Login to Admin

    • Use admin credentials
    • Access dashboard
    • View statistics
  2. Manage Restaurant

    • Update details
    • Set hours
    • Control status
  3. Manage Menu

    • Add menu items
    • Set prices
    • Toggle availability
  4. Handle Orders

    • View incoming orders
    • Update status
    • Communicate with customers

🎯 Key Features Explained

🔐 Authentication System

  • Secure password hashing
  • Session management
  • Role-based access control
  • Login persistence

🛒 Cart Management

  • Add/remove items
  • Quantity adjustment
  • Real-time total calculation
  • Session-based storage

📊 Admin Analytics

  • Order statistics
  • Revenue tracking
  • Popular items
  • Customer insights

🔔 Order Tracking

  • Real-time status updates
  • Delivery estimation
  • Customer notifications
  • Order history

🐛 Troubleshooting

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

📋 Requirements Checklist

  • 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

🤝 Contributing

We welcome contributions! Here's how to contribute:

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

Contribution Guidelines

  • Follow existing code style
  • Add comments for complex logic
  • Test thoroughly before submitting
  • Update documentation as needed

📄 License

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...

👨‍💻 Project Information

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+

📞 Support & Feedback

Have questions or found a bug?


🎓 Learning Resources

Perfect for learning:

  • ✅ Java Servlet & JSP concepts
  • ✅ MVC architecture pattern
  • ✅ Database design and normalization
  • ✅ Full-stack web development
  • ✅ JDBC and connection pooling

🚀 Roadmap

  • Mobile app development
  • Real-time notification system
  • Payment gateway integration
  • AI-based recommendation engine
  • Delivery tracking with GPS
  • Multi-language support
  • Cloud deployment

🙏 Acknowledgments

  • Built with ❤️ using Java, JSP, and MySQL
  • Modern responsive UI design
  • Community-driven development
  • Open-source libraries and frameworks

🌟 If this project helped you, please give it a star! 🌟

FeastExpressDelicious Food, Delivered Fast 🚀


Made with ❤️ by the Development Team

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages