PCO Plan module: Planning Center order of service, following ProPresenter

New module modules/pco-plan: reads the current plan for a chosen Planning
Center Services service type (PAT or OAuth token), streams items with start
times, lengths, keys, descriptions and item notes to tiles (every detail a
per-tile show/hide setting), and follows the propresenter-now-next module's
live item over loopback SSE to highlight the current plan item and track
elapsed vs planned runtime. Ships its own setup page
(/modules/pco-plan/setup.html) to browse folders and pick the service type
through the shell admin API, plus tools/pco-mock.js for development.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
Waters Church
2026-09-09 15:42:53 -04:00
co-authored by Claude Fable 5.1
parent a3a68ebd73
commit e7dc235a8a
8 changed files with 2437 additions and 2 deletions
+13 -2
View File
@@ -135,14 +135,25 @@ ignored from then on.
and pick a selection via the tile's "Timers ▾" menu; overruns are
unmistakably red. Read-only — no start/stop controls. Admin config:
ProPresenter endpoint (host : port), password.
- **PCO Plan** — the order of service from Planning Center Services: every
plan item with its scheduled start time, length, type, song key,
description and item notes (each detail is a per-tile show/hide setting).
When the ProPresenter module is running it follows that module's live
item, highlights the matching plan item, dims what's done and shows the
elapsed vs planned runtime and how far ahead/behind the service is. Admin
config: Planning Center credentials (Personal Access Token app ID + secret,
or an OAuth token) and the service type — browse your Planning Center
folders and pick it at `/modules/pco-plan/setup.html`.
- **Clock** — a big booth clock; also the smallest possible module and the
reference for module authors.
To develop modules against mocks instead of real gear:
`node tools/prodcom-mock.js` (ProdCom on `127.0.0.1:24480`),
`node band-lineup-display/tmp/pp-mock.js 1599` (ProPresenter slides on
`127.0.0.1:1599`) and `node tools/pp-timers-mock.js 1600` (ProPresenter
timers + timecode on `127.0.0.1:1600`). See the testing section of the
`127.0.0.1:1599`), `node tools/pp-timers-mock.js 1600` (ProPresenter
timers + timecode on `127.0.0.1:1600`) and `node tools/pco-mock.js`
(Planning Center Services on `127.0.0.1:24700` — run ProdDash with
`PCO_PLAN_API_BASE=http://127.0.0.1:24700`). See the testing section of the
[module guide](docs/MODULE-GUIDE.md).
## Install as a desktop web app