Commit Graph

11 Commits

Author SHA1 Message Date
f645d78c83 Add Meeting system subject and notification system
- Auto-create a locked "Meeting" subject for every user on registration
  and seed it for all existing users on startup
- Meeting subject cannot be deleted or renamed (is_system flag)
- 5-minute corner toast warning on Dashboard and TV with live countdown,
  dismiss button, and 1-minute re-notify if dismissed
- At start time: full-screen TV overlay with 30-second auto-dismiss,
  automatic pause of running block, switch to Meeting block, and
  auto-start of Meeting timer
- Web Audio API chimes: rising on warnings, falling at meeting start
- Update README with Meeting subject and notification system docs

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-04 23:44:21 -08:00
c560055b10 Add Super Admin panel with user impersonation
- New /super-admin/login and /super-admin routes with separate auth
- Super admin can view all registered accounts and impersonate any user
- Impersonation banner shows at top of screen with exit button
- ADMIN_USERNAME and ADMIN_PASSWORD config added to .env and docker-compose.yml
- Fixed auth store: export setToken, clearToken, and setUser so they are
  accessible from superAdmin store
- Updated README with super admin feature, new env vars, and setup notes

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-04 22:30:44 -08:00
c05543d855 Rework day progress bar to use block-duration time instead of wall clock
Both the TV and parent dashboard progress bars now calculate % complete
based on total scheduled block time vs. remaining block + break time,
so the bar only advances while blocks are actively being worked.

TV bar labels changed to "🟢 Start" and "Finish 🏁".
Parent dashboard shows first block's scheduled start time on the left
and a live estimated finish time (now + remaining block/break time) on
the right.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-03 13:38:40 -08:00
87e5ab7b5b Update README with break time and break activities features
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-03 08:44:08 -08:00
13f3e08744 Update README with current feature set and timer controls
- Rewrote Daily Sessions feature to describe the select/start/pause/resume/reset
  workflow instead of the old auto-start-on-click behavior
- Added Dashboard Controls table documenting each button's condition and action
- Updated Activity Log to include reset events
- Added utils/timer.py to project structure
- Expanded WebSocket Events table with select, reset, prev_block_* fields
- Removed stale description of single-click auto-start block switching

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-03 00:32:40 -08:00
115fe12886 Update README to reflect current feature set and project structure
- Add Morning Routine, strike event logging, block timer remaining,
  and single-click block switching to features
- Remove /schedules as a separate route (schedule management is in /admin)
- Remove docker-compose.override.yml and alembic/ references (neither exists)
- Replace Database Migrations section with accurate description of
  the create_all + idempotent ALTER TABLE startup approach
- Update project structure to show new model/router files
- Update setup steps and URL table to match current routes
- Add block_elapsed_seconds to WebSocket events table

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-01 22:28:12 -08:00
a63674fe56 Update README to document block switching behavior
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-01 21:26:01 -08:00
63230149c5 Update README for activity log and session state improvements
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-01 19:22:02 -08:00
823260cdd8 Add timezone selector to Admin settings with full-stack support
- Add `timezone` column to User model (VARCHAR 64, default UTC) with
  idempotent startup migration
- Expose and persist timezone via PATCH /api/users/me
- Fix TimerEvent.occurred_at serialization to include UTC offset marker
  (+00:00) so JavaScript correctly parses timestamps as UTC
- Add frontend utility (src/utils/time.js) with timezone-aware
  formatTime, getHHMM, getDateInTZ, tzDateTimeToUTC helpers and a
  curated IANA timezone list
- Add Settings section to Admin page with timezone dropdown; saves to
  both the API and localStorage for the unauthenticated TV view
- Update Activity Log to display and edit times in the user's timezone
- Update TV dashboard clock to respect the saved timezone
- Update README: features, setup steps, usage table, WebSocket events

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-01 14:16:37 -08:00
e92476db07 Add comprehensive README
Covers project overview, tech stack, directory structure, getting
started steps, usage guide, dev mode, database migrations, WebSocket
events, and environment variable reference.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-27 23:04:41 -08:00
93e0494864 Initial commit 2026-02-27 22:55:14 -08:00