Skip to content

Latest commit

 

History

History
111 lines (83 loc) · 3.11 KB

File metadata and controls

111 lines (83 loc) · 3.11 KB

ShowFlow - Theater Cue Management System

ShowFlow is a web-based collaborative cue management application for theaters, designed to replace spreadsheets with a more robust, user-friendly system. (yes this is almost 100% coded with chatgpt and cline, dont judge me)

Features

  • Multi-database support: Create separate databases for different shows
  • User Authentication: Secure access with user accounts
  • Password Protection: Optional passwords for sensitive show databases
  • Responsive Design: Works on desktops, tablets and mobile devices
  • Modern UI: Clean, intuitive interface with good organization
  • Collaborative: Multiple team members can access and update cues

Technical Stack

  • Backend: FastAPI (Python)
  • Database: SQLite with SQLAlchemy ORM
  • Frontend: HTML, CSS, JavaScript
  • Authentication: JWT-based token authentication
  • Security: Password hashing with bcrypt

Installation

  1. Clone the repository:

    git clone https://github.com/yourusername/ShowFlow.git
    cd ShowFlow
    
  2. Create and activate a virtual environment:

    python -m venv venv
    source venv/bin/activate  # On Windows, use: venv\Scripts\activate
    
  3. Install dependencies:

    pip install -r requirements.txt
    
  4. Run the application:

    uvicorn app.main:app --reload
    
  5. Open your browser and navigate to http://127.0.0.1:8000

Project Structure

ShowFlow/
├── app/
│   ├── __init__.py
│   ├── database.py       # Database connection and session management
│   ├── main.py           # FastAPI application and routes
│   ├── models.py         # SQLAlchemy data models
│   └── routes.py         # API route documentation
├── static/
│   ├── app.js            # Frontend JavaScript
│   └── style.css         # CSS styles
├── templates/
│   └── index.html        # Main HTML template
├── databases/            # Directory for show databases
├── requirements.txt      # Project dependencies
├── .gitignore
└── README.md

Usage

User Registration and Login

  1. Open the application in your browser
  2. Click "Sign Up" to create a new user account
  3. Log in with your credentials

Managing Shows

  1. After logging in, click "New Database" to create a new show database
  2. Enter the show name, optional description, and optional password
  3. Select your show from the dropdown to work with specific show cues

Managing Cues

  1. Fill out the "Add New Cue" form with cue number, description, and caller
  2. View all cues in the "Current Cues" table
  3. Use the search box and filters to find specific cues
  4. Edit or delete cues using the action buttons

API Documentation

The application provides a RESTful API for:

  • User authentication
  • Database management
  • Cue CRUD operations

For detailed API documentation, visit /docs when the application is running.

Future Improvements

  • Export/import functionality for cues
  • User roles and permissions
  • Real-time collaborative editing
  • Timeline view for cues
  • Mobile app version

License

MIT License