|
1 | 1 | # DigiScript |
2 | 2 |
|
3 | | -A digital script project for cueing theatrical shows |
| 3 | +**Real-time digital script management for theatrical productions** |
4 | 4 |
|
5 | | -**Main Status:** |
6 | 5 | [](https://github.com/dreamteamprod/DigiScript/actions/workflows/nodelint.yml) |
| 6 | + |
7 | 7 | [](https://github.com/dreamteamprod/DigiScript/actions/workflows/pylint.yml) |
8 | 8 |
|
9 | | -**Dev Status:** |
10 | | -[](https://github.com/dreamteamprod/DigiScript/actions/workflows/nodelint.yml) |
11 | | -[](https://github.com/dreamteamprod/DigiScript/actions/workflows/pylint.yml) |
| 9 | +## Overview |
| 10 | + |
| 11 | +DigiScript is a full-stack web application designed to modernize theatrical show management. Built for stage managers, technical directors, and production teams, it provides real-time script display, intelligent cue management, and collaborative show control in a browser-based interface. |
| 12 | + |
| 13 | +DigiScript eliminates the need for paper scripts and manual cue sheets, while keeping your entire show and team synchronized in real-time. |
| 14 | + |
| 15 | +## Who Should Use DigiScript |
| 16 | + |
| 17 | +**Stage Managers** looking to eliminate paper scripts and manual cue tracking during live performances |
| 18 | + |
| 19 | +**Technical Directors** managing complex shows with multiple cue types and microphone assignments |
| 20 | + |
| 21 | +**Production Teams** needing real-time collaboration across multiple devices during rehearsals and performances |
| 22 | + |
| 23 | +**Theater Companies** running shows over extended periods who need to track session history and maintain multiple script versions |
| 24 | + |
| 25 | +## Key Features |
| 26 | + |
| 27 | +### Real-Time Multi-Client Synchronization |
| 28 | + |
| 29 | +DigiScript's WebSocket-based architecture enables seamless collaboration during live performances. One user acts as the "leader," controlling the script position, while all other connected clients—whether logged in or not—automatically follow along in real-time. If the leader disconnects, the system automatically elects a new leader, ensuring uninterrupted show operations. |
| 30 | + |
| 31 | + |
| 32 | +*Live show view with color-coded cues synchronized across all connected clients* |
| 33 | + |
| 34 | +### Intelligent Cue Management |
| 35 | + |
| 36 | +Create custom cue types (lighting, sound, special effects, etc.) with visual color coding for instant recognition. Cues can be attached to dialogue lines, stage directions, or dedicated cue lines. The system tracks cues across script revisions, making it easy to manage different versions of your show. |
| 37 | + |
| 38 | + |
| 39 | +*Cue configuration showing color-coded technical cues attached to script lines* |
| 40 | + |
| 41 | +### Script Revisions |
| 42 | + |
| 43 | +DigiScript's revision system functions like version control for your script. Create new revisions from any previous version, not just the latest, enabling parallel development paths. The visual revision graph shows branching history, making it easy to track changes and roll back if needed. All cues and configurations are tied to specific revisions, preserving the complete history of your production. |
| 44 | + |
| 45 | + |
| 46 | +*Interactive revision graph showing branching script history with visual node representation* |
| 47 | + |
| 48 | +### Advanced Microphone Management |
| 49 | + |
| 50 | +DigiScript's microphone management system provides graphical allocation matrices for assigning microphones to characters across scenes. The system automatically detects conflicts when the same microphone needs to be reassigned between characters, color-coding them based on urgency (orange for tight changeovers within an act, blue for changeovers across act boundaries with interval time). Multiple visualization modes—by microphone, by character, or by cast member help plan mic usage and identify potential issues before they happen. |
12 | 51 |
|
13 | | -## Getting started |
| 52 | + |
| 53 | +*Timeline view showing microphone allocations across scenes with conflict detection* |
| 54 | + |
| 55 | +### Flexible Script Modes |
| 56 | + |
| 57 | +Choose between two show modes tailored to your production style: |
| 58 | + |
| 59 | +- **FULL Mode:** Multi-column layout supporting up to 4 simultaneous speakers per line—ideal for ensemble shows, musicals, and scenes with overlapping dialogue |
| 60 | +- **COMPACT Mode:** Single-column streamlined layout—ideal for dialogue-heavy dramas and simpler productions |
| 61 | + |
| 62 | +### Role-Based Access Control (RBAC) |
| 63 | + |
| 64 | +Configure fine-grained permissions for team members. Grant specific users access to edit scripts, manage cues, or start show sessions, while restricting others to view-only access. The permission system operates at the resource level, allowing precise control over who can modify specific show elements. |
| 65 | + |
| 66 | +### Session Tracking & History |
| 67 | + |
| 68 | +Every live show session is recorded with start/end times and can be tagged for organization (e.g., "Dress Rehearsal," "Opening Night"). DigiScript tracks session duration, interval timing, and script position, providing a complete audit trail for your production's run. |
| 69 | + |
| 70 | +## Getting Started |
14 | 71 |
|
15 | 72 | ### Requirements |
16 | 73 |
|
17 | 74 | * Node v24.x (npm 11.x) |
18 | 75 | * Python 3.13.x |
19 | 76 |
|
20 | | -### Client |
| 77 | +### Quick Start with Docker Compose (Recommended) |
21 | 78 |
|
22 | | -This installs and builds the client side files ([nvm](https://github.com/nvm-sh/nvm) recommended) |
| 79 | +The easiest way to run DigiScript is through Docker compose (there is a `docker-compose.yml` file [included](./docker-compose.yaml)).: |
| 80 | + |
| 81 | +```shell |
| 82 | +docker-compose up -d |
| 83 | +``` |
| 84 | + |
| 85 | +DigiScript will be available at `http://localhost:8080` |
| 86 | + |
| 87 | +### Manual Installation |
| 88 | + |
| 89 | +#### Client |
| 90 | + |
| 91 | +Build the frontend (output goes to `../server/static/`): |
23 | 92 |
|
24 | 93 | ```shell |
25 | 94 | cd client |
26 | 95 | npm ci |
27 | 96 | npm run build |
28 | 97 | ``` |
29 | 98 |
|
30 | | -### Server |
| 99 | +#### Server |
31 | 100 |
|
32 | | -This installs the Python requirements needed to run the server ([pyenv](https://github.com/pyenv/pyenv) recommended) |
| 101 | +Install Python dependencies and run the server: |
33 | 102 |
|
34 | 103 | ```shell |
35 | 104 | cd server |
36 | 105 | pip install -r requirements.txt |
| 106 | +python3 main.py |
37 | 107 | ``` |
38 | 108 |
|
39 | | -## Other Documentation |
| 109 | +The server will be available at `http://localhost:8080` |
| 110 | + |
| 111 | +### First Launch Setup |
| 112 | + |
| 113 | +On first launch, DigiScript will prompt you to create an administrator user. From there, you can create shows, configure users, and begin building your production. |
| 114 | + |
| 115 | +For detailed setup instructions and usage guides, see the [full documentation](https://github.com/dreamteamprod/DigiScript/tree/main/docs). |
| 116 | + |
| 117 | +## License |
40 | 118 |
|
41 | | -* **[Development Guide](./documentation/development.md)** |
42 | | -* **[Deployment Guide](./documentation/deployment.md)** |
| 119 | +See the [LICENSE](./LICENSE) file for licensing information. |
0 commit comments