Skip to content

Latest commit

Β 

History

17 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸš— CarTalk

Real-time voice communication between nearby vehicles

Discover nearby vehicles using Bluetooth Low Energy (BLE) and talk over low-latency WebRTC voice calls β€” no phone numbers required.


Kotlin Platform Jetpack Compose Firebase WebRTC


Status License PRs Welcome


CarTalk App Demo

▢️ Click the thumbnail to watch the full demo


πŸ“‘ Table of Contents


πŸ” Overview

CarTalk is an Android application that lets drivers traveling near each other discover one another and start a voice call β€” without ever exchanging phone numbers.

Vehicles are identified by their car model and vehicle number instead of personal contact info.

Capability Powered by
πŸ”΅ Nearby vehicle discovery Bluetooth Low Energy (BLE)
πŸ“‘ Proximity estimation RSSI signal strength
πŸ“ž Real-time voice calls WebRTC (peer-to-peer)
πŸ”₯ Call signaling & backend Firebase
🎨 UI Jetpack Compose + Material 3

The flow is simple: Find a nearby vehicle β†’ Select it β†’ Start a voice call.


✨ Features

πŸ” Nearby Vehicle Discovery

Automatically discovers CarTalk users within Bluetooth range. Each vehicle can be identified using:

  • Vehicle number
  • Car model
  • Bluetooth signal strength

πŸ“ž Real-Time Voice Calling

Uses WebRTC to establish low-latency, peer-to-peer audio communication between two vehicles.

πŸ” Privacy Focused

Built around vehicle-based identification rather than exposing personal phone numbers.

πŸ“‘ BLE Proximity Detection

BLE is used to scan for nearby CarTalk devices and read their advertising information.

πŸ”₯ Firebase Signaling

Firebase powers the signaling layer required to establish WebRTC connections between peers.

🎨 Modern Android UI

Built entirely with Jetpack Compose, Material 3, and modern Android architecture patterns.


πŸ“Έ Screenshots

CarTalk Onboarding CarTalk Discovery CarTalk Incoming Call

CarTalk Calling CarTalk Connected Call CarTalk App Icon

Onboarding Β· Discovery Β· Incoming Call Β· Calling Β· Connected Β· App Icon

πŸŽ₯ Feature Demos

πŸ” Vehicle Discovery & Connection

cartalkCall.mp4

Discovering and connecting with a nearby CarTalk user.

πŸ“ž Real-Time Voice Communication

cartalkvideo1.mp4

Real-time voice communication using WebRTC.


πŸ— Architecture

CarTalk follows a modular Clean Architecture approach.

CarTalk
β”‚
β”œβ”€β”€ app                     β†’ Application entry point
β”‚
β”œβ”€β”€ core
β”‚   β”œβ”€β”€ common              β†’ Shared utilities and common components
β”‚   β”œβ”€β”€ domain              β†’ Shared domain models and abstractions
β”‚   β”œβ”€β”€ navigation          β†’ Application navigation
β”‚   β”œβ”€β”€ ui                  β†’ Shared UI components and design system
β”‚   └── firebase            β†’ Firebase-related functionality
β”‚
└── feature
    β”œβ”€β”€ onboarding          β†’ User and vehicle setup
    β”‚   β”œβ”€β”€ data
    β”‚   β”œβ”€β”€ domain
    β”‚   └── presentation
    β”‚
    β”œβ”€β”€ nearby               β†’ BLE advertising, scanning, discovery
    β”‚   β”œβ”€β”€ data
    β”‚   β”œβ”€β”€ domain
    β”‚   └── presentation
    β”‚
    └── calling              β†’ WebRTC voice calling
        β”œβ”€β”€ data
        β”œβ”€β”€ domain
        └── presentation

Data β†’ Domain β†’ Presentation
Every feature module keeps business logic independent from Android UI and infrastructure.


πŸ“‹ Module Responsibility Table (click to expand)
Module Responsibility
:app Application entry point and main navigation
:core:common Shared utilities and common components
:core:domain Shared domain models and abstractions
:core:navigation Application navigation
:core:ui Shared UI components and design system
:core:firebase Firebase-related functionality
:feature:onboarding User and vehicle setup
:feature:nearby BLE advertising, scanning and vehicle discovery
:feature:calling WebRTC voice calling

πŸ›  Tech Stack

Android

  • Kotlin
  • Android SDK
  • Jetpack Compose
  • Material 3
  • Compose Navigation
  • Kotlin Coroutines & Flow

Architecture

  • Clean Architecture
  • MVVM
  • Multi-module setup
  • Repository pattern
  • Dependency Injection

Nearby Comms

  • Bluetooth Low Energy
  • BluetoothLeScanner
  • BluetoothLeAdvertiser
  • RSSI proximity estimation

Voice & Backend

  • WebRTC (P2P audio)
  • Hilt (DI)
  • Firebase Realtime DB
  • Firebase Analytics
  • Firebase Crashlytics

🚦 Getting Started

Requirements

Requirement Notes
Android Studio Latest stable version recommended
Android SDK 26+ Minimum supported SDK
Kotlin Bundled with Android Studio
Physical Android device(s) Required β€” BLE + WebRTC don't work reliably on emulators

⚠️ A physical device is strongly recommended since CarTalk relies on real Bluetooth Low Energy hardware and real-time WebRTC communication.

Installation

1. Clone the repository

git clone https://github.com/mohitdamke/CarTalk.git

2. Open the project

Open the cloned project in Android Studio.

3. Configure Firebase

Add your Firebase configuration file to:

app/google-services.json

πŸ”’ Do not commit your google-services.json to a public repository.

4. Build the project

Sync Gradle and build the app.

5. Run on two physical devices

   Device A  ⇄  BLE Discovery  ⇄  Device B
   Device A  ⇄  Firebase Signaling  ⇄  Device B
   Device A  ⇄  WebRTC  ⇄  Device B

πŸ”’ Privacy

CarTalk is designed to minimize the personal information exposed during vehicle discovery β€” using vehicle info rather than directly exposing a phone number.

⚠️ Important: BLE discovery itself is not a security boundary. Anything placed in a BLE advertisement can potentially be read by any nearby Bluetooth scanner. Sensitive data should never be placed directly into BLE advertisements in production.


πŸ§ͺ Project Status

CarTalk is currently an MVP / experimental project, validating:

  • βœ… BLE-based nearby vehicle discovery
  • βœ… Vehicle identification
  • βœ… Proximity detection
  • βœ… Firebase signaling
  • βœ… WebRTC voice communication
  • βœ… Modular Android architecture

The project is intended as a foundation for further development.


🀝 Contributing

Contributions, suggestions, and improvements are welcome! If you find a bug or have an idea, feel free to open an issue or submit a pull request.


πŸ‘¨β€πŸ’» Author

Mohit
Android Developer



Made with ❀️ using Kotlin & Android

πŸš— CarTalk β€” Connect with the cars around you.

About

Real-time voice communication between nearby vehicles

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages