# 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