Initial project setup: monorepo structure and documentation
This commit is contained in:
229
docs/CONCEPT.md
Normal file
229
docs/CONCEPT.md
Normal file
@@ -0,0 +1,229 @@
|
||||
# GridPilot Concept
|
||||
|
||||
## Problem Statement
|
||||
|
||||
iRacing league management today is fragmented and manual:
|
||||
|
||||
- **Communication Chaos**: League organizers juggle Discord channels, Google Sheets, and manual messaging to coordinate everything
|
||||
- **No Visibility**: Leagues operate in isolation without a central platform for discovery or branding
|
||||
- **Manual Burden**: Admins spend hours manually entering race results, managing registrations, and creating sessions in iRacing
|
||||
- **Team Racing Limitations**: No native support for team-based racing with parallel scoring (one driver per car slot, but team accumulates points)
|
||||
- **Session Creation Pain**: Creating race sessions in iRacing requires tedious browser navigation and form filling
|
||||
- **Migration Challenges**: Existing leagues can't easily migrate historical data or preserve their identity
|
||||
|
||||
Based on feedback from Reddit and Discord communities, league organizers are overwhelmed by administrative tasks when they'd rather focus on building community and running great racing events.
|
||||
|
||||
## Target Users
|
||||
|
||||
### League Organizers & Admins
|
||||
**What they need:**
|
||||
- Automated race result processing
|
||||
- Easy session creation without manual browser work
|
||||
- Tools to manage seasons, sign-ups, and standings
|
||||
- Professional branding and identity for their league
|
||||
- Custom domains to strengthen league identity
|
||||
- Migration support to bring existing league history
|
||||
|
||||
### Team Captains
|
||||
**What they need:**
|
||||
- Create and manage racing teams
|
||||
- Register teams for league seasons
|
||||
- Track team standings alongside driver standings
|
||||
- Coordinate with team drivers
|
||||
- View team performance history
|
||||
|
||||
### Solo Drivers
|
||||
**What they need:**
|
||||
- Browse and discover active leagues
|
||||
- Easy registration and sign-up flows
|
||||
- Personal statistics and race history
|
||||
- Track standings and points
|
||||
- Connect with the racing community
|
||||
|
||||
## Core Features
|
||||
|
||||
### For Solo Drivers
|
||||
|
||||
**League Discovery**
|
||||
- Browse active leagues across different series and skill levels
|
||||
- Filter by time zones, competitiveness, and racing format
|
||||
- Join leagues with simple registration flows
|
||||
|
||||
**Personal Racing Stats**
|
||||
- Automatic race result tracking from iRacing
|
||||
- Historical performance data
|
||||
- Personal standings in each league
|
||||
- Progress tracking across seasons
|
||||
|
||||
### For Teams
|
||||
|
||||
**Team Management**
|
||||
- Create and name racing teams
|
||||
- Invite and manage team drivers
|
||||
- Register teams for league seasons
|
||||
|
||||
**Parallel Racing Format**
|
||||
- One driver per car slot in each race
|
||||
- Team points accumulate from all drivers' results
|
||||
- Both team standings and individual driver standings
|
||||
- Flexibility for different drivers each race
|
||||
|
||||
**Team Identity**
|
||||
- Team branding and profiles
|
||||
- Historical team performance tracking
|
||||
- Team communication tools
|
||||
|
||||
### For League Organizers
|
||||
|
||||
**League Identity & Branding**
|
||||
- Professional league pages with custom branding
|
||||
- Custom domain support (e.g., your-league.racing)
|
||||
- League logos, colors, and identity
|
||||
- Public-facing presence for member recruitment
|
||||
|
||||
**Race Management**
|
||||
- Automated result importing from iRacing
|
||||
- No manual CSV uploads or data entry
|
||||
- Session result processing tied to league structure
|
||||
- Point calculations handled automatically
|
||||
|
||||
**Season Administration**
|
||||
- Create and manage racing seasons
|
||||
- Define scoring rules and formats
|
||||
- Handle sign-ups and registrations
|
||||
- Configure team vs solo racing formats
|
||||
|
||||
**Authentication & Security**
|
||||
- iRacing OAuth integration
|
||||
- Verify driver identities automatically
|
||||
- Secure access control for league admin functions
|
||||
- No separate account creation needed
|
||||
|
||||
### Migration Support
|
||||
|
||||
**For Existing Leagues**
|
||||
- Import historical season data
|
||||
- Preserve league identity and history
|
||||
- Maintain continuity for established communities
|
||||
- Smooth transition without losing context
|
||||
|
||||
## User Journeys
|
||||
|
||||
### Admin Creating a League
|
||||
|
||||
1. Sign in with iRacing credentials
|
||||
2. Create new league with name and branding
|
||||
3. Choose racing series and car/track combinations
|
||||
4. Configure season format (team vs solo, point system)
|
||||
5. Set up custom domain (optional)
|
||||
6. Open registration for drivers/teams
|
||||
7. Publish league page for discovery
|
||||
|
||||
### Team Registering for a Season
|
||||
|
||||
1. Team captain browses available leagues
|
||||
2. Reviews league format and schedule
|
||||
3. Registers team for upcoming season
|
||||
4. Invites or confirms team drivers
|
||||
5. Receives confirmation and season details
|
||||
6. Team appears in league roster
|
||||
|
||||
### Driver Viewing Standings
|
||||
|
||||
1. Driver logs into GridPilot
|
||||
2. Navigates to their league dashboard
|
||||
3. Views current season standings (team and driver)
|
||||
4. Reviews recent race results
|
||||
5. Checks upcoming race schedule
|
||||
6. Accesses historical performance data
|
||||
|
||||
### Organizer Managing Race Day
|
||||
|
||||
1. Admin creates race session through GridPilot
|
||||
2. Session automatically appears in iRacing
|
||||
3. Drivers join and race in iRacing
|
||||
4. Race completes in iRacing
|
||||
5. GridPilot automatically imports results
|
||||
6. Points calculated and standings updated
|
||||
7. Admin reviews and publishes results
|
||||
8. Drivers see updated standings immediately
|
||||
|
||||
## Automation Vision
|
||||
|
||||
### Why Browser Automation?
|
||||
|
||||
iRacing doesn't provide public APIs for session creation or comprehensive result data. League admins currently face:
|
||||
- Repetitive browser navigation to create each race session
|
||||
- Manual form filling for every session detail
|
||||
- Time-consuming workflows that scale poorly with league size
|
||||
- Error-prone manual processes
|
||||
|
||||
### What Automation Solves
|
||||
|
||||
**Session Creation Pain**
|
||||
- Eliminate manual browser work
|
||||
- Create sessions from GridPilot with one click
|
||||
- Batch session creation for full seasons
|
||||
- Consistent configuration without human error
|
||||
|
||||
**Result Processing**
|
||||
- Automatic result imports from iRacing
|
||||
- No manual CSV downloads or uploads
|
||||
- Real-time standings updates
|
||||
- Accurate point calculations
|
||||
|
||||
### Assistant-Style Approach
|
||||
|
||||
GridPilot acts as an admin assistant, not a bot:
|
||||
- Automation runs on admin's behalf with their authorization
|
||||
- Clear opt-in for automation features
|
||||
- Admin maintains full control and visibility
|
||||
- Automation handles tedious tasks, not gameplay
|
||||
|
||||
### Important Boundary
|
||||
|
||||
**We automate admin tasks, not gameplay.**
|
||||
|
||||
GridPilot automates league management workflows - creating sessions, processing results, managing registrations. We never touch actual racing gameplay, driver behavior, or in-race activities. This is administrative automation to free organizers from manual work.
|
||||
|
||||
## Future Vision
|
||||
|
||||
### Monetization Approach
|
||||
|
||||
GridPilot will introduce optional monetization features after the core platform is stable:
|
||||
|
||||
**League Operation Fees**
|
||||
- Organizers can charge season entry fees
|
||||
- Both one-time and per-race payment options
|
||||
- Revenue split between league and GridPilot platform
|
||||
- Support for league sustainability and prizes
|
||||
|
||||
**Platform Position**
|
||||
- GridPilot takes a percentage of collected fees
|
||||
- No fees for free leagues
|
||||
- Transparent pricing structure
|
||||
- Revenue supports platform development and hosting
|
||||
|
||||
### When Monetization Arrives
|
||||
|
||||
Monetization features will be added only after:
|
||||
- Core functionality is proven stable
|
||||
- User base is established and growing
|
||||
- League organizers are successfully using the platform
|
||||
- Feedback confirms value justifies pricing
|
||||
|
||||
The focus now is delivering a great product that solves real problems. Monetization comes later when the platform has earned it.
|
||||
|
||||
### Potential Expansion
|
||||
|
||||
Beyond iRacing, GridPilot's approach could extend to:
|
||||
- Other sim racing platforms
|
||||
- Different racing series and formats
|
||||
- Broader motorsport league management
|
||||
- Cross-platform racing communities
|
||||
|
||||
But first: nail the iRacing league management experience.
|
||||
|
||||
---
|
||||
|
||||
GridPilot exists to make league racing accessible and professional for organizers of all sizes, eliminating manual work so communities can focus on what matters: great racing and strong communities.
|
||||
Reference in New Issue
Block a user