ensembler
ensembler copied to clipboard
Embedded Ensemble Rotation Timer for Participants
So I can stop doing a 3-step manual dance, and because the mobti.me UI has stuff I don't need/want.
- [ ] Create side-band controller for the timer to make it easy during manual testing to change the state of the timer
- [x] Admin Back-end to create
EnsembleTimer
:- [X] Gather participants
- [x] Timer state: waiting-to-start, running, end-of-rotation ("finished")
- [x] Timer state: paused
- [x] Needs new Timer State: PAUSED
- [x] EnsembleTimer implementation needs to change to support being Paused/Resumed
- [x] Respond to START command: tells the EnsembleTimer to start, tells Countdown Configuration (outbound) Adapter to start "ticking"
- [x] Countdown (inbound) Adapter: sends a "tick" to the application layer
- [x] Broadcaster (outbound) Adapter: sends message to all connected WebSocket clients
- [x] Self-responsible for maintaining connections
- [x] Timer end-time (
Instant
, i.e., time in UTC) - [x] Expose Driver, Navigator, and Members (rest of Ensemble)
- [x] Shuffle the rotation order (responsibility of the timer Holder to do shuffling)
- [X] Admin Front-End view
- [x] Show template for timer
- [x] HTML Template: basic layout with timer on the left and participants laid out per mockup
- [X] HTML Template: JavaScript for timer countdown
- [x] "NEXT" button to set up timer for next rotation
- [X] Requires button in HTML
- [X] Need new Endpoint for /admin/rotate-timer, which will rotate participants
- [x] Show Roles with the participant names
- [x] #209
- [x] Improve CSS for layout of timer page
- [x] #210
- [ ] #212
- [ ] #213
Nice to have:
- [ ] Display header message indicating that sound won't play until they interact with the page (see https://developer.mozilla.org/en-US/docs/Web/Media/Autoplay_guide)
- [ ] Add tracking of total "paused" time
- [ ] Add tracking of hand-off time (how long between timer ends and timer starts again for next rotation)
- [ ] Other "analytics"