Implement comprehensive partnership tracking system and tournament
management features including round-robin, single/double elimination,
and Swiss system pairings.
Changes:
- Add partnership_games and partnership_stats tables
- Implement PartnershipTracker service for recording partnership data
- Add tournament generator with multiple formats
- Create tournament management actions and views
- Add acceptance tests for partnership tracking
- Fix PartnershipTracker to use single snapshot per player per match
- Fix round-robin test to query by round_number instead of hardcoded ID
Note: All 8 acceptance tests now passing
Refactor rankings action to use render_with_player helper for
consistent current_player availability across views.
Changes:
- Update rankings action to use render_with_player
- Ensure current_player is available in all view templates
Implement player-facing views for profile analytics and tournament scheduling.
Changes:
- Add player profile page with partnership statistics
- Add player schedule page with upcoming matches
- Update rankings page to link to player profiles
- Add partnership tracking display in profile
- Include recent games timeline in profile
Note: Schedule view shows upcoming matches and tournament participation
Add user authentication infrastructure with login/logout functionality,
session management, and basic user model.
Changes:
- Create users table with email, password_digest, confirmation tokens
- Add Users repository with authentication methods
- Add User entity with authentication helpers
- Implement login form and authentication actions
- Add logout action
- Add BCrypt gem for password hashing
- Update base Action class with authentication helpers
- Add login/logout routes
Next steps: Registration flow, password reset, email confirmation
Implement foundational UI components including navigation bar,
CSS styling, and improved rankings page.
Changes:
- Add navigation bar with links to Rankings, Profile, Schedule, Admin
- Add comprehensive CSS styling for tables, forms, buttons, alerts
- Improve rankings page with profile links
- Support conditional navigation based on authentication status
Add improved match entry form with player selection validation and
better user experience for recording match results.
Changes:
- Add player validation to prevent same player on both teams
- Add team score validation (must have winner)
- Improve form layout and player selection UI
- Add helper methods for player lookup and team building
The Elo calculator was incorrectly rejecting valid scores (10-7) because
it checked if team score >= 10 without verifying the opposing team's score.
Changes:
- Update winner determination to check both score >= 10 AND score > opponent
- Add detailed error message with actual scores for debugging
- Ensure only one team can win (not both reaching 10 points)
- Implement EloCalculator service for 2v2 Euchre matches
- Create background job processing with GoodJob
- Add single match entry form
- Add CSV upload for batch match entry
- Create player rankings view
- Add database schema for matches and elo snapshots