npx skills add https://github.com/slanycukr/riot-api-project --skill axiosInstala esta habilidad con la CLI y comienza a usar el flujo de trabajo SKILL.md en tu espacio de trabajo.
A League of Legends player analysis platform that identifies potential smurf accounts using advanced algorithms and Riot API data.
git clone <repository-url>
cd riot-api-project
cp .env.example .env
# Edit .env with database credentials and JWT secret
# Riot API key will be set via web UI after startup
docker compose up -d # Start services with hot reload
Hot reload is automatic: Changes to Python files auto-restart the backend via uvicorn --reload. Changes to TypeScript/JSX files hot reload the frontend via next dev. No manual restart needed!
Analyzes players using 9 weighted factors:
| Factor | Weight | What It Checks |
|---|---|---|
| Rank Discrepancy | 20% | Performance vs rank mismatch |
| Win Rate Analysis | 18% | High win rates over time |
| Performance Trends | 15% | KDA consistency patterns |
| Win Rate Trends | 10% | Improvement patterns |
| Role Performance | 9% | Multi-role versatility |
| Rank Progression | 9% | Fast climbing detection |
| Account Level | 8% | Low account level |
| Performance Consistency | 8% | Variance analysis |
| KDA Analysis | 3% | Kill/death ratios |
Confidence Levels:
Backend
Frontend
Infrastructure
Both frontend and backend support automatic hot reload via volume mounts—just save files, no restart needed:
docker compose up -d # Start services
docker compose logs -f # View all logs
docker compose logs -f backend # View backend logs only
docker compose exec backend uv run alembic current # Check migration status
docker compose down # Stop services
How hot reload works:
uvicorn --reload watches Python files and auto-restarts on changesnext dev watches TypeScript/JSX files and hot reloads on changes./backend:/app, ./frontend:/app) sync code changes to containers and generated files (like Alembic migrations) back to hostWhen to rebuild containers:
pyproject.toml, package.json)For detailed build info and production deployment, see docker/AGENTS.md and scripts/AGENTS.md.
The system runs two automated jobs:
Tracked Player Updater (every 2 minutes)
Player Analyzer (continuous)
Monitor jobs at: http://localhost:3000/jobs
GET /api/v1/players/search - Search by Riot ID or summoner namePOST /api/v1/players/{puuid}/track - Add player to trackingDELETE /api/v1/players/{puuid}/track - Remove from trackingGET /api/v1/matches/player/{puuid} - Get match historyPOST /api/v1/player-analysis/analyze - Run player analysisGET /api/v1/player-analysis/player/{puuid}/latest - Get latest analysisPOST /api/v1/matchmaking-analysis/start - Start matchmaking analysisGET /api/v1/matchmaking-analysis/{puuid}/latest - Get latest matchmaking analysisFull API docs: http://localhost:8000/docs
Key environment variables in .env:
# Application Configuration
POSTGRES_DB=riot_api_db
POSTGRES_USER=riot_api_user
POSTGRES_PASSWORD=secure_pass # Database password
JWT_SECRET_KEY=<generate-64-char-hex> # JWT signing secret (run: python -c 'import secrets; print(secrets.token_hex(32))')
Notes:
.env. Set via web UI at http://localhost:3000/settings after first startup.⚠️ Important: Development API keys expire every 24 hours. Update your key via the settings page when expired.
riot-api-project/
├── backend/app/ # FastAPI application (feature-based)
│ ├── core/ # Infrastructure (database, config, Riot API client)
│ └── features/ # Domain features
│ ├── players/ # Player management (search, tracking, rank info)
│ ├── matches/ # Match data and statistics
│ ├── player_analysis/ # Player analysis algorithms
│ ├── matchmaking_analysis/ # Matchmaking fairness evaluation
│ ├── jobs/ # Background job scheduling
│ └── settings/ # System configuration
├── frontend/ # Next.js application (feature-based)
│ ├── app/ # Pages (App Router)
│ ├── features/ # Feature modules
│ │ ├── players/ # Player components, hooks, utilities
│ │ ├── matches/ # Match components
│ │ ├── player-analysis/ # Analysis components
│ │ ├── matchmaking/ # Matchmaking analysis components
│ │ ├── jobs/ # Job management components
│ │ └── settings/ # Settings components
│ ├── components/ # Shared layout components and shadcn/ui
│ └── lib/core/ # Core utilities (API client, schemas, validations)
├── docker/ # Docker configuration
├── scripts/ # Development scripts
└── AGENTS.md # Project quick reference (CLAUDE.md → AGENTS.md)
# Backend tests
docker compose exec backend uv run pytest
# Frontend linting
docker compose exec frontend npm run lint
The application respects Riot API rate limits:
Built-in backoff and retry mechanisms handle rate limits automatically.
This project is for educational and research purposes. Please ensure compliance with Riot Games' API Terms of Service.
This project is not affiliated with or endorsed by Riot Games. All League of Legends-related content is property of Riot Games, Inc.
Built with ❤️ for the League of Legends community