4.1 KiB
RC RaceCore Roadmap
Track work here with checkboxes. Check off a task only after implementation and verification. Record user-visible changes under Unreleased in CHANGELOG.md. Priorities below are a working order, not release-date commitments.
Existing foundation
- Race Day, preflight checks and heat queue.
- Automatic SQLite backups and local restore command.
- Isolated session replay.
- Training statistics, personal mobile profiles and car-change markers.
- Interactive list sorting and OBS display modes.
- Visible application version and changelog.
Verified 2026-09-08: 122 logic/API tests and the register/offline browser smoke suite passed on Linux with Chrome. Checked items below describe that coverage; other platforms and workflows remain open.
1. Reliability and browser regression tests
Acceptance: real create/edit/save flows persist after reload; background updates do not discard edits. Tests use isolated data, never the installation's database.
- Add a repeatable browser smoke-test command with temporary database/profile.
- Cover create/edit/save for classes, drivers and cars, including reload verification.
- Verify register form drafts remain intact during background version polling.
- Cover sponsor events and race setup edits.
- Cover team creation, membership changes, editing and deletion.
- Cover session types, lap limits and start/finish controls.
- Cover browser sorting, popup overlays, and compact OBS layout automatically.
- Add Windows and Linux CI runs for supported runtimes.
2. Connection and save status
Acceptance: users can distinguish server contact, pending edits, an active save and a failed save; a health check never falsely confirms a failed write.
- Show pending, saving, saved and failed state in the main interface.
- Show last successful data load/save times.
- Warn when the server connection is lost or its status becomes stale.
- Offer manual retry for unsaved changes without discarding local edits.
- Verify save failure/reconnection in a real browser.
- Extend stale-data feedback to the personal mobile profile.
- Review concurrent writes, reconnect recovery and multiple controllers editing the same race.
3. Clearer practice follow-up
Acceptance: a driver receives a short, encouraging summary based on their own class-specific data, with one useful next goal.
- Add an end-of-practice summary: pace, consistency, progress and achieved goals.
- Suggest one next training goal using existing calculations.
- Keep summaries separate by class and explain insufficient sample sizes.
- Include the summary in the personal mobile profile.
- Add coach/parent reward follow-up without turning practice into a public ranking.
4. Results archive
- Search completed sessions by date, class and driver without Race Setup.
- Show standings, lap history and penalties together.
- Reuse existing PDF/export functions from the archive.
- Define what remains available after deleting a race.
5. More natural race speech
- Optional backend-generated neural speech.
- Cache announcements and driver names before race day.
- Keep credentials on the backend, outside exports and public responses.
- Invalidate cached speech when language, voice or pronunciation changes.
- Provide provider status and a pre-generate action.
- Verify offline fallback and that playback never delays timing.
6. Permissions and mobile Race Control
- Define Admin, Race Director, Speaker and Read-only capabilities.
- Enforce permissions on server endpoints, not only in the UI.
- Keep public overlays and training links restricted.
- Build compact mobile controls for start/stop, track call, flags and next heat.
- Test concurrent control and accidental repeated commands.
Documentation maintenance
- Update the architecture's module/dependency inventory as modules change.
- Complete state/settings/SQLite contracts and critical form-to-controller mappings.
- Consolidate older future-work notes so this file remains the primary roadmap.