feat: initialize Next.js project with Prisma, authentication, and rankings page

This commit is contained in:
2026-03-27 14:50:00 -07:00
parent 96f7cb86d3
commit 66e4baa643
208 changed files with 8522 additions and 9035 deletions
+142
View File
@@ -0,0 +1,142 @@
# EuchreCamp - Project Todo List
## Completed Features
### Backend
- [x] Database schema for matches, players, teams, events
- [x] Elo rating calculator and job
- [x] Partnership tracking and analytics
- [x] Tournament generator (round-robin, single elim, double elim, Swiss)
- [x] ROM relations and repositories
- [x] Acceptance test suite (8 tests passing)
### Frontend
- [x] Basic player rankings page
- [x] Match entry form
## In Progress - UI Development
### Completed
- [x] Navigation layout (app.html.erb)
- [x] UI Design document (UI_DESIGN.md)
- [x] Player Profile template (existing)
- [x] Basic CSS styling
- [x] Player Schedule view (action + template)
- [x] 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
- [x] Navigation system (role-based) - Started
- [ ] Dashboard layouts
- [ ] Forms for data entry
- [ ] Tables for displaying data
- [ ] Charts for statistics
- [ ] Bracket visualization
### Implementation Phases
- [x] Phase 1: Navigation & Layout (Week 1)
- [x] Phase 2: Player Profile Enhancements (Week 1-2)
- [x] Phase 3: Tournament Admin View (Week 2-3)
- [x] Phase 4: Club Admin View (Week 3-4)
- [x] 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
- [x] Create users table migration
- [x] Create users repository
- [x] Create users model/struct
- [x] Build login page template
- [x] Build login action
- [x] Build logout action
- [x] Add login/logout routes
- [x] Add BCrypt to Gemfile
- [x] Install BCrypt
- [x] Create authorization service
- [x] Add authorization helpers to base action
- [x] 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
- [x] Define roles (player, tournament_admin, club_admin, system_admin)
- [x] Create Authorization service
- [x] Implement permission checks
- [x] Add authorization to admin dashboard
- [x] Add authorization to player management
- [x] Add authorization to tournament management
- [x] 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