Shuttle Ledger

Clickable prototype. Both journeys are live and share one ledger — confirm something as the coach and the parent’s balance changes, because the balance is recomputed from confirmed events rather than stored.

Home

Parent

The balance, derived

No counter is stored anywhere. Every figure below is recomputed from confirmed events each time the screen draws, which is why the two apps can never disagree.

Things worth trying

  1. Confirm Aarav’s pending class in the coach queue, then switch to the parent app. The balance drops from 6 to 5.
  2. Verify Diya’s payment and amend the count from 8 to 6 before confirming. The parent’s original figure stays in the history.
  3. Open Diya’s card as the parent at 2 classes left. The renewal banner has no dismiss control, on purpose.
  4. Override the disputed class for Aarav. Note that the reason is required and the entry is stamped permanently.
  5. Spend Diya down to zero, then try to mark another class. The control is disabled, not hidden, and says why.