wip
This commit is contained in:
236
docs/concept/ADMINS.md
Normal file
236
docs/concept/ADMINS.md
Normal file
@@ -0,0 +1,236 @@
|
||||
# GridPilot for Admins
|
||||
*Professional tools that eliminate the chaos of running an iRacing league — without changing how your community works.*
|
||||
|
||||
---
|
||||
|
||||
## 1. Why Admins Need GridPilot
|
||||
|
||||
Running a league today means juggling:
|
||||
- Discord threads
|
||||
- Google Sheets
|
||||
- CSVs
|
||||
- DMs
|
||||
- PDFs
|
||||
- manual points
|
||||
- manual sign-ups
|
||||
- manual session creation
|
||||
- messy protest handling
|
||||
|
||||
Meanwhile, admins just want to:
|
||||
- run good races
|
||||
- keep drivers happy
|
||||
- keep things fair
|
||||
- and not drown in repetitive work
|
||||
|
||||
GridPilot gives admins the structure and tools iRacing never provided.
|
||||
|
||||
---
|
||||
|
||||
## 2. League Identity & Presentation
|
||||
|
||||
Admins get a clean, modern league homepage — instantly.
|
||||
|
||||
### Includes:
|
||||
- league logo + colors
|
||||
- season schedule
|
||||
- standings (driver + team)
|
||||
- team list
|
||||
- driver roster
|
||||
- results archive
|
||||
- links to Discord, YouTube, Twitch
|
||||
|
||||
### Optional:
|
||||
- custom subdomain (e.g. *yourleague.racing*)
|
||||
|
||||
This makes small leagues feel **professional** without any technical effort.
|
||||
|
||||
---
|
||||
|
||||
## 3. Season Management
|
||||
|
||||
A complete toolkit to organize seasons without spreadsheets.
|
||||
|
||||
### Admins can:
|
||||
- define the league format
|
||||
- create calendars (tracks, car classes)
|
||||
- configure points systems
|
||||
- define drop weeks
|
||||
- choose team vs solo format
|
||||
- set rules & info pages
|
||||
- open/close registration
|
||||
- manage rosters
|
||||
|
||||
Everything stays in one clean UI.
|
||||
|
||||
---
|
||||
|
||||
## 4. Driver & Team Sign-ups
|
||||
|
||||
Forget Discord forms and DMs.
|
||||
|
||||
### GridPilot handles:
|
||||
- driver sign-ups
|
||||
- team registrations
|
||||
- automatic roster generation
|
||||
- driver availability status
|
||||
- team composition
|
||||
- waitlist management
|
||||
|
||||
Admins no longer need to chase people for info.
|
||||
|
||||
---
|
||||
|
||||
## 5. Automatic Results Import
|
||||
|
||||
One of the biggest pains in league racing — **gone**.
|
||||
|
||||
GridPilot automatically imports results from iRacing:
|
||||
|
||||
### Extracts:
|
||||
- finishing positions
|
||||
- incident count
|
||||
- best laps
|
||||
- lap-by-lap data
|
||||
- gained/lost positions
|
||||
- SoF (if available)
|
||||
|
||||
### Updates:
|
||||
- driver standings
|
||||
- team standings
|
||||
- season points
|
||||
- drop-week applied points
|
||||
|
||||
Admins don’t upload CSVs or calculate anything manually again.
|
||||
|
||||
---
|
||||
|
||||
## 6. Complaints & Penalties
|
||||
|
||||
A structured workflow to replace protest chaos.
|
||||
|
||||
### Drivers can submit complaints:
|
||||
- select the race
|
||||
- select involved drivers
|
||||
- add timestamps
|
||||
- add explanations
|
||||
- optionally add short clips
|
||||
|
||||
### Admins get:
|
||||
- a review dashboard
|
||||
- quick decision tools:
|
||||
- no action
|
||||
- warning
|
||||
- time penalty
|
||||
- points deduction
|
||||
- DQ for the race
|
||||
|
||||
### GridPilot updates everything automatically:
|
||||
- recalculates standings
|
||||
- adjusts team points
|
||||
- logs penalties visibly
|
||||
|
||||
Admins stay in full control — GridPilot just removes the manual work.
|
||||
|
||||
---
|
||||
|
||||
## 7. Optional: Session Creation QoL
|
||||
|
||||
Automation is *optional* — but powerful for admins who want it.
|
||||
|
||||
### One-click creation of:
|
||||
- practice sessions
|
||||
- race sessions
|
||||
- full season batches
|
||||
|
||||
### Benefits:
|
||||
- no repetitive form filling
|
||||
- consistent settings
|
||||
- saves hours every season
|
||||
- always under admin control
|
||||
|
||||
GridPilot acts as an **assistant**, not a bot.
|
||||
Admins keep full responsibility.
|
||||
|
||||
---
|
||||
|
||||
## 8. Roster & Driver Management
|
||||
|
||||
Admins can:
|
||||
- view complete roster
|
||||
- assign drivers to teams
|
||||
- manage substitutes
|
||||
- approve/reject sign-ups
|
||||
- track attendance
|
||||
- see driver stats for performance evaluation
|
||||
|
||||
Helps maintain a healthy community and balanced competition.
|
||||
|
||||
---
|
||||
|
||||
## 9. Transparency & Trust
|
||||
|
||||
GridPilot creates structure admins normally have to enforce manually:
|
||||
|
||||
- clear point systems
|
||||
- visible penalties
|
||||
- visible rules
|
||||
- logged decisions
|
||||
- consistent standings
|
||||
- predictable schedules
|
||||
- no lost messages or hidden complaints
|
||||
|
||||
This removes accusations of favoritism or unfairness.
|
||||
|
||||
Admins gain **presence**, not stress.
|
||||
|
||||
---
|
||||
|
||||
## 10. Zero Technical Overhead
|
||||
|
||||
No coding.
|
||||
No servers.
|
||||
No spreadsheets.
|
||||
No HTML.
|
||||
No spreadsheets.
|
||||
No setup.
|
||||
|
||||
Admins simply:
|
||||
1. create a league
|
||||
2. configure the season
|
||||
3. share the league link
|
||||
4. run the races
|
||||
5. GridPilot handles the rest
|
||||
|
||||
---
|
||||
|
||||
## 11. What GridPilot Is *Not* for Admins
|
||||
|
||||
- not a replacement for your Discord community
|
||||
- not a stewarding system (no live stewarding)
|
||||
- not intrusive automation
|
||||
- not a tool that changes racing behavior
|
||||
- not a way to manipulate results
|
||||
|
||||
We respect the league → we just make it manageable.
|
||||
|
||||
---
|
||||
|
||||
## 12. Summary
|
||||
|
||||
GridPilot gives admins:
|
||||
|
||||
- **professional presentation**
|
||||
- **zero manual points work**
|
||||
- **automatic standings**
|
||||
- **clean sign-ups**
|
||||
- **structured complaints**
|
||||
- **quick penalties**
|
||||
- **optional session automation**
|
||||
- **roster tools**
|
||||
- **driver & team identity**
|
||||
- **season organization**
|
||||
|
||||
It lets admins focus on racing, not paperwork.
|
||||
|
||||
GridPilot =
|
||||
**less chaos, more competition.**
|
||||
283
docs/concept/COMPETITION.md
Normal file
283
docs/concept/COMPETITION.md
Normal file
@@ -0,0 +1,283 @@
|
||||
# GridPilot Competition & Unique Selling Points
|
||||
*Why GridPilot matters — and why it fills the biggest gap in iRacing league racing.*
|
||||
|
||||
---
|
||||
|
||||
# 1. What iRacing Leagues Are Missing
|
||||
|
||||
iRacing does many things extremely well:
|
||||
- great cars
|
||||
- great physics
|
||||
- huge official participation
|
||||
- excellent netcode
|
||||
|
||||
But iRacing does **not** provide:
|
||||
- long-term driver identity
|
||||
- league structure
|
||||
- team championships
|
||||
- personalized stats
|
||||
- season history
|
||||
- league discovery
|
||||
- automated standings
|
||||
- protest/penalty workflows
|
||||
- a centralized competition ecosystem
|
||||
|
||||
Everything around league racing is **outsourced to Discord chaos**.
|
||||
|
||||
GridPilot fixes the layer iRacing ignores.
|
||||
|
||||
---
|
||||
|
||||
# 2. The Competition Layer iRacing Never Built
|
||||
|
||||
GridPilot becomes the competition universe for league racing:
|
||||
|
||||
### **Drivers get**
|
||||
- a racing identity
|
||||
- a real profile that spans leagues
|
||||
- season standings that matter
|
||||
- team championships
|
||||
- points that persist
|
||||
- stats that make progress visible
|
||||
|
||||
### **Admins get**
|
||||
- reliable standings
|
||||
- structured schedules
|
||||
- automated results
|
||||
- clean sign-up flows
|
||||
- real competition formats
|
||||
|
||||
### **Leagues get**
|
||||
- a professional home
|
||||
- discoverability
|
||||
- branding
|
||||
- stable structure
|
||||
|
||||
This is something **no existing tool** provides in a unified way.
|
||||
|
||||
---
|
||||
|
||||
# 3. What Others Do (and Why It’s Not Enough)
|
||||
|
||||
### **SimRacerHub**
|
||||
- ancient UI
|
||||
- manual CSV uploads
|
||||
- no identity
|
||||
- no automation
|
||||
- no team competition
|
||||
- no discovery
|
||||
- no long-term profiles
|
||||
|
||||
### **Discord + Google Sheets**
|
||||
- disorganized
|
||||
- non-scalable
|
||||
- everything is manual
|
||||
- error-prone
|
||||
- no identity
|
||||
- no automation
|
||||
- no trust system
|
||||
- no visibility
|
||||
|
||||
### **iRacing Official Series**
|
||||
- random grids
|
||||
- no personal connection
|
||||
- no ladder
|
||||
- no league-style competition
|
||||
- no teams (beyond 1-car teams)
|
||||
- no season identity
|
||||
|
||||
### **SimGrid (ACC)**
|
||||
- not for iRacing
|
||||
- no automation
|
||||
- not deeply connected to semiprofessional league structures
|
||||
|
||||
### **LFM**
|
||||
- matchmaking, not league management
|
||||
- no season identity
|
||||
- not for iRacing
|
||||
- no team championship
|
||||
- no admin tooling
|
||||
|
||||
**Conclusion:**
|
||||
There is *no* product that unifies the league racing ecosystem for iRacing.
|
||||
|
||||
GridPilot is literally the **first** to do this properly.
|
||||
|
||||
---
|
||||
|
||||
# 4. What GridPilot Does That Nobody Else Can
|
||||
|
||||
## **1. Clean, automatic league infrastructure**
|
||||
- standings
|
||||
- results
|
||||
- rosters
|
||||
- seasons
|
||||
- scoring
|
||||
- team formats
|
||||
|
||||
Nobody else automates this end-to-end.
|
||||
|
||||
---
|
||||
|
||||
## **2. Real Constructors-Style Team Championships**
|
||||
iRacing has:
|
||||
- only one driver per car
|
||||
- no parallel team scoring
|
||||
- no true team competition
|
||||
|
||||
GridPilot:
|
||||
- multiple drivers race for one team
|
||||
- all points count
|
||||
- teams gain prestige across seasons
|
||||
|
||||
This completely changes how league racing feels.
|
||||
|
||||
---
|
||||
|
||||
## **3. Unified Driver Identity Across Leagues**
|
||||
Drivers currently:
|
||||
- disappear between seasons
|
||||
- have no home
|
||||
- no stats
|
||||
- no history
|
||||
|
||||
GridPilot gives them:
|
||||
- permanent stats
|
||||
- history
|
||||
- standings
|
||||
- cross-league progression
|
||||
- consistent profile
|
||||
|
||||
This becomes the **center of their virtual racing career**.
|
||||
|
||||
---
|
||||
|
||||
## **4. Structured Complaints & Penalties**
|
||||
Other platforms:
|
||||
- use DMs
|
||||
- use Discord
|
||||
- lose messages
|
||||
- inconsistent punishment
|
||||
- emotional chaos
|
||||
|
||||
GridPilot:
|
||||
- structured forms
|
||||
- timestamps
|
||||
- clear penalty tools
|
||||
- automatic standings update
|
||||
|
||||
This makes leagues feel *fair* — a huge USP.
|
||||
|
||||
---
|
||||
|
||||
## **5. Season creation without busywork**
|
||||
Admins normally spend hours on:
|
||||
- session creation
|
||||
- spreadsheets
|
||||
- messaging
|
||||
|
||||
GridPilot:
|
||||
- automates results
|
||||
- simplifies sessions
|
||||
- cleans up registration
|
||||
- centralizes everything
|
||||
|
||||
It’s the **ultimate league admin QoL platform**.
|
||||
|
||||
---
|
||||
|
||||
# 5. Why Drivers Should Sign Up
|
||||
|
||||
**Because racing finally means something.**
|
||||
|
||||
GridPilot gives drivers:
|
||||
- season standings
|
||||
- long-term stats
|
||||
- team championships
|
||||
- identity
|
||||
- clarity
|
||||
- professionalism
|
||||
- an organized home for their racing
|
||||
|
||||
No more guessing, no more chaos — a place to grow and compete.
|
||||
|
||||
---
|
||||
|
||||
# 6. Why Admins Should Use GridPilot
|
||||
|
||||
**Because running a league shouldn’t be a full-time job.**
|
||||
|
||||
GridPilot:
|
||||
- removes the boring work
|
||||
- automates the repetitive tasks
|
||||
- enforces structure
|
||||
- keeps standings clean
|
||||
- removes spreadsheet pain
|
||||
- prevents drama
|
||||
- makes their league look professional
|
||||
|
||||
Admins feel supported instead of overwhelmed.
|
||||
|
||||
---
|
||||
|
||||
# 7. Why GridPilot Will Become THE Platform
|
||||
|
||||
GridPilot combines:
|
||||
|
||||
- **admin tools**
|
||||
- **driver identity**
|
||||
- **team championships**
|
||||
- **competition structure**
|
||||
- **automated results**
|
||||
- **clear season organization**
|
||||
- **discovery & visibility**
|
||||
|
||||
This creates a **complete ecosystem**, not just a tool.
|
||||
|
||||
When multiple leagues use it → drivers collect universal stats.
|
||||
When drivers collect stats → teams form around them.
|
||||
When teams form → prestige and competition grow.
|
||||
When prestige grows → more leagues join.
|
||||
|
||||
This creates a **network effect** no other platform has.
|
||||
|
||||
---
|
||||
|
||||
# 8. Simple Value Summary (ideal for landing page)
|
||||
|
||||
### For Drivers:
|
||||
- real competition
|
||||
- season identity
|
||||
- long-term stats
|
||||
- team championships
|
||||
- one place for all leagues
|
||||
|
||||
### For Admins:
|
||||
- less work
|
||||
- no spreadsheets
|
||||
- clean sign-ups
|
||||
- automatic standings
|
||||
- proper penalty tools
|
||||
- professional league branding
|
||||
|
||||
### For the Community:
|
||||
- a central home
|
||||
- simple discovery
|
||||
- fair competition
|
||||
- consistent rules
|
||||
- real history
|
||||
|
||||
---
|
||||
|
||||
# 9. Why You Should Sign Up Early
|
||||
|
||||
Because:
|
||||
- early leagues define the meta
|
||||
- early drivers get full season history
|
||||
- early admins help shape the platform
|
||||
- you get modern tools for free during beta
|
||||
- you’re part of the first proper iRacing league ecosystem
|
||||
- you want league racing with meaning, structure, and clarity
|
||||
|
||||
GridPilot is the **competition layer iRacing never built —
|
||||
and the league ecosystem drivers always wanted.**
|
||||
232
docs/concept/CONCEPT.md
Normal file
232
docs/concept/CONCEPT.md
Normal file
@@ -0,0 +1,232 @@
|
||||
# GridPilot — The Competition Platform for iRacing Leagues
|
||||
*A modern, lightweight platform that gives iRacing league racing structure, identity, and long-term meaning — without taking control away from communities.*
|
||||
|
||||
---
|
||||
|
||||
# 1. What GridPilot Solves
|
||||
|
||||
iRacing’s strength is racing quality, not league infrastructure.
|
||||
Today, league racing suffers from:
|
||||
|
||||
- scattered tools (Discord, Sheets, Forms, DMs)
|
||||
- zero unified identity for leagues
|
||||
- heavy admin workload for every race
|
||||
- no automatic standings or result sync
|
||||
- no long-term driver identity or career stats
|
||||
- no proper team-based competition
|
||||
- unstructured protest handling (DMs, screenshots, chaos)
|
||||
|
||||
GridPilot becomes the **competition layer** above iRacing.
|
||||
We don’t change racing — we fix everything around it.
|
||||
|
||||
---
|
||||
|
||||
# 2. Who GridPilot Is For
|
||||
|
||||
## League Admins
|
||||
Need:
|
||||
- easy season setup
|
||||
- automatic result handling
|
||||
- clean standings
|
||||
- a structured complaints/penalty workflow
|
||||
- predictable points systems
|
||||
- modern league presentation
|
||||
- simple driver/team signups
|
||||
- optional session-creation QoL automation
|
||||
|
||||
## Drivers
|
||||
Need:
|
||||
- easy league discovery
|
||||
- simple registration
|
||||
- clean standings
|
||||
- reliable schedule
|
||||
- personal stats and history
|
||||
- long-term progression
|
||||
- team + individual competition
|
||||
- structured way to file complaints
|
||||
|
||||
Admin + Driver = **GridPilot’s only focus for MVP**.
|
||||
|
||||
---
|
||||
|
||||
# 3. Core Features (MVP)
|
||||
|
||||
## 3.1 League Identity
|
||||
- clean public league page
|
||||
- schedule, standings, roster, rules
|
||||
- league branding (logo, colors)
|
||||
- optional custom domain
|
||||
- links to Discord / YouTube / Twitch
|
||||
|
||||
## 3.2 Season Management
|
||||
- full calendar for each season
|
||||
- point system presets
|
||||
- drop weeks
|
||||
- team or solo mode
|
||||
- automatic standings
|
||||
|
||||
## 3.3 Driver & Team System
|
||||
### Drivers:
|
||||
- league join flow
|
||||
- personal stats (per race + lifetime)
|
||||
- progression + history
|
||||
- cross-league identity (v1 basic)
|
||||
|
||||
### Teams:
|
||||
- create/manage teams
|
||||
- team roster management
|
||||
- real “Constructors Championship” parallel scoring
|
||||
- team standings + history
|
||||
|
||||
(This is a unique selling point: **real team racing in iRacing leagues**.)
|
||||
|
||||
---
|
||||
|
||||
# 4. Complaints & Penalties (Essential)
|
||||
|
||||
A structured system to replace Discord DMs and random drama.
|
||||
|
||||
## 4.1 Driver Complaints
|
||||
Drivers can file a complaint with:
|
||||
- race
|
||||
- involved drivers
|
||||
- timestamp(s)
|
||||
- description
|
||||
- optional replay clip / link
|
||||
|
||||
Keeps everything organized and searchable.
|
||||
|
||||
## 4.2 Admin Penalty Tools
|
||||
Admins get a review panel:
|
||||
- complaint list
|
||||
- timestamps + notes
|
||||
- direct links to replays
|
||||
- quick actions:
|
||||
- no action
|
||||
- warning
|
||||
- time penalty
|
||||
- points deduction
|
||||
- DQ for race
|
||||
|
||||
## 4.3 Automatic Standings Update
|
||||
When a penalty is assigned:
|
||||
- driver points update
|
||||
- team points update
|
||||
- classification updates with time penalties
|
||||
- everything logged transparently
|
||||
|
||||
Admins stay in control.
|
||||
Drivers understand the decision.
|
||||
Chaos disappears.
|
||||
|
||||
---
|
||||
|
||||
# 5. Result Automation (Essential QoL)
|
||||
|
||||
- automatically sync race results from iRacing
|
||||
- parse positions, laps, incidents, fastest lap
|
||||
- update standings instantly
|
||||
- eliminate manual CSV uploads or spreadsheets
|
||||
|
||||
This is **core** for both admins and drivers
|
||||
(but not the “main feature” — just feels like magic).
|
||||
|
||||
---
|
||||
|
||||
# 6. Optional: Session Creation QoL (Not required)
|
||||
|
||||
GridPilot can assist admins:
|
||||
- create sessions via browser automation
|
||||
- batch-create entire season
|
||||
- consistent settings without errors
|
||||
|
||||
Important:
|
||||
**Automation is a helper, not the product.**
|
||||
We never touch gameplay.
|
||||
|
||||
---
|
||||
|
||||
# 7. Competition Layer
|
||||
|
||||
This is what makes GridPilot more than “tools”.
|
||||
|
||||
## 7.1 Individual Progression
|
||||
Drivers earn:
|
||||
- points
|
||||
- standings
|
||||
- history
|
||||
- personal stats
|
||||
- performance trends
|
||||
|
||||
Racing finally has **long-term meaning**.
|
||||
|
||||
## 7.2 Team Competition
|
||||
Teams accumulate points across races and seasons.
|
||||
Drivers contribute to team success even when racing individually.
|
||||
|
||||
The result:
|
||||
**iRacing Ligen finally feel like real motorsport championships.**
|
||||
|
||||
---
|
||||
|
||||
# 8. Safety, Security & Trust
|
||||
- zero-knowledge login
|
||||
- we never see or store passwords
|
||||
- browser window visible for login
|
||||
- automation always runs *on the admin’s machine*
|
||||
- no client modification (unlike iRefined)
|
||||
|
||||
Trust and legality are fundamental.
|
||||
|
||||
---
|
||||
|
||||
# 9. MVP Philosophy
|
||||
|
||||
### What we include:
|
||||
- Admin QoL tools
|
||||
- Driver identity
|
||||
- Team competition
|
||||
- Standings + automation
|
||||
- Complaints + penalties
|
||||
- League identity + presentation
|
||||
- Session creation helper (optional)
|
||||
|
||||
### What we leave out for now:
|
||||
- stewards marketplace
|
||||
- streaming tools
|
||||
- monetization
|
||||
- complex global ladder
|
||||
- rating systems
|
||||
- cross-sim functionality
|
||||
- esports organization
|
||||
|
||||
GridPilot starts **simple and solid**.
|
||||
|
||||
---
|
||||
|
||||
# 10. Long-Term Vision (kept small but real)
|
||||
|
||||
GridPilot becomes the central place where:
|
||||
- drivers build a career
|
||||
- teams compete across seasons
|
||||
- leagues run without chaos
|
||||
- complaints/penalties stay structured
|
||||
- standings stay consistent
|
||||
- automation reduces work
|
||||
- identity and progression matter
|
||||
|
||||
This is the part that makes us **THE platform**,
|
||||
but we don’t overpromise it on day one.
|
||||
|
||||
---
|
||||
|
||||
# Summary
|
||||
|
||||
**GridPilot simplifies league management —
|
||||
and elevates it from scattered spreadsheets
|
||||
to a modern competition platform.**
|
||||
|
||||
Admins get less work.
|
||||
Drivers get more meaning.
|
||||
Teams get real championships.
|
||||
Everyone gets structure instead of chaos.
|
||||
236
docs/concept/DRIVERS.md
Normal file
236
docs/concept/DRIVERS.md
Normal file
@@ -0,0 +1,236 @@
|
||||
# GridPilot for Drivers
|
||||
*A clean competition platform that gives iRacing drivers structure, clarity, and long-term identity — without the chaos of Discord, spreadsheets, or scattered tools.*
|
||||
|
||||
---
|
||||
|
||||
## 1. Why GridPilot Matters for Drivers
|
||||
|
||||
iRacing’s official races are fun, but they’re anonymous.
|
||||
Community leagues are exciting, but they’re chaotic and inconsistent.
|
||||
|
||||
Drivers want:
|
||||
- clear schedules
|
||||
- consistent standings
|
||||
- honest competition
|
||||
- long-term stats
|
||||
- team identity
|
||||
- simple sign-ups
|
||||
- structured complaints
|
||||
- a place to follow their own racing journey
|
||||
|
||||
GridPilot gives drivers the **missing competitive layer** on top of iRacing leagues.
|
||||
|
||||
---
|
||||
|
||||
## 2. Your Driver Profile
|
||||
|
||||
Every GridPilot driver gets a modern profile that shows who they are across leagues.
|
||||
|
||||
### **Profile includes**
|
||||
- name, number, country
|
||||
- leagues you’re currently racing in
|
||||
- season standings (driver + team)
|
||||
- race history
|
||||
- long-term point totals
|
||||
- finishing positions
|
||||
- incident trends
|
||||
- performance stats (e.g., avg finish, win rate)
|
||||
- optional team membership
|
||||
|
||||
### **Why it’s different**
|
||||
For the first time, your results aren’t stuck in individual Discords or spreadsheets.
|
||||
|
||||
Your **racing identity lives in one place**.
|
||||
|
||||
---
|
||||
|
||||
## 3. League Discovery — Find Where You Belong
|
||||
|
||||
GridPilot makes it easy to find leagues that fit your schedule, skill level, and car preferences.
|
||||
|
||||
### **Search filters**
|
||||
- car class
|
||||
- time of day
|
||||
- weekday/weekend
|
||||
- competition level
|
||||
- league size
|
||||
- region
|
||||
|
||||
### **League pages show**
|
||||
- schedule
|
||||
- standings
|
||||
- rules & format
|
||||
- car/track list
|
||||
- roster
|
||||
- sign-ups
|
||||
|
||||
No more scrolling through dead Discord ads or random forum posts.
|
||||
You actually *see* what you’re joining.
|
||||
|
||||
---
|
||||
|
||||
## 4. Joining a League — Simple & Fast
|
||||
|
||||
A driver-first flow:
|
||||
|
||||
1. Pick a league
|
||||
2. Review schedule & format
|
||||
3. Join solo or select a team
|
||||
4. See upcoming races instantly
|
||||
5. Start collecting points
|
||||
|
||||
No forms.
|
||||
No spreadsheets.
|
||||
No “talk to the admin.”
|
||||
Just click and race.
|
||||
|
||||
---
|
||||
|
||||
## 5. Race Day Clarity
|
||||
|
||||
GridPilot gives drivers everything they need to show up ready:
|
||||
|
||||
- upcoming race timer
|
||||
- track, car, session settings
|
||||
- lobby info (password, link, format)
|
||||
- previous race results
|
||||
- standings impact preview
|
||||
- weather / dynamic info (if available)
|
||||
|
||||
Drivers stop asking the admin:
|
||||
> “Hey, what’s the track this week?”
|
||||
|
||||
---
|
||||
|
||||
## 6. Automatic Race Results
|
||||
|
||||
After the race, GridPilot automatically pulls iRacing’s results:
|
||||
|
||||
### **You get**
|
||||
- final classification
|
||||
- gained/lost positions
|
||||
- incidents
|
||||
- fastest laps
|
||||
- points earned
|
||||
- drop-week changes
|
||||
|
||||
No more:
|
||||
- waiting for an admin
|
||||
- refreshing Discord
|
||||
- reading screenshots
|
||||
- guessing standings
|
||||
|
||||
Standings update themselves the moment results hit iRacing.
|
||||
|
||||
---
|
||||
|
||||
## 7. Long-Term Progression
|
||||
|
||||
Drivers always wanted more than “just racing.”
|
||||
GridPilot gives:
|
||||
|
||||
### **Season history**
|
||||
- every race
|
||||
- every point
|
||||
- every position change
|
||||
|
||||
### **Career overview**
|
||||
- races completed
|
||||
- podiums
|
||||
- wins
|
||||
- average finish
|
||||
- trendline performance
|
||||
|
||||
### **Multi-league identity**
|
||||
Your GridPilot profile grows as you race in multiple leagues and seasons.
|
||||
|
||||
This makes league racing finally feel **meaningful**.
|
||||
|
||||
---
|
||||
|
||||
## 8. Team Racing — Real Constructors-Style Competition
|
||||
|
||||
GridPilot supports **real team racing**, not the one-driver-per-team limitation of most leagues.
|
||||
|
||||
### **How it works**
|
||||
- each team registers multiple drivers
|
||||
- drivers race in parallel
|
||||
- all points contribute to the team championship
|
||||
- teams gain prestige over multiple seasons
|
||||
|
||||
### **For drivers**
|
||||
You can:
|
||||
- join a team
|
||||
- help your team climb the standings
|
||||
- show your contribution in your profile
|
||||
- build real rivalries over time
|
||||
|
||||
This creates a feeling of *real motorsport* instead of isolated races.
|
||||
|
||||
---
|
||||
|
||||
## 9. Complaints & Penalties Made Simple
|
||||
|
||||
Drivers finally get a **structured** way to submit complaints.
|
||||
|
||||
### **Submit complaint**
|
||||
- pick the race
|
||||
- pick involved drivers
|
||||
- add timestamps
|
||||
- add description
|
||||
- optional replay clip / YouTube link
|
||||
|
||||
### **Admin sees a simple review panel.**
|
||||
No lost DMs, no arguments across Discord, no chaos.
|
||||
|
||||
### **Standings update automatically after penalties.**
|
||||
No manual math.
|
||||
No spreadsheet edits.
|
||||
|
||||
Drivers get transparency.
|
||||
Admins get speed.
|
||||
|
||||
---
|
||||
|
||||
## 10. The Experience for Drivers
|
||||
|
||||
GridPilot gives drivers:
|
||||
|
||||
- fewer distractions
|
||||
- less confusion
|
||||
- no spreadsheet hell
|
||||
- proper standings
|
||||
- identity that grows
|
||||
- team fantasy + real competition
|
||||
- simple joining
|
||||
- long-term motivation
|
||||
- reliable information
|
||||
- structured dispute resolution
|
||||
|
||||
League racing finally feels like a **proper season**, not a patchwork process.
|
||||
|
||||
---
|
||||
|
||||
## 11. What GridPilot *does not* do (important)
|
||||
|
||||
- doesn’t manage your Discord social life
|
||||
- doesn’t auto-join races for you
|
||||
- doesn’t replace iRacing
|
||||
- doesn’t enforce drama rules
|
||||
- doesn’t simulate or interfere with gameplay
|
||||
|
||||
GridPilot strengthens what drivers already enjoy —
|
||||
and eliminates everything that frustrates them.
|
||||
|
||||
---
|
||||
|
||||
# Summary
|
||||
|
||||
GridPilot for Drivers is about three things:
|
||||
|
||||
1. **Clarity** — know where, when, and what you’re racing.
|
||||
2. **Progression** — see your improvement and career.
|
||||
3. **Competition** — battle in leagues and teams that feel like real motorsport.
|
||||
|
||||
The platform gives drivers exactly what they’re missing today:
|
||||
a central, modern home for their league racing identity.
|
||||
192
docs/concept/LANDING.md
Normal file
192
docs/concept/LANDING.md
Normal file
@@ -0,0 +1,192 @@
|
||||
# GridPilot — Where iRacing League Racing Finally Comes Together
|
||||
*A modern platform that makes league racing clearer, cleaner, and actually fun — for drivers, admins, and teams.*
|
||||
|
||||
---
|
||||
|
||||
## League racing deserves better.
|
||||
|
||||
Right now, running or joining a league means:
|
||||
- Discord chaos
|
||||
- scattered spreadsheets
|
||||
- unclear standings
|
||||
- manual data entry
|
||||
- lost messages
|
||||
- confusing sign-ups
|
||||
- penalties handled in DMs
|
||||
- no global identity
|
||||
- no long-term stats
|
||||
|
||||
The racing in iRacing is amazing.
|
||||
**Everything around it shouldn't be this messy.**
|
||||
|
||||
GridPilot fixes the layer iRacing leaves behind.
|
||||
|
||||
---
|
||||
|
||||
# What GridPilot gives you
|
||||
|
||||
## 📅 A real home for your league
|
||||
Every league gets:
|
||||
- a clean schedule
|
||||
- standings
|
||||
- results
|
||||
- driver roster
|
||||
- rules
|
||||
- branding
|
||||
- links (Discord, Twitch, YouTube, etc.)
|
||||
|
||||
No setup.
|
||||
No technical pain.
|
||||
Just a proper league homepage that looks professional.
|
||||
|
||||
---
|
||||
|
||||
## 🏁 Automatic results & standings
|
||||
You race → GridPilot handles the rest.
|
||||
|
||||
We track:
|
||||
- positions
|
||||
- incidents
|
||||
- points
|
||||
- drop weeks
|
||||
- driver stats
|
||||
- team points
|
||||
- performance trends
|
||||
|
||||
Standings update instantly after results hit iRacing.
|
||||
Admins never touch spreadsheets again.
|
||||
|
||||
---
|
||||
|
||||
## 👥 Real team racing — finally done right
|
||||
Not just “tags next to names.”
|
||||
|
||||
GridPilot supports true constructors-style racing:
|
||||
- multiple drivers contribute points
|
||||
- flexible scoring rules
|
||||
- dynamic lineups (different drivers each race)
|
||||
- team standings
|
||||
- season + all-time history
|
||||
- driver contribution breakdown
|
||||
|
||||
League racing finally feels like **real motorsport**.
|
||||
|
||||
---
|
||||
|
||||
## 👤 Driver identity that actually matters
|
||||
Your racing history follows you across leagues and seasons.
|
||||
|
||||
Your driver profile includes:
|
||||
- race results
|
||||
- season standings
|
||||
- incident trends
|
||||
- consistency metrics
|
||||
- points over time
|
||||
- team membership
|
||||
- personal progress
|
||||
|
||||
iRacing gives you physics.
|
||||
**GridPilot gives you a racing career.**
|
||||
|
||||
---
|
||||
|
||||
## ⚖ Clean protests & quick penalties
|
||||
No more chaotic DM chains or missing evidence.
|
||||
|
||||
Drivers can submit structured complaints with:
|
||||
- timestamps
|
||||
- drivers involved
|
||||
- description
|
||||
- optional replay clips
|
||||
|
||||
Admins get:
|
||||
- a proper review panel
|
||||
- quick penalty tools (warning, time penalty, points deduction, DQ)
|
||||
- auto-updated standings
|
||||
|
||||
Fair. Transparent. Zero drama.
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Race management without headaches
|
||||
Admins get:
|
||||
- season builder
|
||||
- roster tools
|
||||
- sign-up flows
|
||||
- scoring presets
|
||||
- automatic result import
|
||||
- penalty system
|
||||
- league branding
|
||||
|
||||
Everything that normally takes hours per week…
|
||||
now takes minutes.
|
||||
|
||||
---
|
||||
|
||||
## 🔧 One-click session creation (Quality-of-Life)
|
||||
Filling out hosted session forms is repetitive as hell.
|
||||
GridPilot can help:
|
||||
|
||||
- generate full season sessions
|
||||
- consistent configuration
|
||||
- no more manual form work
|
||||
- admin stays fully in control
|
||||
|
||||
This is not the product —
|
||||
it's just something that makes life easier.
|
||||
|
||||
---
|
||||
|
||||
# Why people will use GridPilot
|
||||
|
||||
### For drivers:
|
||||
- clearer racing
|
||||
- real identity
|
||||
- competitive meaning
|
||||
- team pride
|
||||
- structured info
|
||||
- proper stats
|
||||
- no spreadsheet guessing
|
||||
|
||||
### For admins:
|
||||
- less work
|
||||
- fewer mistakes
|
||||
- clean presentation
|
||||
- no nightly result updates
|
||||
- no Discord chaos
|
||||
- clear rules & penalties
|
||||
- smooth seasons
|
||||
|
||||
### For teams:
|
||||
- proper constructors championships
|
||||
- recruitment tools
|
||||
- long-term reputation
|
||||
- contribution metrics
|
||||
- cross-season continuity
|
||||
|
||||
---
|
||||
|
||||
# Why this exists (in plain words)
|
||||
|
||||
Because league racing is the best part of iRacing
|
||||
— and the worst-maintained.
|
||||
|
||||
We’re building something practical, modern, and helpful.
|
||||
Not trying to reinvent racing, not trying to replace leagues,
|
||||
just trying to make everything around racing **less painful and more meaningful**.
|
||||
|
||||
---
|
||||
|
||||
# Want early access?
|
||||
|
||||
GridPilot is opening early access to **everyone** who wants smoother, more organized league racing.
|
||||
|
||||
Drop your email if you want:
|
||||
- updates as features go live
|
||||
- a chance to shape the platform
|
||||
- early access once things stabilize
|
||||
- zero spam, zero BS
|
||||
|
||||
[ Email field ] [ Sign Up ]
|
||||
|
||||
Let’s make league racing better — together.
|
||||
250
docs/concept/RACING.md
Normal file
250
docs/concept/RACING.md
Normal file
@@ -0,0 +1,250 @@
|
||||
# GridPilot Race Management
|
||||
*A unified system for running modern iRacing leagues with team formats, automated series structures, and clean penalty handling.*
|
||||
|
||||
---
|
||||
|
||||
# 1. Overview
|
||||
|
||||
GridPilot Race Management defines **how racing works on the platform**,
|
||||
independent of league size or community style.
|
||||
|
||||
It consists of three pillars:
|
||||
|
||||
1. **Team Leagues** — real constructors-style multi-driver competitions
|
||||
2. **Automated Leagues** — structured series (e.g., F1-style) that GridPilot can mirror
|
||||
3. **Penalty & Protest System** — clean dispute resolution without Discord chaos
|
||||
|
||||
GridPilot's goal is to make league racing **consistent, fair, and meaningful**,
|
||||
without forcing admins into complexity or drivers into mandatory social interaction.
|
||||
|
||||
---
|
||||
|
||||
# 2. Team Leagues (Constructors Format)
|
||||
|
||||
Most iRacing leagues treat teams as cosmetic.
|
||||
GridPilot treats them as **primary competition units**, like real motorsport.
|
||||
|
||||
## 2.1 Team Structure
|
||||
|
||||
A team has:
|
||||
- Team profile (logo, colors, description)
|
||||
- Captain / co-captains
|
||||
- Roster of drivers
|
||||
- Recruitment status
|
||||
- Participation history
|
||||
- Team stats + points
|
||||
|
||||
Teams exist platform-wide — not only inside one league.
|
||||
|
||||
## 2.2 Team Participation in a League
|
||||
|
||||
Teams can:
|
||||
- register for seasons
|
||||
- assign drivers to race slots
|
||||
- have different drivers each week
|
||||
- score parallel points from every contributing driver
|
||||
|
||||
## 2.3 Constructors-Style Points
|
||||
|
||||
GridPilot supports multiple team scoring methods:
|
||||
|
||||
- **All Drivers Count** (every finisher scores team points)
|
||||
- **Top X Drivers Count** (top 2, top 3, etc.)
|
||||
- **Weighted Points** (e.g., top driver counts 60%, next counts 40%)
|
||||
- **Custom Rules per League**
|
||||
|
||||
Admins choose their model.
|
||||
GridPilot handles the math, standings, history, and transparency.
|
||||
|
||||
## 2.4 Team Rivalries & Identity
|
||||
|
||||
Built-in:
|
||||
- team standings
|
||||
- driver contribution breakdown
|
||||
- cross-season performance
|
||||
- team “form” (last 5 races)
|
||||
- recruitment visibility
|
||||
|
||||
Team racing becomes **a core part of the platform**, not an afterthought.
|
||||
|
||||
---
|
||||
|
||||
# 3. Automated Leagues (F1-Style Mirror Systems)
|
||||
|
||||
Some admins want complete freedom.
|
||||
Some drivers want structured, official-feeling series.
|
||||
|
||||
GridPilot supports *both* by providing the option for **auto-generated leagues**.
|
||||
|
||||
These are **not forced**; they are templates admins or communities can adopt.
|
||||
|
||||
## 3.1 What Are Automated Leagues?
|
||||
|
||||
An automated league is a **predefined series template** provided by GridPilot that mirrors real motorsport.
|
||||
|
||||
Examples:
|
||||
- F1 World Championship (same tracks, same order)
|
||||
- F2 / F3 / F4 analogs
|
||||
- GT3 European Sprint Cup
|
||||
- IMSA-style multiclass
|
||||
- DTM-style format
|
||||
|
||||
Users don’t need to invent formats — they pick from proven structures.
|
||||
|
||||
## 3.2 What an Automated League Includes
|
||||
|
||||
A template defines:
|
||||
- car class
|
||||
- track calendar (pre-set schedule)
|
||||
- race format (practice, quali, race)
|
||||
- scoring system (e.g., FIA F1 points)
|
||||
- bonus points (fastest lap, sprint race, etc.)
|
||||
- team size (e.g., 2 drivers like Constructors)
|
||||
- DNF rules
|
||||
- drop rules (if any)
|
||||
- penalty rules (warnings → time penalties → DSQ)
|
||||
|
||||
Admins can tweak details OR run it 1:1 as provided.
|
||||
|
||||
## 3.3 Session Generation
|
||||
|
||||
GridPilot can automatically:
|
||||
- create the full season
|
||||
- populate all race settings
|
||||
- optionally generate sessions via browser automation
|
||||
- clearly list required content for admins
|
||||
|
||||
This is still *admin-controlled* automation —
|
||||
GridPilot enhances, not replaces, human oversight.
|
||||
|
||||
## 3.4 Why Automated Leagues Matter
|
||||
|
||||
For drivers:
|
||||
- familiar formats
|
||||
- real-world relevance
|
||||
- stability
|
||||
|
||||
For admins:
|
||||
- less planning
|
||||
- less overhead
|
||||
- instantly “professional” structure
|
||||
|
||||
For GridPilot:
|
||||
- predictable competition ecosystem
|
||||
- consistent feature usage
|
||||
- scalable community engagement
|
||||
|
||||
---
|
||||
|
||||
# 4. Penalty & Protest System
|
||||
|
||||
A clean, structured way to handle disputes — core to GridPilot fairness.
|
||||
|
||||
## 4.1 Driver-Protest Flow
|
||||
|
||||
Drivers can submit:
|
||||
- race
|
||||
- involved drivers
|
||||
- replay timestamp(s)
|
||||
- explanation text
|
||||
- optional clip/video links
|
||||
|
||||
GridPilot stores everything in a clean UI.
|
||||
|
||||
## 4.2 Admin Review Tools
|
||||
|
||||
Admin sees:
|
||||
- list of protests
|
||||
- timestamps
|
||||
- notes
|
||||
- links
|
||||
- driver details
|
||||
- race context
|
||||
|
||||
Actions:
|
||||
- no action
|
||||
- warning
|
||||
- time penalty (+5s / +10s / +30s)
|
||||
- points deduction
|
||||
- DSQ race
|
||||
|
||||
Everything updates automatically.
|
||||
|
||||
## 4.3 Automatic Classification Updates
|
||||
|
||||
Time penalties:
|
||||
- re-sort results
|
||||
- adjust finishing positions
|
||||
- recalc points
|
||||
- update team standings
|
||||
|
||||
Penalties:
|
||||
- logged in history
|
||||
- visible on driver/team pages
|
||||
- part of season record
|
||||
|
||||
## 4.4 Consistency & Transparency
|
||||
|
||||
GridPilot helps:
|
||||
- keep decisions structured
|
||||
- avoid DM drama
|
||||
- maintain fairness
|
||||
- preserve season integrity
|
||||
|
||||
Admins stay in full control — GridPilot handles presentation & recalculation.
|
||||
|
||||
---
|
||||
|
||||
# 5. What We Must Consider (Key Constraints)
|
||||
|
||||
## 5.1 Content Ownership
|
||||
|
||||
Automated leagues need:
|
||||
- admins (or bot accounts) who own the tracks
|
||||
- 1 owned car per allowed class
|
||||
- iRacing credits to host sessions
|
||||
|
||||
GridPilot cannot bypass iRacing content rules.
|
||||
|
||||
## 5.2 Avoiding Splits (Very Important)
|
||||
|
||||
Splits destroy community identity.
|
||||
GridPilot must:
|
||||
- keep leagues small (20–30 drivers)
|
||||
- allow multiple parallel micro-series (F1-A, F1-B, etc.)
|
||||
- unify standings across micro-series through stats (optional)
|
||||
|
||||
We scale *horizontally*, not vertically.
|
||||
|
||||
## 5.3 Admin Optionality
|
||||
|
||||
Automation is optional.
|
||||
Manual control must always be possible.
|
||||
|
||||
## 5.4 Don’t Replace Community
|
||||
|
||||
GridPilot provides structure — not social control.
|
||||
Discord remains important; we complement it.
|
||||
|
||||
## 5.5 Avoid excessive complexity
|
||||
|
||||
Penalty rules, team formats, automated templates —
|
||||
all must stay simple, configurable, and not overwhelming.
|
||||
|
||||
---
|
||||
|
||||
# 6. GridPilot Race Management Summary
|
||||
|
||||
GridPilot provides:
|
||||
- professional team racing
|
||||
- structured constructors scoring
|
||||
- predefined (or custom) league formats
|
||||
- optional auto-generated F1-style calendars
|
||||
- clean protests and quick penalties
|
||||
- automatic standings
|
||||
- minimal admin workload
|
||||
- consistent racing identity
|
||||
- scalable competition model
|
||||
|
||||
We don’t replace iRacing —
|
||||
we give league racing the **structure, fairness, and identity** it has always lacked.
|
||||
224
docs/concept/RATING.md
Normal file
224
docs/concept/RATING.md
Normal file
@@ -0,0 +1,224 @@
|
||||
# GridPilot Rating
|
||||
*Our own competition rating system designed for league racing — because iRating was never made for this.*
|
||||
|
||||
---
|
||||
|
||||
# 1. Why GridPilot Needs Its Own Rating
|
||||
|
||||
iRating works great for official races, but it's not built for leagues.
|
||||
|
||||
**League racing is fundamentally different:**
|
||||
- you race against the same people each week
|
||||
- racecraft matters more than raw pace
|
||||
- team dynamics influence outcomes
|
||||
- attendance and consistency matter
|
||||
- incidents have real consequences
|
||||
- formats vary massively between leagues
|
||||
- results depend heavily on season structure
|
||||
- small grids distort iRating logic
|
||||
|
||||
iRating can’t measure:
|
||||
- season performance
|
||||
- team contribution
|
||||
- consistency
|
||||
- clean driving
|
||||
- decision-making
|
||||
- rivalry strength
|
||||
- long-term commitment
|
||||
- reliability
|
||||
|
||||
So we build a rating *specifically for league racing* —
|
||||
where context, progression, and human rivalry actually matter.
|
||||
|
||||
---
|
||||
|
||||
# 2. What GridPilot Rating Measures
|
||||
|
||||
GridPilot Rating = **league racing performance + racing behavior + reliability**.
|
||||
|
||||
It captures the full picture of a driver, not only their pace.
|
||||
|
||||
### **Core components**
|
||||
- **Results Strength**
|
||||
How well you finish relative to the field strength.
|
||||
|
||||
- **Consistency**
|
||||
Stability of finishing positions over a season.
|
||||
|
||||
- **Clean Driving**
|
||||
Incidents per race, weighted by severity.
|
||||
|
||||
- **Racecraft**
|
||||
Positions gained/lost vs. incident involvement.
|
||||
|
||||
- **Reliability**
|
||||
Attendance, DNS/DNF record.
|
||||
|
||||
- **Team Contribution**
|
||||
Points earned for your team; lineup efficiency.
|
||||
|
||||
### **Why these matter**
|
||||
A great league driver is not only fast.
|
||||
A great league driver is:
|
||||
- clean
|
||||
- consistent
|
||||
- reliable
|
||||
- competitive
|
||||
- predictable
|
||||
- respected
|
||||
- valuable to teams
|
||||
|
||||
Our rating reflects **real league value**, not just raw pace.
|
||||
|
||||
---
|
||||
|
||||
# 3. Principles of GridPilot Rating
|
||||
|
||||
## **1. Competition over matchmaking**
|
||||
iRating is designed for matchmaking.
|
||||
GridPilot Rating is designed for **championships**.
|
||||
|
||||
## **2. Context matters**
|
||||
Beating a strong field → worth more.
|
||||
Clean races → rewarded.
|
||||
Incidents → penalized.
|
||||
Attendance → essential.
|
||||
|
||||
## **3. No punishing drivers for leagues with small grids**
|
||||
In iRating, small splits cause unstable jumps.
|
||||
GridPilot Rating normalizes for field size.
|
||||
|
||||
## **4. No obsession with “perfection”**
|
||||
This is not a chess ELO.
|
||||
This is racing.
|
||||
Racing has chaos.
|
||||
Rating should reflect that.
|
||||
|
||||
## **5. Transparent & understandable**
|
||||
Drivers should always know:
|
||||
> “Why did my rating change?”
|
||||
|
||||
Our UI makes this clear.
|
||||
|
||||
---
|
||||
|
||||
# 4. Rating Inputs (Conceptual, not equations)
|
||||
|
||||
GridPilot Rating is built from weighted contributions:
|
||||
|
||||
### **1. Race Placement Score**
|
||||
Normalized by:
|
||||
- field size
|
||||
- field strength
|
||||
- track difficulty (optional future)
|
||||
- gaps between positions
|
||||
|
||||
### **2. Incident Factor**
|
||||
Scaled to:
|
||||
- incident count
|
||||
- impact on others
|
||||
- severity
|
||||
- penalty involvement
|
||||
|
||||
### **3. Reliability Score**
|
||||
- attendance
|
||||
- quitting early
|
||||
- DNS
|
||||
- DNF
|
||||
|
||||
### **4. Team Factor**
|
||||
- points contributed relative to team total
|
||||
- team finishing efficiency
|
||||
- team strength
|
||||
|
||||
### **5. Season Factor**
|
||||
Bonus for:
|
||||
- championship position
|
||||
- improvement
|
||||
- performance under pressure
|
||||
- completing the full season
|
||||
|
||||
Everything is transparent and cumulative.
|
||||
|
||||
---
|
||||
|
||||
# 5. Why Teams Benefit from Rating
|
||||
|
||||
Teams need a way to scout drivers that isn’t:
|
||||
- “Do you have 3k iRating?”
|
||||
- “Are you fast in officials?”
|
||||
- “Do you join our Discord?”
|
||||
|
||||
GridPilot Rating shows:
|
||||
- reliability
|
||||
- cleanliness
|
||||
- consistency
|
||||
- contribution
|
||||
- teamwork
|
||||
- multi-season performance
|
||||
|
||||
That’s what teams care about in real league competition.
|
||||
|
||||
---
|
||||
|
||||
# 6. Why Admins Benefit
|
||||
|
||||
Admins get:
|
||||
- balanced rosters
|
||||
- fairer splits if needed
|
||||
- data for assigning classes
|
||||
- better recruitment
|
||||
- fewer problems with unreliable drivers
|
||||
- objective metrics behind decisions
|
||||
|
||||
Rating turns leagues into **professional, predictable competitions**.
|
||||
|
||||
---
|
||||
|
||||
# 7. Why Drivers Benefit
|
||||
|
||||
Drivers finally get:
|
||||
- recognition for more than pace
|
||||
- a way to show reliability
|
||||
- stats that show improvement
|
||||
- incentives to race clean
|
||||
- a reason to finish the season
|
||||
- meaningful identity across multiple leagues
|
||||
|
||||
GridPilot Rating makes league racing **feel like a true career**, not a collection of spreadsheets.
|
||||
|
||||
---
|
||||
|
||||
# 8. How It Differs From iRating
|
||||
|
||||
| iRating | GridPilot Rating |
|
||||
|--------|------------------|
|
||||
| Matchmaking tool | Competition identity tool |
|
||||
| Random opponents | Same rivals weekly |
|
||||
| No context | Context-heavy |
|
||||
| Pace only | Pace + behavior + consistency + reliability |
|
||||
| Does not reward team play | Team contribution included |
|
||||
| Penalizes small grids | Normalized for field size |
|
||||
| No season meaning | Season progression core to system |
|
||||
| Binary win/loss logic | Full racing context |
|
||||
|
||||
GridPilot Rating doesn’t replace iRating.
|
||||
It fills the gap iRating never tried to solve.
|
||||
|
||||
---
|
||||
|
||||
# 9. Why We're Building This
|
||||
|
||||
Because league racing deserves:
|
||||
- fair recognition
|
||||
- long-term meaning
|
||||
- personal progression
|
||||
- team value
|
||||
- traits beyond speed
|
||||
- a competitive environment that feels like real motorsport
|
||||
|
||||
No other platform gives league racers their own rating.
|
||||
And no existing metric truly represents what makes someone great in a league.
|
||||
|
||||
GridPilot Rating changes that —
|
||||
**by measuring the things that actually matter in league racing.**
|
||||
204
docs/concept/SOCIAL.md
Normal file
204
docs/concept/SOCIAL.md
Normal file
@@ -0,0 +1,204 @@
|
||||
# GridPilot — Social Features
|
||||
*The social layer that connects drivers, admins, teams, and leagues in one unified platform.*
|
||||
|
||||
---
|
||||
|
||||
## 1. The Purpose of GridPilot Social
|
||||
|
||||
Sim racers today are split across:
|
||||
- Discord servers
|
||||
- Reddit threads
|
||||
- scattered DMs
|
||||
- league-specific chats
|
||||
- spreadsheets with usernames
|
||||
|
||||
There is **no central place** where drivers, admins, and teams discover each other or keep in touch.
|
||||
|
||||
GridPilot adds a lightweight, modern social layer designed specifically for the league racing world.
|
||||
|
||||
Not a full “social network,” not noisy, not chaotic —
|
||||
just the tools needed to help people connect efficiently and meaningfully.
|
||||
|
||||
---
|
||||
|
||||
## 2. Unified User Identity
|
||||
|
||||
Every user has one identity across the entire platform:
|
||||
|
||||
- profile picture
|
||||
- username
|
||||
- country & time zone
|
||||
- teams
|
||||
- leagues they race in
|
||||
- bio (optional)
|
||||
- links (Twitch / YouTube / Discord / social media)
|
||||
- availability preferences (days/times they race)
|
||||
|
||||
**Admins, drivers, team captains — all the same user type.**
|
||||
|
||||
There are no separate accounts or roles.
|
||||
Roles are permissions, not different identities.
|
||||
|
||||
---
|
||||
|
||||
## 3. Messaging (Lightweight)
|
||||
|
||||
A minimal message system designed for utility, not noise.
|
||||
|
||||
### **Driver ↔ Driver**
|
||||
- send quick messages (questions, coordination, friendly chatter)
|
||||
|
||||
### **Driver ↔ Admin**
|
||||
- ask about sign-ups
|
||||
- clarify rules
|
||||
- discuss incidents (if needed)
|
||||
- handle roster or team questions
|
||||
|
||||
### **Team Messaging**
|
||||
- team chat for coordination
|
||||
- optional channel for setup sharing or strategy
|
||||
- not meant to replace Discord, but acts as a unified fallback
|
||||
|
||||
### **League Announcements**
|
||||
- admins can broadcast updates
|
||||
- drivers receive notifications (web/mobile)
|
||||
|
||||
This is *not* a Discord replacement — it fills the gaps Discord cannot cover.
|
||||
|
||||
---
|
||||
|
||||
## 4. Discoverability Between Users
|
||||
|
||||
GridPilot makes it easy for users to find the right people.
|
||||
|
||||
### **Find Drivers**
|
||||
Admins or team captains can filter by:
|
||||
- region
|
||||
- time zone
|
||||
- car classes driven
|
||||
- experience level
|
||||
- incident trends
|
||||
- availability
|
||||
- open-to-team-invite flag
|
||||
|
||||
### **Find Leagues**
|
||||
Drivers can filter by:
|
||||
- region
|
||||
- event time
|
||||
- car class
|
||||
- competition level
|
||||
- team / solo format
|
||||
|
||||
### **Find Teams**
|
||||
Drivers can see:
|
||||
- teams recruiting
|
||||
- team bios
|
||||
- roster
|
||||
- history
|
||||
- available seats
|
||||
|
||||
This enables a healthy “social marketplace” inside the platform — not chaos, but structure.
|
||||
|
||||
---
|
||||
|
||||
## 5. Social Timeline (v1: Very Light)
|
||||
|
||||
A simple, platform-wide activity feed such as:
|
||||
|
||||
- “User X joined League Y”
|
||||
- “Team Z registered for the new season”
|
||||
- “Driver A scored P1 in Race 3”
|
||||
- “Season standings updated”
|
||||
|
||||
No memes, no fluff, no spam — just relevant racing activity.
|
||||
|
||||
---
|
||||
|
||||
## 6. Profiles for Leagues & Teams (Social Extension)
|
||||
|
||||
### **League Profiles**
|
||||
- followers
|
||||
- announcements
|
||||
- pinned messages
|
||||
- season previews
|
||||
- open sign-ups
|
||||
- links to streams
|
||||
|
||||
### **Team Profiles**
|
||||
- roster
|
||||
- captain
|
||||
- recruiting status
|
||||
- achievements
|
||||
- highlights
|
||||
- invites/private chat
|
||||
|
||||
This creates a natural social ecosystem around competition.
|
||||
|
||||
---
|
||||
|
||||
## 7. Notifications (Non-Intrusive)
|
||||
|
||||
Users get updates for:
|
||||
- sign-up confirmations
|
||||
- race day reminders
|
||||
- new messages
|
||||
- new followers
|
||||
- schedule changes
|
||||
- penalties published
|
||||
- standings updates
|
||||
|
||||
Always optional.
|
||||
Always configurable.
|
||||
|
||||
---
|
||||
|
||||
## 8. Social Safety Features
|
||||
|
||||
GridPilot avoids drama-heavy social problems:
|
||||
|
||||
- block/mute user
|
||||
- report message or behavior
|
||||
- admin moderation tools inside a league
|
||||
- no open global chat (avoids toxicity)
|
||||
- no group spam
|
||||
- no public “wall posts”
|
||||
|
||||
The platform focuses on **purposeful** communication only.
|
||||
|
||||
---
|
||||
|
||||
## 9. Why GridPilot’s Social Layer Is Unique
|
||||
|
||||
Current tools:
|
||||
- Discord: chaotic, messy, isolated per league
|
||||
- Reddit: fragmented
|
||||
- Forums: outdated
|
||||
- DMs: unstructured
|
||||
- iRacing: no social features at all
|
||||
|
||||
GridPilot combines the best parts of community interaction:
|
||||
- discoverability
|
||||
- messaging
|
||||
- profiles
|
||||
- recruitment
|
||||
- structured announcements
|
||||
- identity across leagues
|
||||
|
||||
…without becoming a noisy distraction.
|
||||
|
||||
---
|
||||
|
||||
## 10. Summary
|
||||
|
||||
GridPilot’s social features give sim racers what they’re missing:
|
||||
|
||||
- a unified identity
|
||||
- simple ways to connect
|
||||
- ways for leagues to find drivers
|
||||
- ways for drivers to find leagues
|
||||
- team coordination tools
|
||||
- non-chaotic messaging
|
||||
- structured community activity
|
||||
|
||||
It’s the **social layer that sim racing has always lacked** —
|
||||
lightweight, purposeful, and deeply integrated into competition.
|
||||
270
docs/concept/STATS.md
Normal file
270
docs/concept/STATS.md
Normal file
@@ -0,0 +1,270 @@
|
||||
# GridPilot — In-Depth Stats & Scoring
|
||||
*A modern statistics and scoring engine that gives meaning, context, and clarity to every race, every season, and every driver.*
|
||||
|
||||
---
|
||||
|
||||
# 1. Purpose of GridPilot Stats
|
||||
iRacing’s official results are powerful, but extremely limited:
|
||||
- no career progression
|
||||
- no cross-season view
|
||||
- no team context
|
||||
- no advanced analytics
|
||||
- no identity
|
||||
|
||||
GridPilot turns league racing into a structured competitive ecosystem by adding **deep, consistent, cross-league analytics** that drivers, teams, and admins can all rely on.
|
||||
|
||||
---
|
||||
|
||||
# 2. Core Data We Track
|
||||
|
||||
GridPilot automatically imports race metadata from iRacing and expands it into a full statistical model.
|
||||
|
||||
### **Per Race**
|
||||
- finishing position
|
||||
- starting position
|
||||
- positions gained/lost
|
||||
- incidents
|
||||
- best lap
|
||||
- average lap pace (optional if telemetry available)
|
||||
- laps completed
|
||||
- penalties applied
|
||||
- classification after penalties
|
||||
|
||||
### **Per Driver (Season)**
|
||||
- points
|
||||
- average finish
|
||||
- consistency rating
|
||||
- race attendance
|
||||
- clean race percentage
|
||||
- total incidents
|
||||
- incidents per lap
|
||||
- podiums
|
||||
- wins
|
||||
- DNF count
|
||||
- performance trend
|
||||
|
||||
### **Per Team (Season)**
|
||||
- total team points
|
||||
- points contribution per driver
|
||||
- average team finish
|
||||
- number of drivers scoring
|
||||
- team attendance
|
||||
- team success over time
|
||||
|
||||
### **All-Time Stats**
|
||||
- total races
|
||||
- total wins
|
||||
- total podiums
|
||||
- historical point totals
|
||||
- incident history
|
||||
- class-specific stats (e.g., GT4, F4, F3)
|
||||
- multi-league performance overview
|
||||
|
||||
These stats give GridPilot the ability to create meaningful identity and competitive depth.
|
||||
|
||||
---
|
||||
|
||||
# 3. Scoring Engine (Flexible + Transparent)
|
||||
|
||||
Each league defines its scoring rules, but GridPilot standardizes them into clear, consistent structures.
|
||||
|
||||
### **Supported Scoring Models**
|
||||
- Formula-style points (F1, F2, F3, F4, GP2, etc.)
|
||||
- Endurance-style points
|
||||
- Fixed points per position
|
||||
- Bonus points:
|
||||
- fastest lap
|
||||
- pole position
|
||||
- clean race
|
||||
- most positions gained
|
||||
|
||||
### **Drop Weeks**
|
||||
- configurable number of drops
|
||||
- visual indicator for dropped results
|
||||
- fully automated recalculation
|
||||
|
||||
### **Team Scoring**
|
||||
A true Constructors-style model:
|
||||
- multiple drivers score per race
|
||||
- flexible configuration (best 2 scores, all scores, custom rules)
|
||||
- team standings calculated instantly
|
||||
- team stats update automatically
|
||||
|
||||
---
|
||||
|
||||
# 4. Driver Performance Metrics (Advanced)
|
||||
|
||||
GridPilot doesn’t just store results — it analyzes them.
|
||||
|
||||
### **Key Driver Metrics**
|
||||
- **Consistency Score**
|
||||
Statistical deviation of finishing positions over time.
|
||||
Lower = more consistent.
|
||||
|
||||
- **Pace Index** (optional if telemetry available)
|
||||
Comparison of average lap times vs. field median.
|
||||
|
||||
- **Clean Driving Score**
|
||||
Incidents per race + severity weighting.
|
||||
|
||||
- **Racecraft Score**
|
||||
Positions gained/lost vs. incident involvement.
|
||||
|
||||
- **Progression Score**
|
||||
Improvement across a season, shown as a trendline.
|
||||
|
||||
- **Clutch Factor**
|
||||
Performance in high-pressure scenarios (late-season races, close battles).
|
||||
|
||||
### **Visibility**
|
||||
All metrics appear on:
|
||||
- driver profile
|
||||
- season detail page
|
||||
- league overview
|
||||
- team contribution breakdown
|
||||
|
||||
Drivers finally see **how** they drive — not just where they finish.
|
||||
|
||||
---
|
||||
|
||||
# 5. Team Metrics (Depth That Makes Teams Matter)
|
||||
|
||||
Teams get **quantitative identity**.
|
||||
|
||||
### **Team Performance Metrics**
|
||||
- team points
|
||||
- team pace
|
||||
- average finishing position
|
||||
- contribution per driver
|
||||
- lineup efficiency (who delivers consistent points)
|
||||
- recruitment performance (improvement after roster changes)
|
||||
- team form (last 5 races)
|
||||
|
||||
### **Team Contribution Breakdown**
|
||||
Each driver has:
|
||||
- points contributed
|
||||
- percentage of team output
|
||||
- consistency
|
||||
- clean driving impact
|
||||
- reliability (attendance)
|
||||
|
||||
This creates real internal and external rivalries.
|
||||
|
||||
---
|
||||
|
||||
# 6. Season Intelligence
|
||||
|
||||
GridPilot gives leagues a complete analytical picture:
|
||||
|
||||
### **Season Insights**
|
||||
- top improvers
|
||||
- most consistent drivers
|
||||
- hard chargers
|
||||
- clean drivers
|
||||
- most valuable drivers (team scoring)
|
||||
- pace distribution
|
||||
- incident hotspots
|
||||
- attendance map
|
||||
|
||||
### **League Health Metrics**
|
||||
- retention
|
||||
- average field size
|
||||
- finishing rate
|
||||
- incident averages
|
||||
- multi-class balancing
|
||||
|
||||
Admins get clarity without spreadsheets.
|
||||
|
||||
---
|
||||
|
||||
# 7. Classification Adjustments (Penalties Included)
|
||||
|
||||
Results are never final until all penalties are processed.
|
||||
|
||||
GridPilot automatically handles:
|
||||
|
||||
- time penalties (+5s / +10s / +30s / custom)
|
||||
- points deductions
|
||||
- disqualifications (race-level)
|
||||
- attendance penalties (if used)
|
||||
- warning tracking
|
||||
|
||||
After admin decisions:
|
||||
- standings recalculate
|
||||
- driver stats update
|
||||
- team stats update
|
||||
- classification changes are logged
|
||||
- penalty history is visible
|
||||
|
||||
No manual recalculation.
|
||||
No mistakes.
|
||||
No drama.
|
||||
|
||||
---
|
||||
|
||||
# 8. Global Scoring Vision (Future-Friendly)
|
||||
|
||||
GridPilot tracks:
|
||||
- per-league points
|
||||
- per-season points
|
||||
- all-time points
|
||||
- team points
|
||||
- class-based points
|
||||
|
||||
This allows future scaling into:
|
||||
- global leaderboards
|
||||
- cross-league rankings
|
||||
- multi-class ladders
|
||||
- team world rankings
|
||||
|
||||
We don’t implement everything on day one —
|
||||
but the **data model is built for it**.
|
||||
|
||||
---
|
||||
|
||||
# 9. Why GridPilot Stats Matter
|
||||
|
||||
For Drivers:
|
||||
- proof of skill
|
||||
- motivation
|
||||
- long-term identity
|
||||
- visible improvement
|
||||
- fairness & transparency
|
||||
|
||||
For Teams:
|
||||
- real constructors competition
|
||||
- driver scouting
|
||||
- lineup planning
|
||||
- prestige and pride
|
||||
|
||||
For Admins:
|
||||
- no spreadsheets
|
||||
- no miscalculations
|
||||
- clarity for the community
|
||||
- instant transparency
|
||||
- professionalism
|
||||
|
||||
For Leagues:
|
||||
- structure
|
||||
- identity
|
||||
- competitiveness
|
||||
- return of drivers season after season
|
||||
|
||||
---
|
||||
|
||||
# Summary
|
||||
|
||||
GridPilot’s scoring and analytics system turns scattered league racing into a **structured competitive ecosystem**:
|
||||
|
||||
- complete results
|
||||
- meaningful metrics
|
||||
- constructors-style team scoring
|
||||
- clean & consistent standings
|
||||
- penalty-aware classification
|
||||
- multi-season depth
|
||||
- driver identity
|
||||
- team identity
|
||||
- league clarity
|
||||
|
||||
This is the **foundation** that makes GridPilot more than a tool —
|
||||
it becomes the home of competition in iRacing league racing.
|
||||
211
docs/concept/TEAMS.md
Normal file
211
docs/concept/TEAMS.md
Normal file
@@ -0,0 +1,211 @@
|
||||
# GridPilot for Teams
|
||||
*Teams are the backbone of real motorsport. GridPilot finally gives them the tools they’ve always needed in iRacing league racing.*
|
||||
|
||||
---
|
||||
|
||||
## 1. Why Teams Matter
|
||||
|
||||
Teams add:
|
||||
- identity
|
||||
- rivalry
|
||||
- long-term story
|
||||
- shared goals
|
||||
- consistency
|
||||
- progression
|
||||
- fun beyond solo racing
|
||||
|
||||
But in iRacing leagues today, teams are treated as:
|
||||
- “a tag on a spreadsheet”
|
||||
- “a logo in a Discord channel”
|
||||
|
||||
GridPilot fixes that by making teams **first-class citizens** of the platform.
|
||||
|
||||
---
|
||||
|
||||
## 2. Team Profiles
|
||||
|
||||
Every team gets its own home on GridPilot:
|
||||
|
||||
### **Team Profile Includes**
|
||||
- team name
|
||||
- logo & colors
|
||||
- description/bio
|
||||
- captain / co-captains
|
||||
- full roster
|
||||
- active seasons
|
||||
- past seasons
|
||||
- team standings
|
||||
- points history
|
||||
- achievements
|
||||
|
||||
### Why it matters
|
||||
Drivers finally have somewhere to “belong,”
|
||||
and teams become part of the league’s story — not a footnote.
|
||||
|
||||
---
|
||||
|
||||
## 3. Team Creation & Management
|
||||
|
||||
Teams can be created by any user:
|
||||
|
||||
### Team captains can:
|
||||
- invite drivers
|
||||
- approve join requests
|
||||
- remove drivers
|
||||
- assign roles (captain, strategist, reserve driver)
|
||||
- manage the team profile
|
||||
- mark the team as “recruiting”
|
||||
|
||||
### Drivers can:
|
||||
- request to join
|
||||
- switch teams between seasons
|
||||
- follow recruiting teams
|
||||
- represent their team in multiple leagues
|
||||
|
||||
Everything is clean, modern, and transparent.
|
||||
|
||||
---
|
||||
|
||||
## 4. Team Registration for Seasons
|
||||
|
||||
When a league supports team racing, teams can register directly:
|
||||
|
||||
### Team season registration:
|
||||
1. captain chooses league
|
||||
2. reviews schedule & format
|
||||
3. submits team
|
||||
4. roster automatically populated
|
||||
5. drivers assigned to specific car slots if needed
|
||||
6. team appears in league standings
|
||||
|
||||
No forms.
|
||||
No DMs.
|
||||
No spreadsheets.
|
||||
|
||||
---
|
||||
|
||||
## 5. Constructors-Style Team Competition
|
||||
|
||||
This is where GridPilot goes beyond what any league tool offers.
|
||||
|
||||
### **How it works**
|
||||
- multiple drivers from a team race in parallel
|
||||
- each race week can have different participating drivers
|
||||
- **all scored points contribute to the team championship**
|
||||
- standings update automatically from iRacing results
|
||||
|
||||
### **Why it’s superior**
|
||||
- teams aren’t just “one driver per car slot”
|
||||
- stronger teams can field more competitive drivers
|
||||
- every driver matters
|
||||
- team strategy becomes part of the championship
|
||||
- it feels like real motorsport (F1: Constructors, WEC, GT teams)
|
||||
|
||||
This is a massive upgrade over the usual “driver only” league structure.
|
||||
|
||||
---
|
||||
|
||||
## 6. Team Standings & History
|
||||
|
||||
Each team gets:
|
||||
- season standings
|
||||
- total points
|
||||
- podiums
|
||||
- wins
|
||||
- member contributions
|
||||
- historical performance graphs
|
||||
- list of every season ever raced
|
||||
|
||||
Over time, this becomes:
|
||||
- reputation
|
||||
- prestige
|
||||
- an asset teams are proud of
|
||||
|
||||
Teams become part of the GridPilot universe, not just this week’s race.
|
||||
|
||||
---
|
||||
|
||||
## 7. Driver Contribution Breakdown
|
||||
|
||||
Teams can see:
|
||||
- which driver scored points
|
||||
- how many
|
||||
- consistency over time
|
||||
- incidents
|
||||
- average finishing position
|
||||
- contribution %, similar to "driver share"
|
||||
|
||||
This builds:
|
||||
- internal competition
|
||||
- motivation
|
||||
- clarity
|
||||
- lineup optimization
|
||||
|
||||
It also helps captains choose who drives what event.
|
||||
|
||||
---
|
||||
|
||||
## 8. Discoverability: Find & Recruit Drivers
|
||||
|
||||
Teams can mark themselves as:
|
||||
- **Actively Recruiting**
|
||||
- **Closed**
|
||||
- **Looking for reserve drivers**
|
||||
|
||||
Drivers can:
|
||||
- browse teams
|
||||
- search by region / league / car class
|
||||
- request to join
|
||||
- follow teams they like
|
||||
|
||||
This solves the huge problem of:
|
||||
> “Where do we find new drivers for our team?”
|
||||
|
||||
---
|
||||
|
||||
## 9. Communication Tools (Lightweight)
|
||||
|
||||
Teams get:
|
||||
- team announcements
|
||||
- team chat
|
||||
- direct messages
|
||||
- lineup discussions
|
||||
- strategy notes
|
||||
|
||||
Not a full Discord replacement —
|
||||
but enough to organize race days without noise.
|
||||
|
||||
---
|
||||
|
||||
## 10. Why Teams Should Use GridPilot
|
||||
|
||||
Teams get what iRacing never gave them:
|
||||
|
||||
### ✔ Real constructors-style competition
|
||||
### ✔ A permanent home
|
||||
### ✔ A public identity
|
||||
### ✔ A place to recruit
|
||||
### ✔ A performance history
|
||||
### ✔ a reason to stay long-term
|
||||
### ✔ pride and prestige
|
||||
### ✔ fewer spreadsheets
|
||||
### ✔ clearer communication
|
||||
|
||||
Teams turn league racing into something that **feels like real motorsport**.
|
||||
|
||||
---
|
||||
|
||||
# Summary
|
||||
|
||||
GridPilot for Teams delivers:
|
||||
- professional team identity
|
||||
- constructors-style points
|
||||
- automatic team standings
|
||||
- clear contributor stats
|
||||
- season + all-time history
|
||||
- recruitment tools
|
||||
- team chats & coordination
|
||||
- smooth season registration
|
||||
|
||||
Teams finally become **true participants** in iRacing league racing —
|
||||
not just a tag next to a driver name.
|
||||
Reference in New Issue
Block a user