chore: save current Ruby implementation state before Next.js rewrite
This commit is contained in:
+221
@@ -0,0 +1,221 @@
|
||||
# EuchreCamp User Stories
|
||||
|
||||
## Epic 1: Authentication & User Management
|
||||
|
||||
### As a new user, I want to register for an account so that I can participate in tournaments and track my games
|
||||
- Acceptance Criteria:
|
||||
- Registration form with name, email, password, password confirmation
|
||||
- Email validation and uniqueness check
|
||||
- Password strength requirements (8+ chars, uppercase, lowercase, number, special char)
|
||||
- Account confirmation via email
|
||||
- Auto-create player profile upon registration
|
||||
|
||||
### As a registered user, I want to log in to my account so that I can access my data
|
||||
- Acceptance Criteria:
|
||||
- Login form with email and password
|
||||
- Session management with secure cookies
|
||||
- "Remember me" functionality
|
||||
- Error handling for invalid credentials
|
||||
- Account lockout after 5 failed attempts
|
||||
|
||||
### As a logged-in user, I want to log out so that I can secure my account
|
||||
- Acceptance Criteria:
|
||||
- Logout button in navigation
|
||||
- Session cleared on logout
|
||||
- Redirect to home page
|
||||
|
||||
### As a user who forgot my password, I want to reset it so that I can regain access
|
||||
- Acceptance Criteria:
|
||||
- "Forgot password" link on login page
|
||||
- Email input for reset request
|
||||
- Unique token generation (expires in 1 hour)
|
||||
- Email with reset link
|
||||
- Password update form with validation
|
||||
|
||||
## Epic 2: Player Profile & Analytics
|
||||
|
||||
### As a player, I want to view my profile so that I can see my statistics
|
||||
- Acceptance Criteria:
|
||||
- Profile header with name and avatar
|
||||
- Current Elo rating with trend indicator
|
||||
- Total games played
|
||||
- Win rate percentage
|
||||
- Member since date
|
||||
|
||||
### As a player, I want to see my partnership performance so that I can identify my best partners
|
||||
- Acceptance Criteria:
|
||||
- Table showing all partners
|
||||
- Games played with each partner
|
||||
- Win rate with each partner
|
||||
- Total Elo change per partnership
|
||||
- Last played together date
|
||||
|
||||
### As a player, I want to see my recent games so that I can track my performance
|
||||
- Acceptance Criteria:
|
||||
- Timeline of recent matches
|
||||
- Date, opponents, scores, and results
|
||||
- Partner information for each game
|
||||
- Pagination for loading more games
|
||||
|
||||
### As a player, I want to see my tournament history so that I can review past performances
|
||||
- Acceptance Criteria:
|
||||
- List of tournaments participated in
|
||||
- Final standings in each tournament
|
||||
- Performance summary per tournament
|
||||
|
||||
## Epic 3: Rankings & Public Data
|
||||
|
||||
### As a visitor, I want to view player rankings so that I can see top players
|
||||
- Acceptance Criteria:
|
||||
- Sortable rankings table
|
||||
- Columns: Rank, Name, Elo, Win Rate, Games Played
|
||||
- Search/filter functionality
|
||||
- Pagination
|
||||
|
||||
### As a visitor, I want to view player profiles so that I can learn about other players
|
||||
- Acceptance Criteria:
|
||||
- Public profile pages (read-only for non-admins)
|
||||
- Basic stats: Elo, games played, win rate
|
||||
- Partnership performance (if public)
|
||||
- Recent games (limited)
|
||||
|
||||
## Epic 4: Tournament Management
|
||||
|
||||
### As a tournament admin, I want to create a new tournament so that I can organize events
|
||||
- Acceptance Criteria:
|
||||
- Tournament creation form
|
||||
- Fields: Name, Format (round-robin, single elim, double elim, Swiss), Date, Status
|
||||
- Default settings for each format
|
||||
- Validation for required fields
|
||||
|
||||
### As a tournament admin, I want to manage tournament participants so that I can control who plays
|
||||
- Acceptance Criteria:
|
||||
- Add participants from player list
|
||||
- Remove participants
|
||||
- Bulk import from CSV
|
||||
- View participant list with status
|
||||
|
||||
### As a tournament admin, I want to create teams so that I can organize players into pairs
|
||||
- Acceptance Criteria:
|
||||
- Team creation form
|
||||
- Select two players per team
|
||||
- Auto-generate team names
|
||||
- Edit/delete teams
|
||||
|
||||
### As a tournament admin, I want to generate a schedule so that matches are organized
|
||||
- Acceptance Criteria:
|
||||
- Round-robin schedule generation
|
||||
- Single/double elimination bracket generation
|
||||
- View schedule by round
|
||||
- Re-schedule matches if needed
|
||||
|
||||
### As a tournament admin, I want to record match results so that I can track tournament progress
|
||||
- Acceptance Criteria:
|
||||
- Match result entry form
|
||||
- Select teams and enter scores
|
||||
- Auto-determine winner from scores
|
||||
- Validation for score formats
|
||||
|
||||
### As a tournament admin, I want to upload results via CSV so that I can batch process matches
|
||||
- Acceptance Criteria:
|
||||
- CSV upload form with tournament selection
|
||||
- Parse CSV with specific format (Event, Round, Table, Seats, Scores, Winner)
|
||||
- Validate player names exist in system
|
||||
- Create teams automatically if needed
|
||||
- Import matches and update Elo ratings
|
||||
|
||||
### As a tournament admin, I want to view tournament analytics so that I can assess performance
|
||||
- Acceptance Criteria:
|
||||
- Tournament statistics (total matches, average score, etc.)
|
||||
- Partnership performance within tournament
|
||||
- Elo changes for participants
|
||||
- Visual charts for key metrics
|
||||
|
||||
## Epic 5: Match Recording & CSV Import
|
||||
|
||||
### As a user, I want to record a match result so that I can track my games
|
||||
- Acceptance Criteria:
|
||||
- Match creation form
|
||||
- Select Team 1 and Team 2 (each with 2 players)
|
||||
- Enter scores for each team
|
||||
- Auto-calculate winner
|
||||
- Update Elo ratings for all players
|
||||
- Update partnership statistics
|
||||
|
||||
### As a user, I want to upload match results via CSV so that I can process multiple matches at once
|
||||
- Acceptance Criteria:
|
||||
- CSV upload form
|
||||
- Support for Euchre format (Event, Round, Table, Seat 1-4, Odds/Evens Points, Winner)
|
||||
- Map table names (Clubs, Hearts, Diamonds, Spades, Stars) to numeric IDs
|
||||
- Handle player name variations
|
||||
- Create teams automatically
|
||||
- Import matches and calculate Elo
|
||||
- Show import summary with success/error count
|
||||
|
||||
### As a user, I want to edit match results so that I can correct mistakes
|
||||
- Acceptance Criteria:
|
||||
- Edit form for existing matches
|
||||
- Validation for time limits (5 minutes for players, unlimited for admins)
|
||||
- Update Elo ratings on change
|
||||
- Log changes in activity feed
|
||||
|
||||
## Epic 6: Club Administration
|
||||
|
||||
### As a club admin, I want to manage all players so that I can maintain the player database
|
||||
- Acceptance Criteria:
|
||||
- Player directory with search and filter
|
||||
- Create, edit, delete players
|
||||
- Bulk actions (export, update ratings)
|
||||
- View player activity
|
||||
|
||||
### As a club admin, I want to manage all tournaments so that I can oversee club events
|
||||
- Acceptance Criteria:
|
||||
- Tournament list with filters
|
||||
- Clone existing tournaments
|
||||
- Archive completed tournaments
|
||||
- View tournament analytics
|
||||
|
||||
### As a club admin, I want to configure club settings so that I can customize the system
|
||||
- Acceptance Criteria:
|
||||
- Elo rating parameters
|
||||
- Partnership tracking preferences
|
||||
- Notification settings
|
||||
- Default tournament settings
|
||||
|
||||
### As a club admin, I want to view club analytics so that I can assess overall performance
|
||||
- Acceptance Criteria:
|
||||
- Rating distribution charts
|
||||
- Activity heatmaps
|
||||
- Partnership network graph
|
||||
- Export reports (PDF/CSV)
|
||||
|
||||
## Epic 7: Mobile Responsiveness
|
||||
|
||||
### As a mobile user, I want to navigate the site so that I can access features on my phone
|
||||
- Acceptance Criteria:
|
||||
- Responsive navigation bar
|
||||
- Bottom navigation for mobile
|
||||
- Touch-friendly buttons and links
|
||||
- Optimized layouts for small screens
|
||||
|
||||
### As a mobile user, I want to record match results so that I can log games on the go
|
||||
- Acceptance Criteria:
|
||||
- Mobile-optimized forms
|
||||
- Quick entry for common actions
|
||||
- Offline support (optional)
|
||||
|
||||
## Epic 8: Data Management & Export
|
||||
|
||||
### As a club admin, I want to export data so that I can backup or analyze externally
|
||||
- Acceptance Criteria:
|
||||
- Export players to CSV
|
||||
- Export tournaments to CSV
|
||||
- Export matches to CSV
|
||||
- Export partnership data to CSV
|
||||
|
||||
### As a club admin, I want to import data so that I can migrate from other systems
|
||||
- Acceptance Criteria:
|
||||
- Import players from CSV
|
||||
- Import tournaments from CSV
|
||||
- Import matches from CSV
|
||||
- Data validation and error reporting
|
||||
Reference in New Issue
Block a user