Skip to content

Obed200/client_registration

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BuySellRent Digital Reception Display System

A complete Django-based solution for managing client reception using a web form and smart TV display.

System Overview

Receptionist Computer (Web Form)
           ↓
        Database
           ↓
TV Browser (Live Dashboard Page)

Features

Receptionist Form

  • Client full name input
  • Phone number input with validation
  • Product name input
  • Client address/district input
  • Automatic timestamp recording
  • Company selection (BuySellRent)
  • Real-time form validation
  • Recent entries preview

Database

  • SQLite database (default, easily switch to MySQL/PostgreSQL)
  • Client information storage
  • Secure data persistence
  • Admin panel for management

Smart TV Display

  • Auto-refreshing dashboard (3-second intervals)
  • Responsive design for all screen sizes
  • Animated welcome message
  • Live client information display
  • Professional styling
  • Empty state when no clients
  • Time display with automatic updates

Additional Features

  • Animated text and transitions
  • Gradient background animations
  • Responsive design
  • Admin panel for data management
  • API endpoints for future extensions
  • AJAX-based live updates

Technology Stack

  • Backend: Django 5.1.2
  • Database: SQLite (default)
  • Frontend: Bootstrap 5, JavaScript, HTML5
  • Styling: Custom CSS with animations
  • Server: Django Development Server

Installation & Setup

Prerequisites

  • Python 3.8+
  • pip (Python package manager)
  • Modern web browser
  • TV display (optional, any browser will work)

Quick Start

  1. Clone or navigate to the project directory

    cd "digital reception display system"
  2. Install dependencies

    pip install -r requirements.txt
  3. Run migrations (Already done)

    python manage.py migrate
  4. Create admin user (Already done)

    • Username: admin
    • Password: admin123
  5. Start the development server

    python manage.py runserver
  6. Access the application

Usage Guide

For Receptionist (Form)

  1. Go to Receptionist Form (http://localhost:8000/form/)
  2. Fill in all required fields:
    • Client full name
    • Phone number
    • Product name
    • Address/district
    • Select company (BuySellRent)
  3. Click "Save & Display Client Information"
  4. The information will:
    • Save to the database
    • Appear on the TV display automatically
    • Show in the clients list

For TV Display

  1. Open TV Display page (http://localhost:8000/display/)
  2. Page automatically updates every 3 seconds
  3. Shows latest registered client information with:
    • Welcome message with client name
    • Phone number
    • Product
    • Address
    • Check-in time
    • Company name
  4. Displays empty state when no clients registered

For Admin

  1. Go to Admin Panel (http://localhost:8000/admin/)
  2. Login with username: admin, password: admin123
  3. Manage client records:
    • View all clients
    • Search by name, phone, or product
    • Edit existing records
    • Filter by company

Project Structure

digital reception display system/
├── manage.py                      # Django management script
├── requirements.txt               # Python dependencies
├── README.md                      # This file
├── db.sqlite3                     # SQLite database (auto-created)
├── reception_system/              # Main project configuration
│   ├── settings.py               # Django settings
│   ├── urls.py                   # URL routing
│   ├── wsgi.py                   # WSGI configuration
│   └── asgi.py                   # ASGI configuration
└── clients/                       # Main application
    ├── migrations/               # Database migrations
    ├── templates/clients/        # HTML templates
    │   ├── base.html            # Base template
    │   ├── receptionist_form.html   # Form page
    │   ├── display_dashboard.html   # TV display page
    │   ├── form_success.html        # Success page
    │   └── clients_list.html        # Clients list page
    ├── templatetags/            # Custom template filters
    ├── models.py                # Database models
    ├── views.py                 # View functions
    ├── forms.py                 # Django forms
    ├── urls.py                  # App URL routing
    ├── admin.py                 # Admin configuration
    └── tests.py                 # Unit tests

Database Schema

Client Model

Client
├── id (AutoField)                    # Primary key
├── names (CharField)                 # Client full name (max 255)
├── phone (CharField)                 # Phone number (max 20)
├── product (CharField)               # Product name (max 255)
├── address (CharField)               # Address/district (max 255)
├── time (DateTimeField)              # Check-in time (auto)
├── message (CharField)               # Welcome message (max 500)
├── company (CharField)               # Company name
├── is_displayed (BooleanField)       # Display status
└── created_at (DateTimeField)        # Creation timestamp

API Endpoints

GET /api/latest-client/

Returns the latest registered client as JSON

{
  "id": 1,
  "names": "John Doe",
  "phone": "1234567890",
  "product": "Property Listing",
  "address": "Manhattan",
  "time": "10:30:45",
  "message": "Welcome message",
  "company": "BuySellRent",
  "welcome_message": "Welcome John Doe! Welcome message",
  "exists": true
}

GET /api/clients/

Returns list of recent clients

{
  "clients": [
    {
      "id": 1,
      "names": "John Doe",
      "phone": "1234567890",
      "product": "Property Listing",
      "address": "Manhattan",
      "time": "2024-01-28T10:30:45",
      "formatted_time": "10:30:45",
      "company": "BuySellRent"
    }
  ]
}

Configuration

Settings (reception_system/settings.py)

Key configurations:

  • DEBUG = True (Change to False for production)
  • ALLOWED_HOSTS = ['*'] (Change for specific domains)
  • DATABASES (SQLite by default, easy to switch to MySQL/PostgreSQL)
  • TIME_ZONE = 'UTC' (Change to your timezone)

To Switch Database

MySQL

  1. Install: pip install mysqlclient
  2. Update DATABASES in settings.py:
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'reception_db',
        'USER': 'root',
        'PASSWORD': 'password',
        'HOST': 'localhost',
        'PORT': '3306',
    }
}

PostgreSQL

  1. Install: pip install psycopg2-binary
  2. Update DATABASES in settings.py:
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'reception_db',
        'USER': 'postgres',
        'PASSWORD': 'password',
        'HOST': 'localhost',
        'PORT': '5432',
    }
}

Deployment

Local Network Access

To access from other computers on the same network:

  1. Find your IP address:

    • Windows: ipconfig (look for IPv4 Address)
    • Linux/Mac: ifconfig or ip addr
  2. Start server with your IP:

    python manage.py runserver 0.0.0.0:8000
  3. Access from other computers:

    • http://YOUR_IP:8000/form/ (Receptionist)
    • http://YOUR_IP:8000/display/ (TV Display)

Production Deployment

For production deployment, follow Django's deployment checklist:

  1. Set DEBUG = False
  2. Configure allowed hosts
  3. Set up proper database
  4. Use gunicorn or uwsgi
  5. Set up static files serving
  6. Use SSL/HTTPS
  7. Configure environment variables for secrets

Advanced Features (Future)

  • WebSocket live updates (Django Channels)
  • Weather widget integration
  • Animated logo slideshow
  • Auto-clear after service
  • Customer feedback system
  • Analytics dashboard
  • Mobile app integration
  • Email/SMS notifications

Troubleshooting

Port 8000 already in use

python manage.py runserver 8001

Database locked error

  • Close all Python processes
  • Delete db.sqlite3
  • Run migrations again

Static files not loading

python manage.py collectstatic --noinput

Admin page styling issues

python manage.py collectstatic

Support & Maintenance

  • Database is SQLite, suitable for up to hundreds of concurrent users
  • Regular backups recommended
  • Logs are printed to console in development mode
  • Admin panel for manual data management

Future Enhancements

  1. Real-time WebSocket Updates - Use Django Channels for instant updates
  2. Multi-language Support - Support multiple languages
  3. Custom Branding - Logo, colors, fonts per company
  4. Analytics - Track client visits, peak hours, etc.
  5. Integration - Connect with CRM, email, SMS services
  6. Mobile App - Native app for receptionist and management
  7. AI Features - Auto-categorize clients, sentiment analysis

License

This project is provided as-is for BuySellRent company use.

Author

Built with ❤️ for BuySellRent Reception System


Need Help? Check the admin panel or run:

python manage.py shell

To interact with the database directly.

About

client registration at buysell

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors