Skip to content

is a Django-based web application for managing and booking event tickets. It supports two roles: Attendees (who can book, cancel, and download tickets) and Organizers (who can create events and view stats). The system includes secure payments, role-based access, and a complaint feature for all users โ€” including guests.

License

Notifications You must be signed in to change notification settings

AlaaAlhoot/Event-Ticket-Booking-System

Repository files navigation

๐ŸŽŸ๏ธ Event Ticket Booking System

Event Booking Banner

Python Django SQLite Bootstrap

License: MIT Build Status Coverage

๐Ÿš€ A Modern, Scalable Event Management & Ticketing Platform

Empowering event organizers and attendees with seamless booking experiences


๐Ÿ“‹ Features โ€ข ๐Ÿ—๏ธ Architecture โ€ข โšก Quick Start โ€ข ๐Ÿ“– Documentation โ€ข ๐Ÿค Contributing


๐ŸŒŸ Overview

The Event Ticket Booking System is a comprehensive, Django-powered platform that revolutionizes event management. Built with modern web technologies, it provides a seamless experience for both event organizers and attendees with advanced features including secure payment processing, real-time ticket management, and intelligent analytics.

๐ŸŽฏ Why Choose Our System?

  • ๐Ÿ”’ Secure: Industry-standard security practices
  • โšก Fast: Optimized for high-performance
  • ๐Ÿ“ฑ Responsive: Works perfectly on all devices
  • ๐ŸŽจ Modern UI: Clean, intuitive user interface
  • ๐Ÿ”ง Modular: Easy to extend and customize

โœจ Key Features

๐ŸŽช For Event Organizers

Feature Description Status
๐Ÿ“… Event Management Create, edit, and manage events with rich details โœ… Complete
๐Ÿ“Š Analytics Dashboard Real-time insights and booking statistics โœ… Complete
๐Ÿ’ฐ Revenue Tracking Monitor earnings and financial performance โœ… Complete
๐Ÿ“ง Communication Tools Send updates to attendees โœ… Complete

๐ŸŽซ For Attendees

Feature Description Status
๐Ÿ” Event Discovery Browse and search events easily โœ… Complete
๐Ÿ’ณ Secure Booking Safe and fast ticket purchasing โœ… Complete
๐Ÿ“ฑ Digital Tickets PDF tickets with QR codes โœ… Complete
โฐ Cancellation Policy 3-hour cancellation window โœ… Complete

๐Ÿ›ก๏ธ System Features

Feature Description Status
๐Ÿ” Authentication Role-based access control โœ… Complete
๐Ÿ’ธ Payment Processing Secure card management โœ… Complete
๐Ÿ“ Complaint System Issue tracking and resolution โœ… Complete
๐Ÿ”” Notifications Real-time alerts and updates ๐Ÿšง Planned

๐Ÿ›ก๏ธ User Roles & Permissions Matrix

๐ŸŽญ Action ๐Ÿ‘ค Guest ๐ŸŽซ Attendee ๐ŸŽช Organizer
๐Ÿ‘€ View public events โœ… โœ… โœ…
๐Ÿ” Register/Login โœ… โœ… โœ…
๐ŸŽŸ๏ธ Book tickets โŒ โœ… โŒ
โŒ Cancel tickets (3h limit) โŒ โœ… โŒ
๐Ÿ“„ Download PDF tickets โŒ โœ… โŒ
๐Ÿ’ณ Manage payment cards โŒ โœ… โŒ
๐ŸŽช Create/manage events โŒ โŒ โœ…
๐Ÿ“Š View analytics dashboard โŒ โœ… โœ…
๐Ÿ“ File complaints โœ… โœ… โœ…
๐Ÿ”ง Resolve complaints โŒ โŒ ๐Ÿ”‘ Admin

๐Ÿ—๏ธ System Architecture

๐Ÿ“ Project Structure

๐ŸŽŸ๏ธ Event_Ticket_Booking_System/ โ”œโ”€โ”€ ๐Ÿ‘ฅ user_service/ # User authentication & profiles โ”œโ”€โ”€ ๐ŸŽช event_service/ # Event management core โ”œโ”€โ”€ ๐ŸŽซ ticket_service/ # Ticketing system โ”œโ”€โ”€ ๐Ÿ’ณ payment_service/ # Payment processing โ”œโ”€โ”€ ๐ŸŽช organizer_service/ # Organizer dashboard โ”œโ”€โ”€ ๐Ÿ“ complaint_service/ # Issue management โ”œโ”€โ”€ ๐ŸŽจ templates/ # HTML templates โ”œโ”€โ”€ ๐ŸŽฏ static/ # Static assets โ”‚ โ”œโ”€โ”€ css/ # Stylesheets โ”‚ โ”œโ”€โ”€ js/ # JavaScript files โ”‚ โ””โ”€โ”€ images/ # Image assets โ”œโ”€โ”€ ๐Ÿ“„ requirements.txt # Python dependencies โ”œโ”€โ”€ โš™๏ธ manage.py # Django management โ””โ”€โ”€ ๐Ÿ“‹ README.md # This file 

๐Ÿ”„ System Workflow

graph TD A[๐ŸŒ Guest User] --> B{๐Ÿ‘ค Authentication} B -->|Register| C[๐Ÿ“ Choose Role] B -->|Login| D{๐ŸŽญ User Type?} C --> E[๐ŸŽซ Attendee] C --> F[๐ŸŽช Organizer] D --> E D --> F E --> G[๐ŸŽช Browse Events] E --> H[๐Ÿ’ณ Add Payment Method] E --> I[๐ŸŽŸ๏ธ Book Tickets] E --> J[๐Ÿ“„ Download PDF] E --> K[โŒ Cancel Booking] F --> L[๐ŸŽช Create Events] F --> M[๐Ÿ“Š View Analytics] F --> N[๐Ÿ’ฐ Track Revenue] G --> O[๐Ÿ” Search & Filter] I --> P[โฐ 3-Hour Cancellation Window] E --> Q[๐Ÿ“ File Complaint] F --> Q A --> Q style A fill:#e1f5fe style E fill:#f3e5f5 style F fill:#fff3e0 style Q fill:#ffebee 
Loading

โšก Quick Start

๐Ÿ”ง Prerequisites

Before you begin, ensure you have the following installed:

  • Python 3.9+ ๐Ÿ
  • pip (Python package manager) ๐Ÿ“ฆ
  • Git (version control) ๐Ÿ”„
  • Virtual Environment (recommended) ๐Ÿ 

๐Ÿš€ Installation

  1. ๐Ÿ“ฅ Clone the Repository

    git clone https://github.com/your-username/Event-Ticket-Booking-System.git cd Event-Ticket-Booking-System
  2. ๐Ÿ  Create Virtual Environment

    python -m venv venv # On Windows venv\Scripts\activate # On macOS/Linux  source venv/bin/activate
  3. ๐Ÿ“ฆ Install Dependencies

    pip install -r requirements.txt
  4. โš™๏ธ Configure Environment

    # Create .env file cp .env.example .env # Edit .env with your settings SECRET_KEY=your-secret-key-here DEBUG=True DATABASE_URL=sqlite:///db.sqlite3
  5. ๐Ÿ—„๏ธ Setup Database

    python manage.py makemigrations python manage.py migrate python manage.py createsuperuser
  6. ๐Ÿ“Š Load Sample Data (Optional)

    python manage.py loaddata fixtures/sample_data.json
  7. ๐Ÿš€ Run Development Server

    python manage.py runserver
  8. ๐ŸŒ Access the Application

    ๐Ÿ  Homepage: http://127.0.0.1:8000/ ๐Ÿ”‘ Admin Panel: http://127.0.0.1:8000/admin/ 

๐Ÿ“– Documentation

๐ŸŽฏ Core Modules

๐Ÿ” User Service

Features:

  • Custom user model with roles: Attendee, Organizer
  • Secure registration and login
  • Profile access and update
  • Role-based routing and permissions

Key Files:

  • models.py - Defines User model with custom roles
  • forms.py - User registration and profile update forms
  • views.py - Login, logout, and profile management views
๐ŸŽช Event Service

Features:

  • Create and publish public events (Organizer only)
  • Attach images and details to events
  • Display available events to all users
  • Control ticket capacity per event

Key Files:

  • models.py - Event model with organizer relationship
  • views.py - Event creation, editing, and listing
  • forms.py - Form for creating/editing events
๐ŸŽซ Ticket Service

Features:

  • Attendees can book tickets (only if payment card added)
  • Download booked ticket as PDF
  • Cancel ticket within 3 hours of booking
  • Prevent double booking or purchase without payment method

Key Files:

  • models.py - Booking and ticket models
  • utils.py - PDF generation logic
  • views.py - Handle ticket booking, canceling, and viewing
๐Ÿ’ณ Payment Service

Features:

  • Save attendee payment cards securely
  • Validate card before allowing ticket purchase
  • Simple mock payment logging

Key Files:

  • models.py - Card and payment data models
  • validators.py - Payment validation logic
  • views.py - Add/manage payment method
๐Ÿง‘โ€๐Ÿ’ผ Organizer Service

Features:

  • Organizer-exclusive dashboard
  • View personal events and their statistics
  • Edit organizer profile and content

Key Files:

  • models.py - Organizer profile data
  • views.py - Organizer dashboard and analytics
๐Ÿ“ฃ Complaint Service

Features:

  • Submit complaint form (available to all roles)
  • Track submitted complaint status
  • Admin can view and resolve complaints

Key Files:

  • models.py - Complaint structure and status field
  • forms.py - Complaint submission form
  • views.py - Create/view complaints

๐Ÿ”ง Configuration

โš™๏ธ Environment Variables
# Django Settings SECRET_KEY=your-django-secret-key DEBUG=True # Database DATABASE_URL=sqlite:///db.sqlite3 # Email Configuration (Optional) EMAIL_HOST=smtp.gmail.com EMAIL_PORT=587 EMAIL_HOST_USER=your-email@gmail.com EMAIL_HOST_PASSWORD=your-app-password # File Storage MEDIA_ROOT=media/ STATIC_ROOT=static/

๐ŸŽจ UI/UX Showcase

๐Ÿ“ฑ Responsive Design

๐Ÿ–ฅ๏ธ Desktop View ๐Ÿ“ฑ Mobile View
Desktop Dashboard Mobile Dashboard
Full-featured dashboard with analytics Optimized mobile experience

๐ŸŽญ User Interfaces

Interface Preview Description
๐ŸŽช Event Gallery Events Beautiful event cards with filtering
๐ŸŽซ Booking Flow(1) Booking Streamlined 2-step booking process
๐ŸŽซ Booking Flow(2) Booking Streamlined 2-step booking process
๐Ÿ“Š Analytics My Tickets Dashboard Analytics Real-time charts and insights
๐Ÿ“Š Analytics Organizer Dashboard Analytics Real-time charts and insights
๐Ÿ“„ PDF Tickets PDF Professional ticket design with QR

๐Ÿงช Testing

๐Ÿ” Running Tests

# Run all tests python manage.py test # Run specific app tests python manage.py test user_service # Run with coverage coverage run manage.py test coverage report coverage html

๐Ÿ“Š Test Coverage

Module Coverage Status
user_service 92% โœ… Excellent
event_service 88% โœ… Good
ticket_service 85% โœ… Good
payment_service 78% โš ๏ธ Needs Improvement
complaint_service 95% โœ… Excellent

๐Ÿš€ Deployment

๐Ÿณ Docker Deployment

๐Ÿ“ฆ Docker Configuration
# Dockerfile FROM python:3.9-slim WORKDIR /app COPY requirements.txt . RUN pip install -r requirements.txt COPY . . EXPOSE 8000 CMD ["gunicorn", "Event_Ticket_Booking_System.wsgi:application", "--bind", "0.0.0.0:8000"]
# docker-compose.yml version: '3.8' services: web: build: . ports: - "8000:8000" environment: - DEBUG=False - DATABASE_URL=postgresql://postgres:password@db:5432/eventdb depends_on: - db - redis db: image: postgres:13 environment: POSTGRES_DB: eventdb POSTGRES_USER: postgres POSTGRES_PASSWORD: password volumes: - postgres_data:/var/lib/postgresql/data redis: image: redis:alpine volumes: postgres_data:

โ˜๏ธ Cloud Deployment

๐ŸŒ Heroku Deployment
# Install Heroku CLI heroku login heroku create your-app-name # Configure environment heroku config:set SECRET_KEY=your-secret-key heroku config:set DEBUG=False # Deploy git push heroku main heroku run python manage.py migrate heroku run python manage.py createsuperuser

๐Ÿ”ฎ Future Roadmap

A planned evolution of the Event Ticket Booking System with real-time, intelligent, and enterprise-grade enhancements.

๐Ÿ“… Version 2.0 โ€” Q2 2025

  • ๐Ÿ“ง Email Notifications โ€” Send booking confirmations and complaint status updates
  • ๐Ÿ”” Real-time Notifications โ€” Use WebSocket for instant ticketing alerts
  • ๐Ÿ“ฑ Mobile Companion App โ€” React Native frontend for mobile users
  • ๐ŸŒ Multi-language Support โ€” Arabic, English, and more

๐Ÿ“… Version 2.5 โ€” Q3 2025

  • ๐Ÿค– AI-Powered Recommendations โ€” Suggest events based on user interests
  • ๐Ÿ“Š Advanced Organizer Analytics โ€” Charts and insights for event performance
  • ๐ŸŽช Reusable Event Templates โ€” Faster creation with saved configurations
  • ๐Ÿ’ฌ Integrated Chat Support โ€” Connect users with support agents
  • ๐Ÿ” SSO & OAuth Integration โ€” Login with Google/Facebook

๐Ÿ“… Version 3.0 โ€” Q4 2025

  • ๐ŸŒ Multi-Tenant Support โ€” White-label the system for institutions
  • ๐Ÿ’ณ Multiple Payment Gateways โ€” PayPal, Stripe, and regional gateways
  • ๐Ÿ“ˆ Business Intelligence Suite โ€” Enterprise reporting tools
  • ๐ŸŽฅ Virtual Event Hosting โ€” Live streaming and webinar features
  • ๐Ÿค API Marketplace โ€” Third-party developer plugins and integrations

๐Ÿค Contributing

We welcome contributions from the community! Here's how you can help:

๐Ÿ› ๏ธ Development Workflow

  1. ๐Ÿด Fork the Repository
  2. ๐ŸŒฟ Create Feature Branch
    git checkout -b feature/amazing-feature
  3. ๐Ÿ’ป Make Changes
  4. ๐Ÿงช Run Tests
    python manage.py test
  5. ๐Ÿ“ Commit Changes
    git commit -m "Add amazing feature"
  6. ๐Ÿš€ Push to Branch
    git push origin feature/amazing-feature
  7. ๐Ÿ“ฌ Open Pull Request

๐Ÿ“‹ Contribution Guidelines

  • Follow PEP 8 coding standards
  • Write comprehensive tests
  • Update documentation
  • Use conventional commit messages
  • Ensure backward compatibility

๐Ÿ› Bug Reports

Found a bug? Please open an issue with:

  • Bug description
  • Steps to reproduce
  • Expected vs actual behavior
  • Environment details
  • Screenshots (if applicable)

๐Ÿ“ž Support & Community


๐Ÿ† Acknowledgments

๐Ÿ‘จโ€๐ŸŽ“ Project Team

Role Name Contact
๐ŸŽ“ Student Developer Alaa Emad Al Hout Email
๐Ÿ‘จโ€๐Ÿซ Project Supervisor Dr.Abdelkareem Alashqar Email

๐Ÿซ Institution

Islamic University of Gaza Faculty of Information Technology - Graduate Studies Department (Master's) Course: Advanced Software Engineering

๐Ÿ™ Special Thanks

  • Django Community for the amazing framework
  • Bootstrap team for the UI components
  • ReportLab for PDF generation capabilities
  • All contributors and testers

๐Ÿ“„ License

This project is licensed under the MIT License ยฉ 2025 by Alaa Emad Alhout.
You are free to use, modify, and distribute this software under the terms of the license.

๐Ÿ“„ See full terms in the LICENSE file.

License: MIT


โญ Star this project if you find it helpful!

Made with โค๏ธ by Alaa Emad Al Hout

GitHub followers GitHub stars

About

is a Django-based web application for managing and booking event tickets. It supports two roles: Attendees (who can book, cancel, and download tickets) and Organizers (who can create events and view stats). The system includes secure payments, role-based access, and a complaint feature for all users โ€” including guests.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published