Files
euchre_camp/docs/USER_STORIES.md
david 123df671f5 nextjs-rewrite (#5)
Reviewed-on: #5
Co-authored-by: David Gwilliam <dhgwilliam@gmail.com>
Co-committed-by: David Gwilliam <dhgwilliam@gmail.com>
2026-03-30 02:30:13 +00:00

7.8 KiB

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