Skip to content

Repository files navigation

PitWall App Icon

PitWall — A Modern F1 Companion for Android

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.


Screenshots

Home — next race countdown and live session Full season schedule with session times Driver and Constructor standings


Key Features ✨

  • 📻 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.

Stack & Libraries

  • 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)

Project Structure

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

Requirements

  • 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

Quick Start (Clone, Build, Run)

  1. Clone the repository:

    git clone https://github.com/JenilMacwan/Pitwall.git
    cd Pitwall
  2. Build from the command line or open in Android Studio:

    • Assemble Debug APK:
      ./gradlew :app:assembleDebug
    • Install on connected device:
      ./gradlew :app:installDebug
  3. Run Unit Tests:

    ./gradlew test

Configuration

  • Firebase Setup: Place your google-services.json file inside the app/ 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.

License

This project is licensed under the MIT License — see the LICENSE file for details.

Developed with ❤️ for F1 fans by Jenil Macwan.

About

Pitwall is a modern Android application designed for Formula 1 enthusiasts. Built with the latest technologies, it provides fans with a streamlined and up-to-date information, ensuring they never miss a moment of the action

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages