RALI: Navigation Reimagined

RALI Logo

Rali™: Revolutionizing Navigation and Group Coordination

Imagine this: A group of supercar enthusiasts set off from three different cities—Nashville, Atlanta, and Charlotte. Their destination? The legendary Tail of the Dragon, an 11-mile stretch of road boasting 318 curves and unmatched driving thrills. From light traffic concerns to unexpected weather delays and even dead zones with no cell signal, each group faces its own unique challenges. Yet, they all have one goal: to meet at the same time and make the most of their driving experience.

This is where the problem begins.

The Challenge

  • Dynamic Traffic Conditions: The Nashville group must navigate light traffic, which intensifies as they approach the destination.
  • Unpredictable Weather: The Atlanta group encounters rain delays and mountainous areas with no cell coverage.
  • Coordination Across Groups: The Charlotte group is delay-free but needs to synchronize their arrival with the others.
  • Telemetry and Social Sharing: All drivers want to log and share their car telemetry data while keeping their focus on the road.
  • Display Flexibility: They need seamless switching between navigation and performance metrics, tailored to their in-car systems like Apple CarPlay and Android Auto.

Enter Rali™: The All-in-One Driving Companion

Rali™ doesn't just solve these problems—it redefines the driving experience. Built from the ground up with cutting-edge AI and real-time data integration, Rali™ is the ultimate tool for driving enthusiasts.

App Preview

Splash Screen Rali Splash Map Screen (Default) Android Screenshot 1 Search Android Screenshot 2 Route Overview Android Screenshot 3 Route Overview - Group Drive Group Drive Route Overview Navigation Mode - Group Drive Group Drive City Police Reported Ahead Popo Report Mountains

Android Demo (WebM)

What Rali™ Delivers

1. Dynamic Route Guidance

  • Real-time traffic updates ensure the Nashville group stays ahead of congestion.
  • Weather-aware routing predicts rain delays for the Atlanta group, providing safe and efficient alternatives.
  • Offline functionality ensures continuous navigation even in dead zones.

2. Synchronized Arrival

  • Shared waypoints and predictive arrival times keep all groups on the same schedule.
  • Smart adjustments based on speed, delays, and terrain ensure perfect synchronization.

3. Integrated Telemetry

  • Real-time data from OBD-II readers and phone accelerometers is displayed seamlessly.
  • Data is logged locally and online for post-drive analysis and group comparison.

Recent Updates

Camera Controller Improvements

  • Fixed animation status management using direct camera updates when animations are in progress
  • Implemented better position calculation with screen-relative positioning
  • Improved camera following during navigation with dynamic bearing adjustments
  • Added dynamic bottom padding (~30% from bottom) similar to Google Maps

Version Display on Splash Screen

  • Added version number to both Android and iOS splash screens
  • Synchronized version display across platforms
  • Implemented automatic version text generation from constants

Project Structure

lib/
├── config/                  # Configuration files
├── screens/                 # UI screens and controllers
├── services/                # Core services
│   ├── api/                 # External API integration
│   ├── location/            # Location services
│   └── navigation/          # Navigation services
├── state/                   # State management
│   ├── navigation/          # Navigation state
│   ├── search/              # Search state
│   └── weather/             # Weather state
├── theme/                   # Theme system
├── utils/                   # Utility functions
└── widgets/                 # Reusable UI components

Documentation

  • Project Roadmap: Tracks development progress and upcoming features.
  • Code Index: Complete breakdown of modules and services.
  • Consistency Guide: Establishes standards for structure, imports, and error handling.

Development Roadmap

Phase 1: MVP (Current)

  1. Basic Navigation

    • ✅ Map display with location tracking
    • ✅ Search and route display
    • ✅ Turn-by-turn guidance
  2. Weather Integration

    • ✅ Precipitation data overlay
    • ✅ Basic weather animations
    • ✅ Weather-aware routing

Phase 2: Enhanced Features

  1. Improved Error Handling

    • Error hierarchies
    • User-friendly messages
    • Better error recovery
  2. State Management

    • Dependency injection
    • Repository pattern
    • Enhanced caching

Phase 3: Advanced Features

  1. Group Features

    • Real-time coordination
    • Shared waypoints
    • Group messaging
  2. Performance

    • Offline support
    • Background updates
    • Battery optimization

Installation & Setup

Prerequisites

  • Flutter SDK
  • Dart
  • Mapbox API Key
  • OpenWeather API Key

Setup Instructions

  1. Clone the repository:
    git clone https://github.com/IlliquidAsset/Rali.git
    cd Rali
    
  2. Install dependencies:
    flutter pub get
    
  3. Configure environment variables in .env or set them dynamically.
  4. Generate version text image (Android):
    cd temp_work
    ./generate_version_image.sh
    
  5. Run the application:
    flutter run
    

Key Features

  • Dynamic Route Calculation (RouteService)
  • Real-Time Weather Overlays (WeatherAPI)
  • Custom Driving Modes (NavigationTypes)

Search & Geolocation

  • Place Search & Reverse Geocoding (SearchService)
  • Live Location Tracking (LocationService)

UI Components

  • Interactive Map Screen (MapScreen)
  • Search Bar Widget (SearchBar)
  • Control Buttons & Navigation Overlay (ControlButtonsGroup, NavigationOverlay)

License

© 2025 Kendrick Kirk, TBA, LLC. All rights reserved.

This software is proprietary and confidential. Unauthorized copying, distribution, modification, or use of this software in source or binary forms, via any medium, is strictly prohibited without explicit written permission from the author(s).

About the Developer

I'm not a developer by trade, but I am a passionate car enthusiast with a vision for revolutionizing the way we experience group drives. I'm actively seeking partnerships with developers and entrepreneurs who share my passion for cars and driving. Being a true gearhead isn't just preferred—it's essential.

Contact

For partnership inquiries or questions, reach out to Kendrick Kirk at kkirk@duck.com.

Libraries

config/app_config
/////////////////////////////////////////////////////////////////////////////////
config/constants
config/environment
controllers/camera_controller
controllers/map_controller
///////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////
firebase_options
main
///////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////
models/group
/////////////////////////////////////////////////////////////////////////////////
models/rali_route
/////////////////////////////////////////////////////////////////////////////////
models/rali_user
/////////////////////////////////////////////////////////////////////////////////
models/report
/////////////////////////////////////////////////////////////////////////////////
models/user_location
/////////////////////////////////////////////////////////////////////////////////
screens/auth/auth_wrapper
/////////////////////////////////////////////////////////////////////////////////
screens/auth/forgot_password_screen
/////////////////////////////////////////////////////////////////////////////////
screens/auth/sign_in_screen
/////////////////////////////////////////////////////////////////////////////////
screens/auth/sign_up_screen
/////////////////////////////////////////////////////////////////////////////////
screens/map/map_screen
///////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////
services/api/mapbox_api
///////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////
services/api/weather_api
/////////////////////////////////////////////////////////////////////////////////
services/auth/auth_service
/////////////////////////////////////////////////////////////////////////////////
services/firebase/group_service
/////////////////////////////////////////////////////////////////////////////////
services/firebase/report_service
/////////////////////////////////////////////////////////////////////////////////
services/firebase/route_service
/////////////////////////////////////////////////////////////////////////////////
services/firebase/user_service
/////////////////////////////////////////////////////////////////////////////////
services/firebase_providers
services/foreground_location_service
services/hazard_service
///////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////
services/location/location_service
/////////////////////////////////////////////////////////////////////////////////
services/navigation/route_details
///////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////
services/navigation/route_service
/////////////////////////////////////////////////////////////////////////////////
services/search_service
///////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////
state/search/search_controller
/////////////////////////////////////////////////////////////////////////////////
state/search/search_state
/////////////////////////////////////////////////////////////////////////////////
state/weather/weather_controller
/////////////////////////////////////////////////////////////////////////////////
state/weather/weather_state
/////////////////////////////////////////////////////////////////////////////////
theme/rali_animations
/////////////////////////////////////////////////////////////////////////////////
theme/rali_colors
/////////////////////////////////////////////////////////////////////////////////
theme/rali_elevations
/////////////////////////////////////////////////////////////////////////////////
theme/rali_spacing
/////////////////////////////////////////////////////////////////////////////////
theme/rali_theme
/////////////////////////////////////////////////////////////////////////////////
theme/rali_typography
/////////////////////////////////////////////////////////////////////////////////
utils/color_utils
/////////////////////////////////////////////////////////////////////////////////
utils/error_msg
/////////////////////////////////////////////////////////////////////////////////
utils/format_utils
utils/map_utils
utils/position_utils
/////////////////////////////////////////////////////////////////////////////////
widgets/control_button
/////////////////////////////////////////////////////////////////////////////////
widgets/control_buttons_group
/////////////////////////////////////////////////////////////////////////////////
widgets/debug_overlay_widget
widgets/google_sign_in
///////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////
widgets/map_view
/////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////
widgets/route_confirmation
/////////////////////////////////////////////////////////////////////////////////
widgets/route_stats_drawer
/////////////////////////////////////////////////////////////////////////////////
widgets/saved_destinations
///////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////
widgets/speed_display_widget
/////////////////////////////////////////////////////////////////////////////////
widgets/upcoming_steps_drawer
/////////////////////////////////////////////////////////////////////////////////