A complete Django-based solution for managing client reception using a web form and smart TV display.
Receptionist Computer (Web Form)
↓
Database
↓
TV Browser (Live Dashboard Page)
✅ 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
- Backend: Django 5.1.2
- Database: SQLite (default)
- Frontend: Bootstrap 5, JavaScript, HTML5
- Styling: Custom CSS with animations
- Server: Django Development Server
- Python 3.8+
- pip (Python package manager)
- Modern web browser
- TV display (optional, any browser will work)
-
Clone or navigate to the project directory
cd "digital reception display system"
-
Install dependencies
pip install -r requirements.txt
-
Run migrations (Already done)
python manage.py migrate
-
Create admin user (Already done)
- Username:
admin - Password:
admin123
- Username:
-
Start the development server
python manage.py runserver
-
Access the application
- Receptionist Form: http://localhost:8000/form/
- TV Display: http://localhost:8000/display/
- Admin Panel: http://localhost:8000/admin/
- Clients List: http://localhost:8000/list/
- Go to Receptionist Form (http://localhost:8000/form/)
- Fill in all required fields:
- Client full name
- Phone number
- Product name
- Address/district
- Select company (BuySellRent)
- Click "Save & Display Client Information"
- The information will:
- Save to the database
- Appear on the TV display automatically
- Show in the clients list
- Open TV Display page (http://localhost:8000/display/)
- Page automatically updates every 3 seconds
- Shows latest registered client information with:
- Welcome message with client name
- Phone number
- Product
- Address
- Check-in time
- Company name
- Displays empty state when no clients registered
- Go to Admin Panel (http://localhost:8000/admin/)
- Login with username:
admin, password:admin123 - Manage client records:
- View all clients
- Search by name, phone, or product
- Edit existing records
- Filter by company
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
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
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
}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"
}
]
}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)
- Install:
pip install mysqlclient - Update DATABASES in settings.py:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'reception_db',
'USER': 'root',
'PASSWORD': 'password',
'HOST': 'localhost',
'PORT': '3306',
}
}- Install:
pip install psycopg2-binary - Update DATABASES in settings.py:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'reception_db',
'USER': 'postgres',
'PASSWORD': 'password',
'HOST': 'localhost',
'PORT': '5432',
}
}To access from other computers on the same network:
-
Find your IP address:
- Windows:
ipconfig(look for IPv4 Address) - Linux/Mac:
ifconfigorip addr
- Windows:
-
Start server with your IP:
python manage.py runserver 0.0.0.0:8000
-
Access from other computers:
- http://YOUR_IP:8000/form/ (Receptionist)
- http://YOUR_IP:8000/display/ (TV Display)
For production deployment, follow Django's deployment checklist:
- Set
DEBUG = False - Configure allowed hosts
- Set up proper database
- Use gunicorn or uwsgi
- Set up static files serving
- Use SSL/HTTPS
- Configure environment variables for secrets
- 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
python manage.py runserver 8001- Close all Python processes
- Delete
db.sqlite3 - Run migrations again
python manage.py collectstatic --noinputpython manage.py collectstatic- 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
- Real-time WebSocket Updates - Use Django Channels for instant updates
- Multi-language Support - Support multiple languages
- Custom Branding - Logo, colors, fonts per company
- Analytics - Track client visits, peak hours, etc.
- Integration - Connect with CRM, email, SMS services
- Mobile App - Native app for receptionist and management
- AI Features - Auto-categorize clients, sentiment analysis
This project is provided as-is for BuySellRent company use.
Built with ❤️ for BuySellRent Reception System
Need Help? Check the admin panel or run:
python manage.py shellTo interact with the database directly.