Modern, full-stack Canteen and Food Delivery Management System built with Django, Channels, and Firebase. This platform facilitates seamless food ordering, menu management for restaurants, and real-time order tracking for delivery personnel.
- Customers: Browse menus (categorized by submenus), add items to carts with price snapshots, and track orders in real-time.
- Restaurants: Manage dynamic menu availability, item levels, and receive instant push notifications for new orders.
- Delivery Personnel: Dedicated workflow for accepting and completing deliveries with secure PIN verification.
- Administrators: Full system oversight, notification management, and dynamic pricing configuration.
- Real-Time Updates: Live order status via Django Channels (WebSockets) and Redis.
- Secure Verification: Orders are fulfilled using a secure 4-digit PIN system.
- Automated Billing: Dynamic calculation of GST, packaging, delivery, and platform fees based on order type (Delivery, Pickup, Dining).
- Stock Management: Real-time inventory tracking with automatic item unavailability upon stock depletion.
- Payment Integration: Secure transaction handling with support for UPI, Cards, and NetBanking (PayU and PhonePe).
- Cloud Notifications: Firebase Cloud Messaging (FCM) integration for cross-platform push notifications.
- Verified Communication: Email verification system using secure UUID-based request tracking.
- Backend: Django 5.1 & Django REST Framework (DRF)
- Real-Time: Django Channels (WebSockets) & Redis
- Database: SQLite (Development) / PostgreSQL (Production)
- Notifications: Firebase Admin SDK (FCM)
- Security: Django-allauth with Social Authentication (Google)
- Asset Management: Whitenoise for efficient static file serving
- Environment: Decoupled configuration via
.envfiles
- Python 3.10+
- Redis (required for WebSocket support)
- PostgreSQL (optional, can be configured in
.env)
-
Clone the repository
git clone https://github.com/yourusername/canteen.git cd canteen -
Set up virtual environment
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install dependencies
pip install -r requirements.txt
-
Environment Configuration Create a
.envfile from the provided template:cp .env.example .env
Provide your specific credentials:
SECRET_KEYDATABASE_URLGOOGLE_OAUTH_CLIENT_ID/SECRETFIREBASE_SECRET_JSONPAYU_KEY/SALT
-
Initialize Database
python manage.py migrate
-
Running the Application For local development:
python manage.py runserver
For production-ready WebSocket support:
daphne -p 8000 canteen.asgi:application
├── canteen/ # Main project configuration (settings, wsgi, asgi)
├── canteenapp/ # core application logic, models, views, and consumers
│ ├── consumers.py # WebSocket/Async logic
│ ├── firebase.py # FCM integration
│ ├── models.py # Data schema
│ └── views.py # Backend controllers
├── samples/ # Project screenshots and assets
├── static/ # Static assets (CSS, JS, Images)
├── staticfiles/ # Collected static files for production
├── manage.py # Django management script
└── requirements.txt # Project dependencies
Professional contributions are welcome. Please adhere to the established CODE_OF_CONDUCT.md.
This project is licensed under the MIT License - see the LICENSE file for details.
Developed by Harshavardhan Vemali



