Skip to content

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

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages