Files
euchre_camp/docs/TODO.md
T

4.1 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 (app.html.erb)
  • UI Design document (UI_DESIGN.md)
  • Player Profile template (existing)
  • Basic CSS styling
  • Player Schedule view (action + template)
  • 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 (Week 1)
  • Phase 2: Player Profile Enhancements (Week 1-2)
  • Phase 3: Tournament Admin View (Week 2-3)
  • Phase 4: Club Admin View (Week 3-4)
  • Phase 5: Player Schedule View (Week 4)
  • Phase 6: Authentication & Authorization (Week 5)
  • Phase 7: Polish & Testing (Week 6)

Future Enhancements

Features

  • Real-time match updates
  • Mobile-responsive design
  • Email notifications
  • Import/Export functionality
  • API for third-party integrations
  • Login/AAA System (Authentication, Authorization, Accounting)

Technical

  • Performance optimization
  • Caching strategy
  • Security hardening
  • Deployment pipeline

AAA System (Authentication, Authorization, Accounting)

Authentication

  • Create users table migration
  • Create users repository
  • Create users model/struct
  • Build login page template
  • Build login action
  • Build logout action
  • Add login/logout routes
  • Add BCrypt to Gemfile
  • Install BCrypt
  • Create authorization service
  • Add authorization helpers to base action
  • Add role-based access control
  • Create registration action and template
  • Add session management middleware
  • Add current_user helper to views
  • Password reset functionality
  • Email confirmation system

Authorization

  • Define roles (player, tournament_admin, club_admin, system_admin)
  • Create Authorization service
  • Implement permission checks
  • Add authorization to admin dashboard
  • Add authorization to player management
  • Add authorization to tournament management
  • Add 5-minute match edit window
  • Add role assignment UI
  • Add permission checks to all routes

Accounting

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

Security

  • Rate limiting on login attempts
  • IP-based lockout (partially implemented in users repo)
  • Secure cookie settings
  • CSRF protection
  • 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
  • README is minimal and needs expansion

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