Files
euchre_camp/TODO.md
T
david 6332802001 docs: add project documentation and design files
Add comprehensive documentation for project planning and design.

Changes:
- Add TODO.md with project progress tracking
- Add UI_DESIGN.md with frontend view specifications
- Add AAA_DESIGN.md with authentication system design
- Add AAA_IMPLEMENTATION.md with authentication progress tracking
2026-03-27 12:25:40 -07:00

4.0 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: Polish & Testing (Week 5)

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 (db/migrate/20240915000008_create_users.rb)
  • Create users repository (app/repositories/users.rb)
  • Create users model/struct (lib/euchre_camp/entities/user.rb)
  • Build login page template (app/templates/auth/login.html.erb)
  • Build login action (app/actions/auth/login.rb)
  • Build logout action (app/actions/auth/logout.rb)
  • Add login/logout routes
  • Add BCrypt to Gemfile
  • Install BCrypt (bundle install)
  • Update base Action with authentication helpers
  • Add current_player to views
  • Create registration action and template
  • Add session management middleware
  • Password reset functionality
  • Email confirmation system

Authorization

  • Define roles (player, tournament_admin, club_admin, system_admin)
  • Implement RBAC middleware
  • Add role assignment UI
  • Protect routes based on permissions
  • Permission checks in actions

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