Band Lineup's docs move to where every other module's live #21
@@ -365,15 +365,24 @@ below. Nothing is installed without someone clicking.
|
|||||||
as `Label | Message` — add `| #channel` to bind one to a channel — and up
|
as `Label | Message` — add `| #channel` to bind one to a channel — and up
|
||||||
to eight quick emojis).
|
to eight quick emojis).
|
||||||
Tile settings: avatars, timestamps, names and channel notices.
|
Tile settings: avatars, timestamps, names and channel notices.
|
||||||
- **Band Lineup** — the backstage stage board: everyone scheduled on the
|
- **Band Lineup** — the backstage stage board: everyone on stage in their mic
|
||||||
band, vocal and production teams for the upcoming Planning Center plan,
|
slot with photo, name and mic/pack label, on one shared board that every
|
||||||
placed into their mic slot with photo, name and mic/pack label; birthdays
|
screen sees the same way — whoever edits it changes it everywhere, over SSE.
|
||||||
in the service week get confetti. Guests and MCs not on the plan are pinned
|
A photo library fills it: point the module at a Google Drive folder shared
|
||||||
per slot from the title bar's Edit button. Admin config: Planning Center
|
"anyone with the link" (file name → person's name) or at a folder on the
|
||||||
credentials, service type and plan, the teams to include, the stage slots
|
ProdDash machine, and photos added or removed there follow. **Edit** in the
|
||||||
(one mic/pack label per line, in stage order), default columns, and a
|
title bar opens that library — drag a photo onto a slot, drag between slots
|
||||||
Google Drive folder for manual photos. Tile settings: names, mic labels,
|
to swap, rename or clear. Planning Center is optional auto-fill on top, not
|
||||||
parallax, and the birthday confetti with its intensity.
|
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
|
- **Clock** — a big booth clock; also the smallest possible module and the
|
||||||
reference for module authors.
|
reference for module authors.
|
||||||
|
|
||||||
|
|||||||
@@ -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.
|
|
||||||
Reference in New Issue
Block a user