A Complete Food Marketplace & Restaurant Management Ecosystem
Features β’ Tech Stack β’ Installation β’ Usage β’ API β’ Contributing
- About The Project
- Key Features
- System Architecture
- Tech Stack
- Project Structure
- Installation
- Usage
- API Documentation
- Screenshots
- Database Schema
- Contributing
- License
- Acknowledgments
Fresh Connect is a comprehensive full-stack web application designed to bridge the gap between food sellers, restaurants, and consumers. This platform promotes sustainable food consumption by featuring urgent sales for near-expiry products and free food listings to reduce food waste.
- Food waste is a major global issue with millions of tons wasted annually
- Small restaurants and sellers lack digital presence for reaching customers
- Consumers miss out on good deals due to lack of a unified platform
- No proper system exists for managing leftover food distribution
Fresh Connect provides a unified ecosystem where:
- Restaurants can manage their operations, menus, and reduce food waste
- Sellers can list products with special urgent sales features
- Consumers can discover deals, track orders, and access free food listings
- Admins can oversee the entire platform efficiently
| Feature | Description |
|---|---|
| π Authentication | Secure JWT-based login/registration |
| π Shopping Cart | Add, remove, and manage products |
| π Wishlist | Save favorite items for later |
| π Order Tracking | Real-time order status updates |
| π³ Payment Gateway | Secure payment processing |
| π Product Search | Advanced search with filters |
| β Reviews & Ratings | Rate and review products/restaurants |
| π Free Food Listings | Access surplus food distributions |
| β‘ Urgent Sales | Grab discounted near-expiry products |
| β Verified Restaurants | Browse trusted verified establishments |
| Feature | Description |
|---|---|
| π Analytics Dashboard | Sales insights and statistics |
| π¦ Product Management | Add, edit, categorize products |
| ποΈ Order Management | Process and track orders |
| π° Payment Management | View earnings and payment history |
| π Review Management | Respond to customer reviews |
| β‘ Urgent Sales | Create time-sensitive deals |
| β Verification System | Get verified seller badge |
| π Support System | Access customer support |
| Feature | Description |
|---|---|
| π Analytics Dashboard | Comprehensive business analytics |
| π½οΈ Menu Management | Digital menu creation and updates |
| π¦ Inventory Management | Track stock levels |
| π₯ Staff Management | Manage team members |
| π Order Management | Handle incoming orders |
| π Leftover Food | List surplus food for distribution |
| β‘ Urgent Sales | Quick sale for excess inventory |
| π¬ Customer Feedback | View and respond to feedback |
| π Purchase History | Track all purchases |
| β Verification Badge | Display verified status |
| Feature | Description |
|---|---|
| π₯ User Management | Manage all platform users |
| β Hotel Verification | Verify restaurant authenticity |
| β Seller Verification | Verify seller accounts |
| π Order Monitoring | Oversee all platform orders |
| π³ Payment Management | Handle payment disputes |
| π Analytics | Platform-wide statistics |
| π Content Management | Manage platform content |
| π¨ Complaint Handling | Resolve user complaints |
| π Report Generation | Generate business reports |
| βοΈ System Settings | Configure platform settings |
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β FRESH CONNECT β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ β
β β Customer β β Seller β β Hotel Owner β β
β β Portal β β Dashboard β β Portal β β
β β (React.js) β β (React.js) β β (React.js) β β
β ββββββββ¬ββββββββ ββββββββ¬ββββββββ ββββββββ¬ββββββββ β
β β β β β
β ββββββββββββββββββ¬β΄ββββββββββββββββββ β
β β β
β ββββββββΌββββββββ β
β β Admin β β
β β Panel β β
β β (React.js) β β
β ββββββββ¬ββββββββ β
β β β
β βββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββ β
β β REST API Layer β β
β β (Express.js + Node.js) β β
β β βββββββββββ βββββββββββ βββββββββββ βββββββββββββββββββ β β
β β β Auth β β Orders β βProducts β β Analytics β β β
β β β Routes β β Routes β β Routes β β Routes β β β
β β βββββββββββ βββββββββββ βββββββββββ βββββββββββββββββββ β β
β ββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββ β
β β β
β ββββββββΌββββββββ β
β β MongoDB β β
β β Database β β
β ββββββββββββββββ β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
| Technology | Purpose |
|---|---|
| UI Library | |
| Build Tool | |
| Styling | |
| Navigation | |
| HTTP Client | |
| Data Visualization |
| Technology | Purpose |
|---|---|
| Runtime Environment | |
| Web Framework | |
| Database | |
| ODM | |
| Authentication | |
| Password Hashing |
| Technology | Purpose |
|---|---|
| Version Control | |
| Package Manager | |
| API Testing | |
| IDE |
Fresh-Connect/
β
βββ π admin/ # Admin Panel (React)
β βββ π src/
β β βββ π components/ # Reusable UI components
β β βββ π pages/ # Admin pages
β β β βββ Analytics.jsx
β β β βββ ComplaintHandling.jsx
β β β βββ ContentManagement.jsx
β β β βββ Dashboard.jsx
β β β βββ HotelVerification.jsx
β β β βββ OrderMonitoring.jsx
β β β βββ PaymentManagement.jsx
β β β βββ ReportGeneration.jsx
β β β βββ SellerVerification.jsx
β β β βββ SystemSettings.jsx
β β β βββ UserManagement.jsx
β β βββ π contexts/ # React Context providers
β β βββ π services/ # API services
β β βββ π api/ # API routes
β βββ π package.json
β
βββ π Major-Project-main/ # Main Application
β β
β βββ π frontend/ # Customer & Seller Frontend (React + Vite)
β β βββ π src/
β β β βββ π pages/
β β β β βββ π user/ # Customer pages
β β β β β βββ HomePage.jsx
β β β β β βββ ShoppingCart.jsx
β β β β β βββ OrderTracking.jsx
β β β β β βββ PaymentGateway.jsx
β β β β β βββ ProductSearch.jsx
β β β β β βββ UrgentSales.jsx
β β β β β βββ FreeFoodListings.jsx
β β β β β βββ ...
β β β β βββ π seller/ # Seller pages
β β β β β βββ Dashboard.jsx
β β β β β βββ Products.jsx
β β β β β βββ Orders.jsx
β β β β β βββ Analytics.jsx
β β β β β βββ ...
β β β β βββ π hotelOwner/ # Hotel owner pages
β β β β βββ Dashboard.jsx
β β β β βββ MenuManagement.jsx
β β β β βββ Inventory.jsx
β β β β βββ LeftoverFood.jsx
β β β β βββ ...
β β β βββ π components/ # Shared components
β β β βββ π context/ # State management
β β β βββ π utils/ # Utility functions
β β βββ π package.json
β β
β βββ π backend/ # Backend API (Node.js + Express)
β βββ π controllers/ # Request handlers
β βββ π models/ # MongoDB schemas
β βββ π routes/ # API routes
β βββ π middleware/ # Custom middleware
β βββ π config/ # Configuration files
β βββ π utils/ # Utility functions
β βββ π package.json
β
βββ π database-data/ # Sample database data
βββ π README.md # This file
βββ π LICENSE # MIT License
βββ π CONTRIBUTING.md # Contribution guidelines
βββ π .gitignore # Git ignore rules
Before you begin, ensure you have the following installed:
git clone https://github.com/VivekGhantiwala/Fresh-Connect.git
cd Fresh-Connect# Navigate to backend directory
cd Major-Project-main/backend
# Install dependencies
npm install
# Create environment file
cp .env.example .env
# Edit .env with your configurations
# MONGODB_URI=mongodb://localhost:27017/freshconnect
# JWT_SECRET=your_super_secret_key
# PORT=5001
# Start the backend server
npm run dev# Open a new terminal
# Navigate to frontend directory
cd Major-Project-main/frontend
# Install dependencies
npm install
# Create environment file
echo "VITE_BASE_URL=http://localhost:5001/api" > .env
# Start the frontend development server
npm run dev# Open a new terminal
# Navigate to admin directory
cd admin
# Install dependencies
npm install
# Start the admin panel
npm startcd Major-Project-main/backend
npm run seed| Portal | URL |
|---|---|
| π€ Customer Frontend | http://localhost:5173 |
| π‘οΈ Admin Panel | http://localhost:3000 |
| π Backend API | http://localhost:5001 |
- Register/Login to the platform
- Browse Products or search for specific items
- Add to Cart and manage your shopping cart
- Checkout with secure payment
- Track Orders in real-time
- Rate & Review products/restaurants
- Register as a seller
- Complete Verification for trust badge
- Add Products to your store
- Manage Orders and shipments
- View Analytics and grow your business
- Register your restaurant
- Get Verified for authenticity badge
- Manage Menu items digitally
- Track Inventory and orders
- List Leftover Food to reduce waste
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/auth/register |
Register new user |
| POST | /api/auth/login |
User login |
| GET | /api/auth/profile |
Get user profile |
| PUT | /api/auth/profile |
Update profile |
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/products |
Get all products |
| GET | /api/products/:id |
Get single product |
| POST | /api/products |
Create product |
| PUT | /api/products/:id |
Update product |
| DELETE | /api/products/:id |
Delete product |
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/orders |
Get user orders |
| POST | /api/orders |
Create new order |
| GET | /api/orders/:id |
Get order details |
| PUT | /api/orders/:id/status |
Update order status |
View All API Endpoints
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/cart |
Get user cart |
| POST | /api/cart/add |
Add item to cart |
| DELETE | /api/cart/:itemId |
Remove from cart |
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/hotels |
Get all hotels |
| GET | /api/hotels/:id |
Get hotel details |
| POST | /api/hotels |
Register hotel |
| GET | /api/hotels/:id/menu |
Get hotel menu |
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/analytics/dashboard |
Dashboard stats |
| GET | /api/analytics/sales |
Sales analytics |
| GET | /api/analytics/orders |
Order analytics |
Click to View Screenshots
Customer landing page with featured products and restaurants
Cart management with quantity controls
Analytics and order management for sellers
Comprehensive restaurant management interface
Platform administration and monitoring
{
_id: ObjectId,
name: String,
email: String,
password: String (hashed),
role: ['customer', 'seller', 'hotel_owner', 'admin'],
isVerified: Boolean,
createdAt: Date,
updatedAt: Date
}{
_id: ObjectId,
name: String,
description: String,
price: Number,
category: String,
seller: ObjectId (ref: User),
images: [String],
stock: Number,
isUrgentSale: Boolean,
urgentSaleDiscount: Number,
createdAt: Date
}{
_id: ObjectId,
customer: ObjectId (ref: User),
items: [{
product: ObjectId,
quantity: Number,
price: Number
}],
totalAmount: Number,
status: ['pending', 'confirmed', 'shipped', 'delivered'],
shippingAddress: Object,
paymentStatus: String,
createdAt: Date
}Contributions are what make the open source community amazing! Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
See CONTRIBUTING.md for detailed guidelines.
Distributed under the MIT License. See LICENSE for more information.
- React.js Documentation
- MongoDB Documentation
- Express.js Guide
- TailwindCSS
- Shields.io for badges
- Icons8 for icons
BCA Semester 6 Major Project
Designed & Developed with passion
β Star this repository if you found it helpful! β