An interactive web application for simulating the 2026 NFL Draft. Select any of the 32 NFL teams and experience the draft from their perspective, with AI-powered logic making picks for other teams based on needs, rankings, and strategies.
- Web Interface: Clean, responsive UI built with FastAPI and Jinja2
- Team Management: View all 32 NFL teams organized by division
- Draft Strategy Toggle: Set each team's draft approach (BPA, Balanced, or Needs-based)
- Team Logos: Color-coded logos using official NFL team colors
- Draft Picks Display: Hover tooltips showing each team's full pick inventory
- Player Browser: Search and filter draft prospects by position, school, and grade
- Draft Order Management: View and customize the 2026 draft order
- Interactive Draft: Select your team and make picks in real-time
- Player data collection from NFL.com, ESPN, and college stats
- Full AI draft logic with team-specific tendencies
- Trade simulation during the draft
- Draft history and comparison tools
# Clone the repository
git clone https://github.com/cpv0310/draftsimulator.git
cd draftsimulator
# Create virtual environment
python -m venv venv
source venv/bin/activate # Linux/Mac
# or: .\venv\Scripts\activate # Windows
# Install dependencies
pip install -r requirements.txt
# Run the web server
uvicorn src.ui.web.app:app --reload --port 8000
# Open in browser
open http://localhost:8000draftsimulator/
├── src/
│ ├── models/ # Pydantic data models (Player, Team, Draft)
│ ├── services/ # Business logic (draft engine, team AI)
│ ├── ui/web/ # FastAPI application
│ │ ├── app.py # Routes and API endpoints
│ │ ├── static/ # CSS styles
│ │ └── templates/ # Jinja2 HTML templates
│ └── api/ # Web scraping adapters (planned)
├── data/
│ ├── players/ # Player JSON files
│ ├── teams/ # Team needs and draft picks
│ └── drafts/ # Saved simulations
├── docs/ # Documentation
├── config/ # Configuration files
└── tests/ # Unit tests
| Route | Description |
|---|---|
/ |
Player list with search and filters |
/player/{name} |
Detailed player profile |
/teams |
All 32 teams with strategy toggles |
/teams/{abbr} |
Team detail page |
/draft |
Start a draft simulation |
/draft/order |
Manage draft order |
| Endpoint | Method | Description |
|---|---|---|
/api/players |
GET | List/search players |
/api/teams |
GET | List all teams |
/api/teams/{id}/strategy |
POST | Update draft strategy |
/api/draft/order |
GET/POST | Get or save draft order |
Each team can be configured with one of three draft strategies:
- BPA (Best Player Available): Always take the highest-rated player
- Balanced: Consider both player value and team needs
- Needs-Based: Prioritize filling roster holes
- Backend: Python 3.11+, FastAPI, Pydantic
- Frontend: Jinja2 templates, vanilla JavaScript, CSS
- Data: JSON file storage (PostgreSQL planned)
MIT License - See LICENSE file for details