Files
euchre_camp/docs/TODO.md
T

3.9 KiB

EuchreCamp - Project Todo List

Completed Features

Backend

  • Database schema for matches, players, teams, events
  • Elo rating calculator and job
  • Partnership tracking and analytics
  • Tournament generator (round-robin, single elim, double elim, Swiss)
  • ROM relations and repositories
  • Acceptance test suite (8 tests passing)

Frontend

  • Basic player rankings page
  • Match entry form

In Progress - UI Development

Completed

  • Navigation layout (Next.js components)
  • UI Design document (UI_DESIGN.md)
  • Player Profile page (Next.js)
  • Basic CSS styling (Tailwind CSS)
  • Player Schedule page (Next.js)
  • Route for player schedule

View Types to Implement

  • Tournament Admin View (Phase 2-3)

    • Create/manage tournaments
    • Set up brackets and matchups
    • Record match results
    • View tournament standings
  • Club Admin View (Superuser) (Phase 3-4)

    • Manage all players
    • View club-wide statistics
    • Configure club settings
    • Manage tournaments
  • Player Profile View (Phase 1-2)

    • Display player info and Elo rating
    • Show partnership analytics
    • Display match history
    • Tournament participation
    • Enhance existing template
  • Player Tournament Schedule View (Phase 4)

    • Show upcoming matches
    • Display tournament brackets
    • Record personal match results

UI Components Needed

  • Navigation system (role-based) - Started
  • Dashboard layouts
  • Forms for data entry
  • Tables for displaying data
  • Charts for statistics
  • Bracket visualization

Implementation Phases

  • Phase 1: Navigation & Layout
  • Phase 2: Player Profile Enhancements
  • Phase 3: Tournament Admin View
  • Phase 4: Club Admin View
  • Phase 5: Player Schedule View
  • Phase 6: Authentication & Authorization
  • Phase 7: Polish & Testing

Future Enhancements

Features

  • Real-time match updates (WebSockets)
  • Mobile-responsive design improvements
  • Email notifications
  • Import/Export functionality
  • API for third-party integrations
  • Advanced analytics charts

Technical

  • Performance optimization
  • Caching strategy
  • Security hardening
  • Deployment pipeline
  • CI/CD setup

AAA System (Authentication, Authorization, Accounting) - Next.js Implementation

Authentication (Better Auth + Prisma)

  • Set up Better Auth with Prisma
  • Create users table schema
  • Build login page (/auth/login)
  • Build registration page (/auth/register)
  • Implement session management with Better Auth
  • Add authentication middleware
  • Password reset functionality
  • Email confirmation system
  • OAuth providers (optional)

Authorization (RBAC)

  • Define roles in Prisma schema (PLAYER, TOURNAMENT_ADMIN, CLUB_ADMIN)
  • Implement authorization helpers
  • Add authorization to admin dashboard
  • Add authorization to player management
  • Add authorization to tournament management
  • Add 5-minute match edit window (player role)
  • Add role assignment UI for club admins
  • Add permission checks to all API routes

Accounting (Activity Logging)

  • Create activity logging system (Prisma model)
  • Track authentication events
  • Track tournament management events
  • Track match recording events
  • Build audit reports UI

Security

  • Rate limiting (Better Auth built-in)
  • IP-based lockout
  • Secure cookie settings (Better Auth)
  • CSRF protection (Next.js built-in)
  • Security headers
  • Session fixation prevention

Known Issues

  • Database IDs not resetting between tests (workaround: query by round_number)
  • Need to clean up debug output from acceptance tests
  • Password reset flow not yet implemented

Next Steps

  1. Design UI mockups for each view type
  2. Implement navigation system
  3. Build out Tournament Admin view
  4. Add role-based access control
  5. Create reusable UI components