Files
gh-christianlouis-leagueledger/docs/development/roadmap.md
T
Christian Krakau-Louis c2b69db2e5 Docs: extend roadmap with themed releases
Update roadmap doc with themed feature landscape and versioned release plan aligned to GitHub milestones and roadmap epics.
2026-05-23 02:30:58 +02:00

9.1 KiB

LeagueLedger Roadmap

This roadmap is based on a senior-developer inspection of the current FastAPI, Jinja, and SQLAlchemy codebase.

Roadmap Execution (GitHub)

This document describes outcomes and acceptance criteria. Execution is tracked in GitHub:

Current Findings

  • LeagueLedger currently treats teams, QR sets, events, redemptions, and leaderboards as global records. That blocks multiple pubs or organizers from sharing one installation cleanly.
  • Database migrations are split between app/db.py and app/db_migrations.py. This increases drift risk because schema changes can land in one path and not the other.
  • Tests are thin and some existing tests mock SQLAlchemy chains in ways that do not match the current query implementation.
  • Several workflows still include compatibility branches for removed model names, which makes behavior harder to reason about.
  • QR redemption did not consistently record the redeeming user on the QR code record, weakening auditability.

Feature Landscape (Themes)

These themes reflect what a modern, operator-friendly loyalty + league product typically needs beyond the foundational multi-league work.

Foundation & Governance (P0)

  • Multi-league operations: league creation, archival, and delegation.
  • Role-based access control (RBAC) and strict data isolation by league.
  • Migration safety and release hygiene (CI, smoke tests, release checklist).

QR Trust, Fraud Prevention & Auditability (P0/P1)

  • Rotating/expiring QR codes, replay protection, and rate limits.
  • Clear redemption audit trails and admin review tooling.

Engagement, Rewards & Retention (P1)

  • Rewards catalog and redemption flow (points → rewards).
  • Seasons (timeboxed leaderboards) and historical archives.
  • Notifications, announcements, and team communication.
  • Optional Apple/Google Wallet passes for “always-on” engagement.

Integrations & Automation (P1/P2)

  • Webhooks + exports as the baseline “integration surface”.
  • Slack/Discord notifications and calendar feeds (ICS).
  • PWA + offline QR scanning to make the mobile experience resilient.

Analytics, Insights & Reporting (P2)

  • Admin reports, retention/cohort analytics, and operational dashboards.

Platform Extensibility + MCP/AI (P2/P3)

  • Public API (read-first) with rate limits and scoped auth.
  • MCP server for safe “tools” (create event, generate QR sets, query stats).
  • Guardrailed AI operator UX built on top of MCP tools.

Release Plan (GitHub Milestones)

Version Focus Tracking Epic Target (UTC)
v0.2.0 Multi-league foundation (shipped) Release notes: https://github.com/christianlouis/LeagueLedger/releases/tag/v0.2.0 2026-05-22
v0.3.0 League administration https://github.com/christianlouis/LeagueLedger/issues/145 2026-06-30
v0.4.0 Data isolation + RBAC https://github.com/christianlouis/LeagueLedger/issues/151 2026-07-31
v0.5.0 Migrations + release hardening https://github.com/christianlouis/LeagueLedger/issues/156 2026-08-31
v0.6.0 QR trust + security https://github.com/christianlouis/LeagueLedger/issues/162 2026-09-30
v0.7.0 Engagement layer https://github.com/christianlouis/LeagueLedger/issues/165 2026-10-31
v0.8.0 Integrations + automation https://github.com/christianlouis/LeagueLedger/issues/168 2026-11-30
v0.9.0 Analytics + reporting https://github.com/christianlouis/LeagueLedger/issues/173 2026-12-31
v1.0.0 Platform + MCP + AI operator https://github.com/christianlouis/LeagueLedger/issues/176 2027-03-31

Milestones

1. Multi-League Foundation

Status: implemented in this branch. Release: v0.2.0 (shipped).

Acceptance criteria:

  • Add a League model with a default league for existing data.
  • Attach teams, QR sets, QR codes, and events to a league.
  • Filter team lists, QR dashboards, leaderboards, and redemption team choices by league.
  • Keep existing URLs and seeded data working.
  • Backfill existing records into the default league during startup migrations.

2. League Administration

Release: v0.3.0 (tracking: https://github.com/christianlouis/LeagueLedger/issues/145).

Acceptance criteria:

  • Add a dedicated admin workflow for creating, editing, activating, and archiving leagues.
  • Allow league managers to administer only their own league.
  • Replace generic admin CRUD for league-sensitive records with validated forms where needed.
  • Add tests for league creation, activation, and manager permissions.

3. Data Isolation and Permissions

Release: v0.4.0 (tracking: https://github.com/christianlouis/LeagueLedger/issues/151).

Acceptance criteria:

  • Introduce league-level roles for owners, quiz masters, and staff.
  • Enforce league boundaries in every query that reads or mutates teams, events, QR sets, QR codes, achievements, and leaderboards.
  • Add authorization tests covering cross-league access attempts.

4. Migration Cleanup

Release: v0.5.0 (tracking: https://github.com/christianlouis/LeagueLedger/issues/156).

Acceptance criteria:

  • Consolidate schema migrations into one approach.
  • Add repeatable migration tests against a fresh database and a simulated legacy database.
  • Remove stale compatibility code after migration coverage is in place.

5. Release Hardening

Release: v0.5.0 (tracking: https://github.com/christianlouis/LeagueLedger/issues/156).

Acceptance criteria:

  • Add CI checks for syntax, tests, and a lightweight app smoke test.
  • Document local development with 1Password-injected environment secrets.
  • Add a release checklist with migration, rollback, and verification steps.

6. QR Trust + Security

Release: v0.6.0 (tracking: https://github.com/christianlouis/LeagueLedger/issues/162).

Acceptance criteria:

7. Engagement Layer

Release: v0.7.0 (tracking: https://github.com/christianlouis/LeagueLedger/issues/165).

Acceptance criteria:

8. Integrations + Automation

Release: v0.8.0 (tracking: https://github.com/christianlouis/LeagueLedger/issues/168).

Acceptance criteria:

9. Analytics + Reporting

Release: v0.9.0 (tracking: https://github.com/christianlouis/LeagueLedger/issues/173).

Acceptance criteria:

10. Platform + MCP + AI Operator

Release: v1.0.0 (tracking: https://github.com/christianlouis/LeagueLedger/issues/176).

Acceptance criteria: