diff --git a/README.md b/README.md index 6f0f5bb..7b60751 100644 --- a/README.md +++ b/README.md @@ -365,15 +365,24 @@ below. Nothing is installed without someone clicking. as `Label | Message` — add `| #channel` to bind one to a channel — and up to eight quick emojis). Tile settings: avatars, timestamps, names and channel notices. -- **Band Lineup** — the backstage stage board: everyone scheduled on the - band, vocal and production teams for the upcoming Planning Center plan, - placed into their mic slot with photo, name and mic/pack label; birthdays - in the service week get confetti. Guests and MCs not on the plan are pinned - per slot from the title bar's Edit button. Admin config: Planning Center - credentials, service type and plan, the teams to include, the stage slots - (one mic/pack label per line, in stage order), default columns, and a - Google Drive folder for manual photos. Tile settings: names, mic labels, - parallax, and the birthday confetti with its intensity. +- **Band Lineup** — the backstage stage board: everyone on stage in their mic + slot with photo, name and mic/pack label, on one shared board that every + screen sees the same way — whoever edits it changes it everywhere, over SSE. + A photo library fills it: point the module at a Google Drive folder shared + "anyone with the link" (file name → person's name) or at a folder on the + ProdDash machine, and photos added or removed there follow. **Edit** in the + title bar opens that library — drag a photo onto a slot, drag between slots + to swap, rename or clear. Planning Center is optional auto-fill on top, not + the source of truth: **Sync** reads the upcoming plan's team members and + drops each into the slot matching their position, filling only slots nobody + placed by hand, so a guest pinned on Thursday survives Sunday's sync. + Birthdays in the service week (Wednesday→Tuesday) bring a gold glow and + raining confetti, and a Choir button adds the extra spot for the weeks there + is one. Admin config: Planning Center credentials, service type and plan, the + teams to include, the stage slots (one mic/pack label per line, in stage + order), default columns, and the photo folder. Tile settings: parallax, + names, mic labels, and birthday confetti with its intensity and a test + picker — columns are − / + in the title bar. - **Clock** — a big booth clock; also the smallest possible module and the reference for module authors. diff --git a/modules/band-lineup/README.md b/modules/band-lineup/README.md deleted file mode 100644 index eca1f6d..0000000 --- a/modules/band-lineup/README.md +++ /dev/null @@ -1,52 +0,0 @@ -# Band Lineup module - -The backstage stage board as a ProdDash tile: everyone scheduled on the band / -vocal / production teams for the upcoming Planning Center plan, placed into their -mic slot with photo, name and mic/pack label. People whose birthday falls in the -current service week (Wednesday→Tuesday) get raining confetti and a gold glow. - -This is the display half of the standalone **Band Lineup** Electron app, ported -to ProdDash. (The ProPresenter Now/Next half of that app is the separate -`propresenter-now-next` module.) - -## How it fills the board - -1. **Slots** are the mic/pack labels you write in admin, one per line, in the - order they sit on stage — e.g. `[VOX 2] MIX 2`, `[DRUMS]`, `[MC] MC1`. A - blank line is an empty spot. -2. Each refresh the server reads the upcoming plan's **team members** (any team - whose name matches a line in *Teams to include*), and matches each person to - a slot by their Planning Center **position** — the same loose matching the - Electron app uses (`matching.js`; `[VOX 2] MIX 2` takes whoever is on *Vox - 2*). A numbered role only matches the same number, and the `MIX n` part is - ignored, so Vox 2 and Vox 3 never swap. -3. **Photos and birthdays** come from Planning Center (birthdays via the People - API; only month + day is kept). Photos are cached on disk and served by the - module; birthdays drive the confetti. - -## Manual photos (people not on the plan) - -Guest speakers, MCs, stage managers — anyone not scheduled in Planning Center — -are pinned per slot from the tile's **Edit** button (title bar): set a name, -optionally upload a photo, optionally a `MM-DD` birthday. A manual pin overrides -the PCO match for that slot and is kept until you Clear it. Uploaded photos live -in the ProdDash data directory, never in the repo. - -## Settings - -- **Admin** (server-wide): Planning Center credentials, service type, plan, the - teams to include, the stage slots, columns, refresh interval. -- **Per tile** (gear): birthday confetti on/off + intensity, a force-birthday - test picker, parallax, and show/hide for names and mic labels. - -## Testing without Planning Center - -```bash -node tools/pco-band-mock.js 24710 # mock PCO -BAND_LINEUP_API_BASE=http://127.0.0.1:24710 node server.js # point the module at it -node modules/band-lineup/matching.test.js # slot-matching unit tests -``` - -Then in `/admin` under Band Lineup enter any Client ID + Secret, pick "Sunday -Service", and the board fills — one person (on Drums) has a birthday this week, -so their tile rains confetti.