DineIn is a food ordering and delivery platform built using Django 3.1. It is designed to streamline food delivery within a university campus by providing distinct functionalities for admins, vendors, and users. The system is modular, comprising three key components: Admin Module, Vendor Module, and User Module.
The Admin Module provides comprehensive tools for managing the platform, vendors, users, and orders.
- Overview: Summarizes key metrics, offering a high-level view of platform performance.
- Status Cards: Displays metrics such as total users, total vendors, total orders, and active orders.
- Notifications: Alerts about newly joined vendors, recent user activities, and current order statuses.
- Sign Out: Allows secure logout for administrators.
- Vendor Registration: Add new vendors with details like business name, location, menu, and contact info.
- Vendor Listing: View a list of all registered vendors, categorized as active, pending, or suspended.
- Vendor Suspension/Activation: Manage vendor access by activating or suspending accounts.
- Order Overview: Month-on-month sales data and total orders categorized.
- Order Details: Information such as order ID, customer name, vendor, order status, delivery time, and amount.
- Order Tracking: Real-time tracking and status updates.
- User Listing: View all registered users with details like name, email, and role.
- User Deletion: Delete inactive or problematic users.
The Vendor Module empowers vendors to manage their business effectively on the platform.
- Overview: Key metrics such as total orders, pending orders, and total revenue.
- Order Notifications: Real-time alerts for new incoming orders.
- Menu Creation: Add new items, including product name, description, image, and price.
- Item Availability: Mark items as in-stock or out-of-stock based on inventory.
- Menu Updates: Modify item details, including prices and availability.
- Order Listing: View incoming orders with details like order time, items ordered, delivery address, and total price.
- Order Status Update: Update the order status to "Preparing," "Out for Delivery," or "Delivered."
The User Module focuses on providing a seamless experience for end-users.
- User Registration: Register with email verification.
- Login: Authenticate using registered credentials.
- Password Reset: Reset forgotten passwords.
- Session Management: Ensure secure user sessions.
- Profile Information: Update profile details like name, phone number, and profile picture.
- Order History: View a history of past orders, including dates, items, and statuses.
- Address Management: Add, edit, or delete delivery addresses.
- Browse Menu: Browse menus of nearby vendors within a 5 km radius.
- Order Placement: Add items to the cart, apply discounts, and confirm orders.
- Real-Time Order Tracking: Track orders from preparation to delivery.
- Order Cancellation: Cancel orders within a specified timeframe.
-
Clone the repository:
git clone <repository_url> cd dinein
-
Install dependencies:
pip install -r requirements.txt
-
Apply database migrations:
python manage.py migrate
-
Start the development server:
python manage.py runserver
-
Access the application at
http://127.0.0.1:8000
.
- Backend: Django
- Database: PostgreSQL (default, configurable for production)
- Frontend: HTML, CSS, JavaScript (extendable)
- Role-based functionality for admins, vendors, and users.
- Real-time notifications and order tracking.
- Comprehensive vendor and menu management.
- Secure user authentication and session management.
Contributions are welcome! Please follow these steps:
- Fork the repository.
- Create a new branch:
git checkout -b main/DineIn
- Commit your changes:
git commit -m "Add your message here"
- Push the branch:
git push origin main/DineIn
- Open a pull request.
This project is licensed under the MIT License.