Skip to content

Enterprise sports media production planning application with FastAPI backend and PyQt6 desktop interface for managing broadcast workflows across multiple content formats

Notifications You must be signed in to change notification settings

RoadToMythicGlory/Designer

Repository files navigation

Sports Media Production Planning Application

A comprehensive application for managing sports media production planning with support for Games, Shows, and Race productions. Built with FastAPI backend and PyQt6 frontend featuring a modern gaming-professional aesthetic.

Features

🎯 Core Functionality

  • Multiple Production Types: Support for Game, Show, and Race productions
  • Dynamic Forms: Adaptive forms that change based on production type
  • Unique ID Generation: Automatic production ID generation (_SP123456 format)
  • Crew Management: Comprehensive crew member and assignment tracking
  • Template System: Reusable production templates for rapid setup
  • File Management: Upload and attach files to productions
  • Search & Filter: Advanced search and filtering capabilities

🎮 Modern Gaming-Professional UI

  • Dark Gaming Theme: Sleek dark interface with electric blue accents
  • Responsive Design: Optimized for 1920x1080 and 1440p displays
  • Smooth Animations: Subtle hover effects and transitions
  • Card-Based Layout: Clean, organized information presentation
  • Professional Typography: Modern fonts with clear hierarchy

📊 Production Types

Game Productions

  • Sport type, league, teams (home vs away)
  • Season, game number, playoff information
  • Broadcast network and commentator details
  • Camera count and technical specifications

Show Productions

  • Show format (interview, panel, talk show, etc.)
  • Series information with season/episode numbers
  • Host and guest management
  • Live audience configuration

Race Productions

  • Race series (Formula 1, NASCAR, etc.)
  • Track information and specifications
  • Weather conditions and temperature
  • Coverage options (helicopter, telemetry, pit lane)

Technology Stack

Backend

  • FastAPI - Modern, fast web framework
  • SQLAlchemy - SQL toolkit and ORM
  • Pydantic - Data validation using Python type annotations
  • SQLite/PostgreSQL - Database support
  • Uvicorn - ASGI server implementation

Frontend

  • PyQt6 - Cross-platform GUI toolkit
  • Modern Gaming Aesthetic - Custom styling system
  • Responsive Layouts - Adaptive interface design
  • API Integration - RESTful backend communication

Installation

Prerequisites

  • Python 3.8 or higher
  • pip package manager

Setup Instructions

  1. Clone the repository

    git clone <repository-url>
    cd sports-media-production-planning
  2. Install dependencies

    pip install -r requirements.txt
  3. Configure the application

    # Copy and edit the configuration file
    cp config.ini.example config.ini
    # Edit config.ini with your preferred settings

Usage

Starting the Backend Server

# Run the FastAPI backend
python -m uvicorn backend.app:app --reload --host 0.0.0.0 --port 8000

The API will be available at http://localhost:8000 with automatic documentation at http://localhost:8000/docs.

Starting the GUI Application

# Run the PyQt6 frontend
python frontend/main.py

API Endpoints

Production Management

  • GET /api/v1/productions/ - List productions with filtering
  • POST /api/v1/productions/ - Create new production
  • GET /api/v1/productions/{id} - Get specific production
  • PUT /api/v1/productions/{id} - Update production
  • DELETE /api/v1/productions/{id} - Delete production

Type-Specific Details

  • POST /api/v1/productions/{id}/game-details - Add game details
  • POST /api/v1/productions/{id}/show-details - Add show details
  • POST /api/v1/productions/{id}/race-details - Add race details

Crew Management

  • GET /api/v1/crew/ - List crew members
  • POST /api/v1/crew/ - Create crew member
  • POST /api/v1/crew/assignments - Assign crew to production

Templates & Files

  • GET /api/v1/templates/ - List templates
  • POST /api/v1/files/upload - Upload files

Project Structure

sports-media-production-planning/
├── backend/
│   ├── models/          # SQLAlchemy database models
│   ├── schemas/         # Pydantic validation schemas
│   ├── api/endpoints/   # FastAPI route handlers
│   ├── core/           # Configuration and database setup
│   ├── services/       # Business logic layer
│   └── utils/          # Utility functions and helpers
├── frontend/
│   ├── ui/             # Main user interface components
│   ├── widgets/        # Custom UI widgets
│   └── utils/          # Frontend utilities and API client
├── database/
│   └── migrations/     # Database migration scripts
├── static/uploads/     # File upload storage
├── requirements.txt    # Python dependencies
├── config.ini         # Configuration file
└── README.md          # Project documentation

Database Schema

Core Tables

  • productions - Main production metadata
  • production_games - Game-specific fields
  • production_shows - Show-specific fields
  • production_races - Race-specific fields
  • crew_members - Crew information and profiles
  • production_crew - Crew assignments to productions
  • templates - Reusable production templates
  • custom_fields - User-defined field definitions
  • file_attachments - Uploaded files and documents

Configuration

The application uses config.ini for configuration:

[database]
url = sqlite:///./production_planning.db

[api]
host = 0.0.0.0
port = 8000

[upload]
max_file_size = 104857600
allowed_extensions = pdf,doc,docx,xls,xlsx,txt,jpg,jpeg,png,gif,mp4,mov,avi

[production_ids]
prefix = _SP
length = 6

Features in Detail

Dynamic Form Generation

The application features intelligent form generation that adapts based on production type:

  • Game Forms: Include team information, broadcast details, and technical specifications
  • Show Forms: Feature episode tracking, guest management, and audience configuration
  • Race Forms: Support track information, weather conditions, and coverage options

Modern Gaming Aesthetic

The UI implements a professional gaming-inspired design:

  • Color Palette: Dark backgrounds with electric blue and orange accents
  • Typography: Clean, modern fonts with clear hierarchy
  • Interactions: Smooth hover effects and subtle animations
  • Layout: Card-based design with proper spacing and visual separation

Crew Management System

Comprehensive crew tracking includes:

  • Personal Information: Contact details and emergency contacts
  • Professional Data: Roles, experience, specializations
  • Assignment Tracking: Production assignments with scheduling
  • Talent Profiles: On-air talent with broadcast-specific information

Development

Adding New Production Types

  1. Update the ProductionType enum in backend/models/production.py
  2. Create a new type-specific model (e.g., ProductionEvent)
  3. Add corresponding Pydantic schemas
  4. Implement API endpoints for the new type
  5. Update the frontend form to include type-specific fields

Customizing the UI Theme

The gaming aesthetic is defined in frontend/ui/main_window.py in the ModernGamingStyle class. Colors, fonts, and styling can be customized there.

Database Migrations

Use Alembic for database schema changes:

# Create a new migration
alembic revision --autogenerate -m "Description of changes"

# Apply migrations
alembic upgrade head

API Documentation

Full API documentation is available when running the backend server at:

  • Swagger UI: http://localhost:8000/docs
  • ReDoc: http://localhost:8000/redoc

Contributing

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

License

This project is licensed under the MIT License - see the LICENSE file for details.

Support

For support and questions:

  • Create an issue in the repository
  • Check the API documentation at /docs
  • Review the configuration options in config.ini

Roadmap

Planned Features

  • Real-time collaboration
  • Advanced reporting and analytics
  • Mobile app support
  • Third-party integrations
  • Workflow automation
  • Multi-tenant support
  • Cloud deployment options

Recent Updates

  • ✅ Core production management
  • ✅ Dynamic form generation
  • ✅ Modern gaming UI theme
  • ✅ Crew management system
  • ✅ Template functionality
  • ✅ File upload system
  • ✅ RESTful API with documentation

About

Enterprise sports media production planning application with FastAPI backend and PyQt6 desktop interface for managing broadcast workflows across multiple content formats

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages