A comprehensive Formula 1 telemetry and analytics platform that provides real-time race insights, performance analysis, and machine learning-powered predictions. Built with modern web technologies and a scalable microservices architecture.
Boxup aggregates and visualizes Formula 1 telemetry data, driver performance metrics, and race analytics in real-time. The platform enables engineers, analysts, and enthusiasts to explore detailed telemetry traces, brake analysis, corner insights, and predictive models for championship standings and race outcomes.
- Real-Time Telemetry Visualization: Interactive speed traces, brake analysis, and corner-by-corner performance metrics
- Race Analysis: Comprehensive session data including qualifying segments, practice sessions, and race telemetry
- Driver Performance Analytics: Comparative analysis between drivers with sector breakdowns and performance matrices
- Weather Integration: Real-time weather conditions tracked throughout race sessions
- Championship Predictions: Machine learning models for predicting championship outcomes and race results
- Responsive Dashboard: Modern web interface with real-time updates and interactive visualizations
- Data Ingestion Pipeline: Automated data collection and processing from official F1 sources
- Framework: Next.js 16 (React 19)
- Styling: Tailwind CSS, PostCSS
- Charts & Visualization: Recharts, Plotly.js, react-d3-speedometer
- Real-Time Updates: Socket.io Client
- Testing: Vitest
- Linting: ESLint
- Deployment: Vercel
- Language: Python 3
- Framework: Flask
- Database: PostgreSQL with TimescaleDB (time-series optimization)
- Migrations: Alembic
- Message Queue: Apache Kafka
- Caching: Redis
- ML Tracking: MLflow
- Containerization: Docker & Docker Compose
- Orchestration: Kafka for event streaming
- Database: TimescaleDB for time-series telemetry data
- UI Tools: Kafka UI for message queue monitoring
.
├── frontend/ # Next.js web application
│ ├── app/ # Page routes and layouts
│ ├── components/ # Reusable React components
│ ├── lib/ # Utilities and API clients
│ └── types/ # TypeScript type definitions
├── backend/ # Python Flask API
│ ├── src/backend/ # Core application logic
│ │ ├── api/ # API endpoints
│ │ ├── config.py # Configuration management
│ │ └── extensions.py # Database and service extensions
│ ├── migrations/ # Alembic database migrations
│ └── tests/ # Test suite
├── packages/
│ ├── ingestion/ # F1 data ingestion pipeline
│ ├── ml/ # Machine learning models and training
│ └── workers/ # Background job processors
└── infra/ # Infrastructure configuration
├── docker-compose.yml # Local development environment
└── postgres/ # Database initialization scripts
- Node.js 18+ (for frontend)
- Python 3.9+ (for backend)
- Docker & Docker Compose (for infrastructure)
- PostgreSQL 15+ (or use Docker)
-
Clone the repository
git clone <repository-url> cd "Formula 1"
-
Start infrastructure services
cd infra docker-compose up -dThis starts PostgreSQL, TimescaleDB, Kafka, and Kafka UI.
-
Setup backend
cd backend pip install -r ../requirements.txt flask db upgrade # Run migrations python main.py
The backend API will be available at
http://localhost:8000 -
Setup frontend
cd frontend pnpm install pnpm devThe frontend will be available at
http://localhost:3000
Environment variables are managed through .env files. Key configurations:
DATABASE_URL: PostgreSQL connection stringREDIS_URL: Redis connection URLKAFKA_BOOTSTRAP_SERVERS: Kafka broker addressesMLFLOW_TRACKING_URI: MLflow server URLAUTO_INGEST_ENABLED: Enable automatic F1 data ingestion
Frontend:
cd frontend
pnpm testBackend:
cd backend
pytestFrontend linting:
cd frontend
pnpm lintDatabase Migrations:
cd backend
alembic upgrade headThe backend provides REST API endpoints for:
/api/sessions- Race and practice session data/api/drivers- Driver information and statistics/api/laps- Lap telemetry and timing/api/analysis- Performance analysis and comparisons/api/health- Service health checks
The project is configured for deployment on:
- Frontend: Vercel (optimized for Next.js)
- Backend: Railway or similar container platforms
- Infrastructure: Kubernetes-ready with Docker Compose for local development
- Ingestion: Automated service pulls official F1 data
- Processing: Data is validated, enriched, and stored in TimescaleDB
- Streaming: Events are published to Kafka topics for real-time consumers
- Analysis: ML models process telemetry for predictions
- Visualization: Frontend retrieves and visualizes data via REST API
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0). See the LICENSE file for details.
For issues, questions, or suggestions, please open an issue on the repository.
Last Updated: June 2026