A modern, lightweight audience interaction platform for live events, polls, and Q&A sessions.
- Project Overview
- Key Features
- User Experience
- System Architecture
- Tech Stack
- Installation & Setup
- Usage Guide
- Technical Implementation
- Docker & Deployment
- Development & Testing
LiteSlido is a modern, feature-rich clone of Slidoβa real-time audience interaction platformβbuilt with Django and enhanced with cutting-edge UI/UX design. It enables organizations, educators, and communities to create engaging live events with interactive polls, Q&A sessions, and real-time audience participation.
- π― Dual User Experience: Both authenticated users and anonymous participants can engage
- π¨ Modern UI/UX: Beautiful, responsive design with Tailwind CSS and smooth animations
- π Interactive Charts: Real-time poll results with Chart.js and enhanced visualizations
- π Secure & Scalable: Built with Django best practices and Docker containerization
- π Production Ready: Comprehensive error handling, responsive design, and performance optimization
- Create Events: Generate unique event codes for easy sharing
- Join Events: Participate via simple event code entry
- Event Control: Event creators can close/reopen events
- Real-time Updates: Live synchronization across all participants
- Authenticated Users: Ask questions, like/unlike, and manage content
- Anonymous Participation: Anyone can ask questions without registration
- Smart Sorting: Questions automatically sorted by popularity (likes)
- Content Moderation: Event creators can delete inappropriate questions
- Multi-Option Polls: Create polls with unlimited custom options
- Real-time Voting: Instant vote recording and result updates
- Beautiful Charts: Interactive bar charts with smooth animations
- Vote Validation: One vote per user per poll with secure tracking
- Profile System: Customizable user profiles with avatars
- Authentication: Secure login/registration with enhanced forms
- Password Management: Built-in password change functionality
- Role-based Access: Different permissions for creators and participants
- Password Visibility Toggles: Eye icons for password fields
- Interactive Form States: Hover, focus, and validation feedback
- Responsive Design: Works perfectly on all devices
- Smooth Animations: CSS transitions and Chart.js animations
- Register/Login with enhanced form experience
- Create Events with custom titles and unique codes
- Manage Content - moderate questions, create polls
- Control Access - close/reopen events as needed
- View Analytics - see engagement metrics and results
- Join Events using event codes
- Ask Questions and interact with others
- Participate in Polls and see real-time results
- Like/Unlike questions to influence sorting
- Manage Profile and personal information
- Join Events without registration
- Ask Questions with optional name display
- View Content and poll results
- Limited Interaction - read-only access to maintain security
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β Frontend β β Django β β PostgreSQL β
β β β Backend β β Database β
β β’ Tailwind CSS βββββΊβ β’ Views βββββΊβ β’ User Data β
β β’ Chart.js β β β’ Services β β β’ Events β
β β’ Responsive β β β’ Models β β β’ Questions β
β β’ Animations β β β’ Forms β β β’ Polls β
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β² β² β²
β β β
β βββββββββββββββββββββββββββββββ β
β β Docker & Compose β β
β β β’ Web Service β β
β β β’ Database Service β β
β β β’ Volume Persistence β β
βββββββββββ΄ββββββββββββββββββββββββββββββ΄βββββββββ
- Service Layer: Business logic separated from views for maintainability
- Template Inheritance: Consistent UI across all pages
- Form Validation: Client and server-side validation with user feedback
- Security: CSRF protection, authentication, and permission checks
- Python 3.11+: Modern Python with type hints support
- Django 5.2.4: Latest Django with security updates
- PostgreSQL: Robust relational database
- Django ORM: Efficient database operations
- Tailwind CSS: Utility-first CSS framework
- Chart.js 3.9.1: Interactive data visualization
- Vanilla JavaScript: Modern ES6+ features
- Responsive Design: Mobile-first approach
- Docker: Containerized development environment
- Docker Compose: Multi-service orchestration
- Nginx (future): Production web server
- Gunicorn (future): WSGI application server
- Docker and Docker Compose installed
- Git for version control
- Modern web browser
-
Clone the repository:
git clone https://github.com/BSc-Project-1404/LiteSlido.git cd LiteSlido -
Start the application:
docker-compose up --build -d
-
Apply database migrations:
docker-compose exec web python manage.py migrate -
Create admin user:
docker-compose exec web python manage.py createsuperuser -
Access the application:
- Main App: http://localhost:8000/events/
- Admin Panel: http://localhost:8000/admin/
- Login: http://localhost:8000/accounts/login/
- Register: http://localhost:8000/accounts/register/
The application uses environment variables for configuration. Key settings include:
- Database connection parameters
- Secret key for Django
- Debug mode settings
- Media file storage paths
- Register an Account: Use the enhanced registration form with password visibility toggles
- Login: Access your personalized dashboard
- Create Your First Event: Generate a unique event code for sharing
- Join Events: Enter event codes on the main page
- Ask Questions: Submit questions with real-time updates
- Vote in Polls: Participate in interactive polls
- View Results: See beautiful charts and statistics
- Enter Event Code: No registration required
- Ask Questions: Optional name display
- View Content: Read-only access to maintain security
- Event Management: Close/reopen events, moderate content
- Profile Customization: Upload avatars, edit personal information
- Password Security: Secure password change functionality
- Content Moderation: Delete inappropriate questions
# Core Models
User (Django Auth) + Profile (1:1 relationship)
Event: code, title, creator, is_closed, created_at
Question: text, author, author_name, event, created_at, likes
Poll: question, event, created_at
PollOption: text, poll, order
PollVote: user, poll_option, timestamp- Anonymous Questions: Unified Question model with optional author field
- Service Layer: Business logic separated from views
- Form Enhancement: Custom styled forms with interactive elements
- Chart Integration: Dynamic Chart.js loading with error handling
- Authentication: Django's built-in user authentication
- Permission System: Role-based access control
- CSRF Protection: Cross-site request forgery prevention
- Input Validation: Server-side validation with user feedback
- Database Indexing: Optimized queries for large datasets
- Template Caching: Efficient template rendering
- Static File Optimization: Compressed CSS and JavaScript
- Responsive Images: Optimized media file handling
# Start services
docker-compose up --build -d
# View logs
docker-compose logs -f web
# Execute commands
docker-compose exec web python manage.py shell
# Restart services
docker-compose restart- Environment Variables: Secure configuration management
- Static Files: CDN integration for better performance
- Database: Connection pooling and optimization
- Monitoring: Health checks and logging
- SSL/TLS: Secure HTTPS connections
- Horizontal Scaling: Multiple web service instances
- Load Balancing: Nginx reverse proxy configuration
- Database Clustering: PostgreSQL read replicas
- Caching: Redis for session and data caching
- Feature Development: Create feature branches
- Code Review: Pull request reviews and testing
- Testing: Automated and manual testing
- Deployment: Staging and production releases
# Run all tests
docker-compose exec web python manage.py test
# Run specific test modules
docker-compose exec web python manage.py test events.tests
# Check code quality
docker-compose exec web python manage.py check- PEP 8: Python style guide compliance
- Type Hints: Modern Python type annotations
- Documentation: Comprehensive docstrings and comments
- Error Handling: Graceful error handling and user feedback
We welcome contributions! Please see our contributing guidelines for:
- Code style and standards
- Testing requirements
- Pull request process
- Issue reporting
This project is licensed under the MIT License - see the LICENSE file for details.
Transform your events with LiteSlido - where engagement meets innovation! π
Built with β€οΈ using Django, Tailwind CSS, and modern web technologies.
