PitWall is a sleek, high-performance Android application for Formula 1 fans that delivers live team radio audio, an AI-powered race strategy chatbot, real-time session status, season schedules, live standings, detailed driver/team profiles, race results, curated news, and customizable alerts — all in a lightweight, offline-first package.
-
📻 Live Team Radio Transmissions
- Stream real-time team radio audio recordings directly from Grand Prix sessions.
- Interactive driver filtering chips (
ALL,VER,NOR,LEC,HAM, etc.). - Team-colored player cards with animated progress indicators and real-time playback duration timers.
- Offline-first Room Database caching for instant clip access.
-
🤖 Apex AI Chatbot Strategy Assistant
- AI-powered telemetry and strategy companion for answering all Formula 1 queries.
- Quick prompt bar for instant insights on 2026 Active Aero rules, driver standings, race schedules, and teammate H2H statistics.
- Interactive chat interface with live pulse indicators, typing animations, and session management.
-
Real-Time Home Dashboard
- Next race countdown with session breakdown (FP1, FP2, FP3, Qualifying, Sprint, Race).
- Quick glance at recent race podiums and track weather snapshots.
- Top standings overview for Drivers and Constructors.
-
FCM Push Notifications & Session Reminders
- Instant breaking news, race control updates, and championship standings alerts via Firebase Cloud Messaging (FCM).
- Local exact-alarm scheduler (
AndroidAlarmScheduler) for custom session start reminders (15m, 30m, 1h prior). - Custom F1 engine audio notifications and rich expanded notification styles.
-
Dynamic Driver & Team Profiles
- Deep-dive driver stats: season points, podiums, wins, and head-to-head teammate comparisons.
- Points progression charts and driver profile cards.
- Constructor profiles: chassis technical specifications, power units, team leadership, and car imagery.
-
Full Season Schedule & Race Results
- Interactive Grand Prix weekend schedules with local session timing.
- Detailed race results screen with final positions, grid changes, and fastest laps.
-
Smart System Calendar Sync
- Export Grand Prix weekend schedules directly to your device's system calendar with options for future races or complete clearing.
-
F1 News Hub
- Aggregated and parsed headlines from top F1 media sources with expandable reader cards.
-
Premium Glassmorphism UI & Customization
- Modern Glassmorphism blur effects powered by the Haze library.
- Seamless Light & Dark mode switching with custom theme accent pickers.
-
Offline-First Architecture
- Robust local persistence with Room Database ensures data availability even without connectivity.
- Language: 100% Kotlin
- UI Framework: Jetpack Compose with Material 3 & Glassmorphism (Haze)
- Dependency Injection: Hilt (
com.google.dagger:hilt-android) with KSP - Architecture: MVVM + Repository pattern with Kotlin Coroutines & StateFlow
- Database / Local Storage: Room (
androidx.room) & Jetpack DataStore Preferences - Networking: Retrofit + OkHttp logging interceptor + Gson converter
- Push Notifications & Alarms: Firebase Cloud Messaging (FCM) & Android
AlarmManager - Media & Parsing: Coil (Image loading) & Jsoup (HTML news parsing)
app/src/main/java/com/jenil/f1comp/
├── data/
│ ├── local/ — Room Database, DAOs, and entities (offline cache)
│ ├── model/ — Domain data models (TeamRadio, Chatbot, Schedule, Standings)
│ ├── remote/ — Retrofit API service interfaces (F1ApiService, ChatApiService)
│ └── repository/ — Single source of truth & data orchestration
├── di/ — Hilt dependency injection modules (DatabaseModule, NetworkModule)
├── notification/ — FCM service, alarm scheduler, and notification channels
├── ui/
│ ├── chatbot/ — Apex AI chatbot screen, quick prompt bar & avatars
│ ├── components/ — Reusable Compose UI components
│ ├── home/ — Home dashboard & countdown screen
│ ├── navigation/ — Navigation host, routes & bottom bar
│ ├── news/ — News reader screen & expandable cards
│ ├── profile/ — Driver & Team profile screens, charts & comparisons
│ ├── radio/ — Team Radio screen, driver filter chips & player cards
│ ├── results/ — Detailed race result breakdown
│ ├── schedule/ — Race weekend schedule & calendar sync
│ ├── settings/ — Notification preferences & theme customizer
│ ├── standings/ — Driver & Constructor standings screens
│ └── theme/ — Material 3 color palettes, typography & team swatches
├── viewmodel/ — ViewModels handling UI state (TeamRadioViewModel, ChatViewModel)
└── util/ — Mappers, date formatting & calendar sync helpers
- Android Studio: 2024.2 "Ladybug" or newer
- JDK: 11 / 17 / 21 (configured for Kotlin JVM toolchain)
- Android SDK: Min SDK 26 (Android 8.0), Target/Compile SDK 36/37
-
Clone the repository:
git clone https://github.com/JenilMacwan/Pitwall.git cd Pitwall -
Build from the command line or open in Android Studio:
- Assemble Debug APK:
./gradlew :app:assembleDebug
- Install on connected device:
./gradlew :app:installDebug
- Assemble Debug APK:
-
Run Unit Tests:
./gradlew test
- Firebase Setup: Place your
google-services.jsonfile inside theapp/directory for Firebase Cloud Messaging functionality. - Local Properties & API Keys: Add your Chatbot API key to
local.properties:CHAT_API_KEY=your_actual_api_key_here - Notification Permissions: Android 13+ (API 33+) requires post-notification runtime permission for race alerts.
This project is licensed under the MIT License — see the LICENSE file for details.
Developed with ❤️ for F1 fans by Jenil Macwan.


