Skip to content

Sanchet237/QR-Dine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

13 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

QRDine Logo

๐Ÿฝ๏ธ QRDine โ€” Digital Menu Platform

Transform your restaurant menu into an interactive digital experience accessible via QR code

Quick Start โ€ข Demo Credentials โ€ข Features โ€ข Installation โ€ข Documentation

Django Python License Status

QRDine Landing Page

๐Ÿ“– Table of Contents


๐ŸŒŸ Overview

QRDine is a production-ready, multi-tenant SaaS platform that empowers restaurants to create and manage digital menus accessible via QR codes. No app installation required for customers, no technical knowledge needed for restaurant owners.

๐ŸŽฏ Perfect For

๐Ÿจ Restaurants โ˜• Cafes ๐Ÿ• Food Trucks ๐Ÿบ Bars
Full-service dining Quick-service cafes Mobile vendors Drink menus

Live Demo: https://qr-dine-15cf.onrender.com


โœจ Why Choose QRDine?

Feature Benefit
๐Ÿš€ 5-Minute Setup From registration to live menu in under 5 minutes
๐Ÿ’ฐ โ‚น0 to Start Free tier available, no credit card required
๐Ÿ“ฑ Zero App Required Customers just scan and browseโ€”no downloads
๐Ÿ”„ Real-Time Updates Mark items unavailable instantly, reflects immediately
๐ŸŒ Multi-Tenant Ready One platform, unlimited restaurants
๐Ÿ“Š Analytics Ready Built-in dashboard with key metrics
๐ŸŽจ Mobile-First Design Optimized for smartphones and tablets
๐Ÿ”’ Secure & Reliable Django-powered backend with role-based authentication

โšก Quick Start

Get QRDine running locally in 5 minutes

# 1๏ธโƒฃ Clone the repository
git clone https://github.com/Sanchet237/qrdine.git
cd qrdine

# 2๏ธโƒฃ Create virtual environment
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# 3๏ธโƒฃ Install dependencies
pip install -r requirements.txt

# 4๏ธโƒฃ Setup database
python manage.py migrate

# 5๏ธโƒฃ Create superuser (optional)
python manage.py createsuperuser

# 6๏ธโƒฃ Run development server
python manage.py runserver

๐ŸŽ‰ Success! Visit http://127.0.0.1:8000/ to see the application.

๐Ÿ“š Next Steps: See Installation for detailed setup instructions.


๐Ÿ”‘ Demo Credentials

๐ŸŽญ Try QRDine with pre-configured demo accounts

๐Ÿ” Super Admin Access

Platform Administration Panel

URL:      https://qr-dine-15cf.onrender.com/superadmin/
Email:    admin@qrdine.com
Password: admin123

What you can do:

  • โœ… View platform statistics
  • โœ… Manage all restaurants
  • โœ… Monitor user activity
  • โœ… Toggle restaurant status
  • โœ… Delete inactive restaurants

๐Ÿจ Restaurant Owner โ€” Hotel Subedar

Restaurant Dashboard & Menu Management

URL:      https://qr-dine-15cf.onrender.com/restaurants/dashboard/
Email:    hotelsubedar@example.com
Password: subedar@123

What you can do:

  • โœ… Manage menu items & categories
  • โœ… Toggle item availability
  • โœ… Upload dish images
  • โœ… Download QR code
  • โœ… View dashboard analytics

๐Ÿฝ๏ธ View Public Menu: https://qr-dine-15cf.onrender.com/menu/hotel-subedar/

๐Ÿ’ก Tip: These demo accounts are created automatically when you run the management commands included in the project. See restaurants/management/commands/ for details.


๐ŸŽฏ Problem Statement

Traditional physical menus face several challenges:

  • Costly to update: Reprinting menus for price changes or new items is expensive
  • Unhygienic: Shared menus pose sanitation concerns, especially post-pandemic
  • Static experience: No real-time availability updates (sold-out items)
  • Limited information: Space constraints restrict detailed descriptions and images
  • Language barriers: Difficult to offer multi-language support

๐Ÿ’ก Solution

QRDine is a multi-tenant SaaS platform that enables restaurants to digitize their menus instantly. Customers scan a QR code and access a mobile-optimized menu without installing any app. Restaurant owners manage their menus through an intuitive dashboard with real-time updates.

Key Benefits:

  • โœ… Instant menu updates without reprinting
  • โœ… Contactless ordering experience
  • โœ… Rich media support (HD images, descriptions)
  • โœ… Real-time availability toggles
  • โœ… Analytics-ready architecture
  • โœ… Zero app installation for customers

โšก Features at a Glance

๐Ÿช Restaurant Owners ๐Ÿ“ฑ Customers ๐Ÿ” Platform Admins
๐Ÿ“ Self-service registration ๐Ÿ“ฒ No app installation needed ๐ŸŽ›๏ธ Full platform control
๐Ÿฝ๏ธ Visual menu builder ๐Ÿ” Real-time search ๐Ÿ‘ฅ User management
๐Ÿ“ธ Image upload & management ๐Ÿท๏ธ Smart category filters ๐Ÿ“Š Analytics dashboard
๐Ÿ“ฑ QR code auto-generation ๐ŸŒฟ Vegan/non-veg indicators ๐Ÿ—‘๏ธ Bulk operations
๐Ÿ”„ Real-time availability toggle ๐Ÿ’ฐ Clear pricing display ๐Ÿ›ก๏ธ Security controls
๐Ÿ“Š Dashboard with analytics ๐ŸŽจ Mobile-first UI/UX ๐Ÿ”ง Platform configuration
๐ŸŽจ Restaurant profile customization ๐Ÿš€ Fast, smooth browsing ๐Ÿ“ˆ Growth monitoring
๐Ÿ–ผ๏ธ Logo & branding upload โœ… No registration required โš™๏ธ Settings management

โœจ Features

For Restaurant Owners

  • ๐Ÿช Self-Service Registration โ€” Restaurant owners can sign up and onboard independently
  • ๐Ÿ“ Menu Builder โ€” Create categories and menu items with images, descriptions, and prices
  • ๐Ÿ”„ Real-Time Availability Toggle โ€” Mark items as sold-out instantly (reflects immediately on customer menus)
  • ๐Ÿ–ผ๏ธ Image Management โ€” Upload high-quality dish images with automatic optimization
  • ๐Ÿ“ฑ QR Code Generation โ€” Auto-generated scannable QR codes for each restaurant
  • ๐Ÿ“Š Dashboard Analytics โ€” View total items, available items, and sold-out count
  • ๐ŸŽจ Profile Customization โ€” Update restaurant name, address, description, and logo

For Customers

  • ๐Ÿ“ฒ No App Required โ€” Access menus directly via QR scan (mobile browser)
  • ๐ŸŽจ Modern UI/UX โ€” Dark theme with smooth animations and responsive design
  • ๐Ÿ” Advanced Search โ€” Real-time search across all menu items
  • ๐Ÿท๏ธ Smart Filters:
    • Filter by category (Starters, Main Course, Desserts, etc.)
    • Dietary filters (Veg Only / Non-Veg Only)
    • Availability filter (Hide sold-out items)
  • ๐ŸŒฟ Visual Dietary Indicators โ€” Green dot for veg, red triangle for non-veg
  • ๐Ÿ’ฐ Clear Pricing โ€” Prices displayed in local currency

For Platform Admins (Super Admin)

  • ๐Ÿ” Restaurant Management โ€” Approve/suspend restaurants
  • ๐Ÿ‘ฅ User Management โ€” View and manage restaurant admin accounts
  • ๐Ÿ“ˆ Platform Dashboard โ€” Overview of total restaurants and activity
  • ๐Ÿ—‘๏ธ Bulk Operations โ€” Delete inactive restaurants

๐Ÿ› ๏ธ Technology Stack

Backend

Django Python SQLite PostgreSQL

Frontend

HTML5 CSS3 JavaScript Tailwind CSS

Libraries & Tools

Pillow QR Code WhiteNoise

Layer Technology Purpose
Backend Framework Django 4.2.11 (Python 3.10+) Web framework, ORM, authentication
Database (Dev) SQLite3 Lightweight development database
Database (Prod) PostgreSQL Production-ready relational database
Frontend Django Templates + Vanilla JS Server-side rendering with progressive enhancement
Styling Tailwind CSS (CDN) Utility-first CSS framework
Image Processing Pillow 10.3.0 Image uploads, optimization, resizing
QR Generation qrcode[pil] 7.4.2 Dynamic QR code generation
Static Files WhiteNoise 6.6.0 Static file serving in production
Environment python-dotenv 1.0.0 Environment variable management
WSGI Server Gunicorn Production HTTP server

๐Ÿ—๏ธ System Architecture

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚   Customer  โ”‚ โ”€โ”€> Scans QR Code โ”€โ”€> Mobile Menu Viewer
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜                       (Public, No Login)
                                              โ”‚
                                              โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”                    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ Restaurant   โ”‚ โ”€โ”€> Dashboard โ”€โ”€>  โ”‚  Django Backendโ”‚
โ”‚    Owner     โ”‚     (CRUD Menu)    โ”‚   (Business    โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜                    โ”‚     Logic)     โ”‚
                                    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”                             โ”‚
โ”‚ Super Admin  โ”‚ โ”€โ”€> Admin Panel โ”€โ”€>         โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    (Platform Mgmt)          โ–ผ
                                    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                                    โ”‚   SQLite DB    โ”‚
                                    โ”‚  (Models:      โ”‚
                                    โ”‚   Restaurant,  โ”‚
                                    โ”‚   MenuItem,    โ”‚
                                    โ”‚   Category)    โ”‚
                                    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Data Flow:

  1. Restaurant owner registers โ†’ Creates account
  2. Adds menu items โ†’ Stored in database
  3. QR code auto-generated โ†’ Links to /menu/<restaurant-slug>/
  4. Customer scans QR โ†’ Fetches live menu data
  5. Owner toggles availability โ†’ Updates reflected instantly

๐Ÿ“ Project Structure

qrdine/
โ”œโ”€โ”€ accounts/                 # User authentication & authorization
โ”‚   โ”œโ”€โ”€ models.py            # Custom User model (roles: superadmin, restaurant_admin)
โ”‚   โ”œโ”€โ”€ views.py             # Login, registration, logout views
โ”‚   โ”œโ”€โ”€ forms.py             # Registration and login forms
โ”‚   โ””โ”€โ”€ urls.py              # Auth routes
โ”‚
โ”œโ”€โ”€ restaurants/              # Restaurant management core
โ”‚   โ”œโ”€โ”€ models.py            # Restaurant, Category, MenuItem models
โ”‚   โ”œโ”€โ”€ views.py             # Dashboard, menu CRUD, QR generation
โ”‚   โ”œโ”€โ”€ utils.py             # QR code generation utility
โ”‚   โ”œโ”€โ”€ forms.py             # Menu item and category forms
โ”‚   โ”œโ”€โ”€ decorators.py        # @restaurant_required decorator
โ”‚   โ”œโ”€โ”€ context_processors.py # Global template context
โ”‚   โ””โ”€โ”€ management/
โ”‚       โ””โ”€โ”€ commands/        # CLI commands (create demo data)
โ”‚
โ”œโ”€โ”€ menu/                     # Public menu viewer (customer-facing)
โ”‚   โ”œโ”€โ”€ views.py             # menu_viewer() - public menu display
โ”‚   โ””โ”€โ”€ urls.py              # /menu/<slug>/ route
โ”‚
โ”œโ”€โ”€ superadmin/               # Platform administration
โ”‚   โ”œโ”€โ”€ views.py             # Platform dashboard, restaurant management
โ”‚   โ”œโ”€โ”€ decorators.py        # @superadmin_required decorator
โ”‚   โ””โ”€โ”€ urls.py              # /superadmin/ routes
โ”‚
โ”œโ”€โ”€ core/                     # Landing page & shared utilities
โ”‚   โ”œโ”€โ”€ views.py             # Landing page, 404/500 handlers
โ”‚   โ””โ”€โ”€ urls.py              # Root URL
โ”‚
โ”œโ”€โ”€ templates/                # HTML templates
โ”‚   โ”œโ”€โ”€ base.html            # Base template with nav
โ”‚   โ”œโ”€โ”€ base_dashboard.html  # Dashboard-specific base
โ”‚   โ”œโ”€โ”€ accounts/            # Login, registration pages
โ”‚   โ”œโ”€โ”€ restaurants/         # Dashboard templates
โ”‚   โ”œโ”€โ”€ menu/                # Public menu viewer
โ”‚   โ”œโ”€โ”€ superadmin/          # Admin templates
โ”‚   โ””โ”€โ”€ core/                # Landing page
โ”‚
โ”œโ”€โ”€ static/                   # Static assets
โ”‚   โ”œโ”€โ”€ images/              # Logo, branding assets
โ”‚   โ””โ”€โ”€ qr_codes/            # Generated QR codes (static copy)
โ”‚
โ”œโ”€โ”€ media/                    # User-uploaded files
โ”‚   โ”œโ”€โ”€ logos/               # Restaurant logos
โ”‚   โ”œโ”€โ”€ menu_items/          # Dish images
โ”‚   โ””โ”€โ”€ qr_codes/            # Generated QR codes
โ”‚
โ”œโ”€โ”€ qrdine/                   # Django project settings
โ”‚   โ”œโ”€โ”€ settings.py          # Configuration
โ”‚   โ”œโ”€โ”€ urls.py              # Root URL configuration
โ”‚   โ””โ”€โ”€ wsgi.py              # WSGI entry point
โ”‚
โ”œโ”€โ”€ manage.py                 # Django management script
โ”œโ”€โ”€ requirements.txt          # Python dependencies
โ”œโ”€โ”€ .env.example             # Environment variables template
โ””โ”€โ”€ README.md                # This file

๐Ÿš€ Installation

Prerequisites

  • Python 3.10 or higher
  • pip (Python package manager)
  • virtualenv (recommended)

Step 1: Clone the Repository

git clone https://github.com/Sanchet237/qrdine.git
cd qrdine

Step 2: Create Virtual Environment

# Windows
python -m venv venv
venv\Scripts\activate

# macOS/Linux
python3 -m venv venv
source venv/bin/activate

Step 3: Install Dependencies

pip install -r requirements.txt

Dependencies installed:

  • Django==4.2.11
  • Pillow==10.3.0
  • qrcode[pil]==7.4.2
  • whitenoise==6.6.0
  • python-dotenv==1.0.0

Step 4: Environment Configuration

Create a .env file in the project root:

cp .env.example .env

Edit .env and update:

SECRET_KEY=your-super-secret-key-here-change-in-production
DEBUG=True
ALLOWED_HOSTS=localhost,127.0.0.1

Step 5: Database Setup

# Run migrations in order
python manage.py makemigrations accounts
python manage.py migrate accounts
python manage.py makemigrations restaurants
python manage.py migrate restaurants
python manage.py migrate

Step 6: Create Superuser

python manage.py createsuperuser

Important: When prompted for role, enter superadmin

Step 7: Run Development Server

python manage.py runserver

Access the application at: http://127.0.0.1:8000/


๐Ÿ“ฑ Usage Guide

For Restaurant Owners

1. Register Your Restaurant

  • Navigate to /accounts/register/
  • Fill in restaurant details (name, email, phone, address)
  • Create account credentials
  • Automatic slug generation from restaurant name

2. Login to Dashboard

  • Go to /accounts/login/
  • Enter credentials
  • Redirects to /dashboard/

3. Manage Menu Categories

  • Navigate to Dashboard โ†’ Categories
  • Add categories (e.g., "Starters", "Main Course", "Desserts")
  • Set display order (items will be sorted accordingly)

4. Add Menu Items

  • Go to Dashboard โ†’ Menu Items โ†’ Add New Item
  • Fill in details:
    • Name, Description, Price
    • Upload dish image (optional)
    • Select category
    • Mark as Vegetarian (checkbox)
    • Set availability (default: available)

5. Toggle Availability

  • From menu items list, click Toggle Availability button
  • Instantly marks items as sold-out or available
  • Updates reflect immediately on customer menu

6. Generate QR Code

  • Navigate to Dashboard โ†’ QR Code
  • QR code auto-generated linking to /menu/<your-restaurant-slug>/
  • Download high-resolution QR code
  • Print and display at tables, counter, or entrance

For Customers

  1. Scan QR Code at restaurant (using phone camera)
  2. Browser opens menu automatically (no app install)
  3. Browse menu with categories, images, and prices
  4. Use filters:
    • Search by dish name
    • Filter by category
    • Show only Veg/Non-Veg items
    • Hide sold-out items
  5. Visual indicators: Green dot (veg), Red triangle (non-veg)

For Super Admins

  • Access /superadmin/ after logging in as superadmin
  • View all registered restaurants
  • Toggle restaurant active/inactive status
  • Delete restaurants (with confirmation)
  • View platform statistics

๐Ÿ“ธ Screenshots

๐Ÿ  Landing Page

Beautiful, modern landing page with clear call-to-actions and feature highlights.

QRDine Landing Page


โœ๏ธ Restaurant Registration

Simple, streamlined registration process for restaurant owners.

Restaurant Registration


๐Ÿ“Š Restaurant Dashboard

Intuitive dashboard with menu management, analytics, and quick actions.

Restaurant Dashboard


๐Ÿ“ฑ QR Code Generation

Auto-generated QR codes ready to download and print for table placement.

QR Code Generation


๐Ÿฝ๏ธ Customer Menu View

Mobile-optimized menu with beautiful dish images and clear pricing.

Customer Menu View


๐Ÿ” Menu with Filters

Advanced filtering by category, dietary preferences, and availability.

Menu Filters


๐Ÿ”ฎ Future Enhancements

  • Online Ordering โ€” Add to cart and place orders
  • Payment Integration โ€” Razorpay/Stripe integration
  • Multi-Language Support โ€” Hindi, Spanish, French menus
  • Analytics Dashboard โ€” Track popular items, peak hours
  • Table Management โ€” QR codes per table with table numbers
  • Customer Reviews โ€” Rating and feedback system
  • Allergen Information โ€” Tag items with allergen warnings
  • Spice Level Indicators โ€” Mild, Medium, Hot labels
  • Combo Offers โ€” Bundle pricing and meal deals
  • Push Notifications โ€” Alert customers about new dishes
  • WhatsApp Integration โ€” Order via WhatsApp Business API
  • Dark/Light Theme Toggle โ€” User preference for menu theme

๐Ÿ“š Documentation

Detailed documentation is available for each module:


๐Ÿค Contributing

We welcome contributions! To contribute:

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

Contribution Guidelines

  • Follow PEP 8 style guide for Python code
  • Write meaningful commit messages
  • Add tests for new features
  • Update documentation as needed

๐Ÿ“„ License

This project is licensed under the MIT License โ€” see the LICENSE file for details.

Copyright (c) 2026 Sanchet Kolekar


๐Ÿ‘จโ€๐Ÿ’ป Author

Sanchet Kolekar

LinkedIn Instagram GitHub Email Phone Project


โญ Show Your Support

If you find QRDine useful, please consider:

  • โญ Starring this repository
  • ๐Ÿ› Reporting bugs or suggesting features via Issues
  • ๐Ÿ”€ Contributing to the codebase via Pull Requests
  • ๐Ÿ“ฃ Sharing with restaurant owners who could benefit

QRDine Logo

Made with โค๏ธ for the restaurant industry

Transforming dining experiences, one QR code at a time


ยฉ 2026 Sanchet Kolekar. Licensed under MIT.

Django Python License

About

Django powered QR code digital menu platform enabling restaurants to create and manage interactive menus accessible instantly via QR scan.

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Contributors