nextjs-rewrite (#5)
Reviewed-on: #5 Co-authored-by: David Gwilliam <dhgwilliam@gmail.com> Co-committed-by: David Gwilliam <dhgwilliam@gmail.com>
This commit was merged in pull request #5.
This commit is contained in:
+134
@@ -0,0 +1,134 @@
|
||||
# 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 (Next.js components)
|
||||
- [x] UI Design document (UI_DESIGN.md)
|
||||
- [x] Player Profile page (Next.js)
|
||||
- [x] Basic CSS styling (Tailwind CSS)
|
||||
- [x] Player Schedule page (Next.js)
|
||||
- [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
|
||||
- [x] Phase 2: Player Profile Enhancements
|
||||
- [x] Phase 3: Tournament Admin View
|
||||
- [x] Phase 4: Club Admin View
|
||||
- [x] Phase 5: Player Schedule View
|
||||
- [ ] Phase 6: Authentication & Authorization
|
||||
- [x] 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)
|
||||
- [x] Set up Better Auth with Prisma
|
||||
- [x] Create users table schema
|
||||
- [x] Build login page (`/auth/login`)
|
||||
- [x] Build registration page (`/auth/register`)
|
||||
- [x] Implement session management with Better Auth
|
||||
- [x] Add authentication middleware
|
||||
- [ ] Password reset functionality
|
||||
- [ ] Email confirmation system
|
||||
- [ ] OAuth providers (optional)
|
||||
|
||||
### Authorization (RBAC)
|
||||
- [x] Define roles in Prisma schema (PLAYER, TOURNAMENT_ADMIN, CLUB_ADMIN)
|
||||
- [x] Implement authorization helpers
|
||||
- [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 (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
|
||||
- [x] Rate limiting (Better Auth built-in)
|
||||
- [ ] IP-based lockout
|
||||
- [x] Secure cookie settings (Better Auth)
|
||||
- [x] 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
|
||||
Reference in New Issue
Block a user