ensembler icon indicating copy to clipboard operation
ensembler copied to clipboard

Embedded Ensemble Rotation Timer for Participants

Open tedyoung opened this issue 1 year ago • 0 comments

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"

tedyoung avatar Jan 23 '24 20:01 tedyoung