{"id":30021889,"url":"https://github.com/waridrox/f1_insights","last_synced_at":"2025-10-13T09:08:10.930Z","repository":{"id":285834574,"uuid":"331592604","full_name":"waridrox/f1_insights","owner":"waridrox","description":"Max Verstappen is a legend tho","archived":false,"fork":false,"pushed_at":"2025-08-03T23:24:13.000Z","size":8515,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-04T00:28:50.985Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/waridrox.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-01-21T10:28:29.000Z","updated_at":"2025-08-03T23:33:03.000Z","dependencies_parsed_at":"2025-08-04T00:39:06.252Z","dependency_job_id":null,"html_url":"https://github.com/waridrox/f1_insights","commit_stats":null,"previous_names":["waridrox/weather-etl-airflow","waridrox/f1_insights"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/waridrox/f1_insights","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/waridrox%2Ff1_insights","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/waridrox%2Ff1_insights/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/waridrox%2Ff1_insights/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/waridrox%2Ff1_insights/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/waridrox","download_url":"https://codeload.github.com/waridrox/f1_insights/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/waridrox%2Ff1_insights/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279014483,"owners_count":26085535,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-13T02:00:06.723Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-08-06T03:36:41.013Z","updated_at":"2025-10-13T09:08:10.901Z","avatar_url":"https://github.com/waridrox.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🏎️  F1 Insights: Real-Time Replay \u0026 Historical Analytics 🏁\n\n## Project Overview\n\nA real-time Formula 1 telemetry system and historical data analysis system that captures, processes, and visualizes car data during race sessions, enabling both live replay and historical analysis.\n\nThe project involves two main components:\n\n- **Real-Time Race Replay** - Replay and analyze race events in real-time, diving deep into how and why outcomes occurred\n- **Historical Analysis** - Post-race analysis of weather impacts, tire choices, and race/pit strategies\n\n### Real-Time Race Replay\n\n![Realtime](https://s7.gifyu.com/images/SJl9L.gif) \n\nThe system reconstructs race sessions in real-time, providing insights through:\n\n- Driver performance metrics (speed, throttle, brake data)\n- DRS usage analysis\n- Gear selection patterns\n- Position changes and overtaking maneuvers\n\n### Historical Analysis \u0026 Strategic Insights\n\nThe system enables comprehensive post-race analysis focusing on:\n\n- Weather impact on tire degradation and pit timing\n- Pit strategy effectiveness across conditions\n- Tire compound performance analysis\n\n## Architecture \u0026 Technology Stack\n\n![High Level Architecture](./images/High_level_architecture_diagram_image_1.jpeg)\n\n### Real-time Pipeline\n\n- **Confluent Kafka** on AWS EC2 - Handles high-throughput telemetry data streams\n- **SingleStore** - Operational database for real-time ingestion and analytics\n- **AWS EC2** (t3.micro) - Hosts Flask API for data processing\n\n![Streaming](./images/realtime_streaming_pipeline_image_1.jpeg)\n\n### Historical Analysis Pipeline\n\n- **DBT** - Data transformation and modeling\n- **Snowflake** - Data warehousing\n- **Apache Airflow** - ETL orchestration with WAP pattern\n- **Grafana** - Interactive dashboards\n\n## Data Model\n\n```mermaid\nerDiagram\n    MEETINGS ||--o{ SESSIONS : contains\n    MEETINGS ||--o{ DRIVERS : participates-in\n    MEETINGS ||--o{ RACE_CONTROL : records\n    MEETINGS ||--o{ WEATHER : tracks\n    \n    SESSIONS ||--o{ LAPS : includes\n    SESSIONS ||--o{ CAR_DATA : records\n    SESSIONS ||--o{ INTERVALS : tracks\n    SESSIONS ||--o{ POSITION : monitors\n    SESSIONS ||--o{ PIT : records\n    SESSIONS ||--o{ STINTS : tracks\n    SESSIONS ||--o{ TEAM_RADIO : captures\n    SESSIONS ||--o{ LOCATION : tracks\n```\n\n## Key Features\n\n### Data Ingestion\n\n![Ingestion](./images/Airflow_image.jpeg)\n\n- **Idempotent Processing** - Ensures data consistency through merge keys\n- **Resilient API Handling** - Retries and fallbacks for reliable data collection\n- **Efficient Resource Usage** - Compute optimization for non-race days\n- **Safe Data Loading** - Staging tables for atomic updates\n\n### Data Transformation\n\n![Transformations](./images/data_transformations.jpeg)\n\n- **Staging Models** - Initial data cleaning and type conversion\n- **Intermediate Models** - Complex calculations and aggregations\n- **Mart Models** - Business-ready views for dashboards\n\n### Data Validation\n\n![Validation](./images/validation_1.jpeg)\n\nComprehensive testing suite including:\n- Range validations\n- Relationship checks\n- Custom domain-specific tests\n\n## Dashboards\n\n### LAP Analysis\n![LAP Analysis](https://s7.gifyu.com/images/SJdyo.gif)\n\n### Telemetry Analysis\n![Telemetry](https://s7.gifyu.com/images/SJdJ4.gif)\n\n### Tire Strategy Analysis\n![Tire Strategy](https://s7.gifyu.com/images/SJdGt.gif)\n\n## Technical Decisions\n\n### Grafana Setup\n- EC2 deployment for 1s refresh rates (vs. 5s cloud limitation)\n- Dual setup: EC2 for real-time, Cloud for historical analysis\n\n### Database Choices\n- SingleStore for real-time operations (ms latency, free tier)\n- Snowflake for historical analysis (scalable compute/storage)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwaridrox%2Ff1_insights","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwaridrox%2Ff1_insights","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwaridrox%2Ff1_insights/lists"}