Discover nearby vehicles using Bluetooth Low Energy (BLE) and talk over low-latency WebRTC voice calls β no phone numbers required.
- Overview
- Features
- Screenshots
- Feature Demos
- Architecture
- Tech Stack
- How It Works
- Getting Started
- Privacy
- Project Status
- Contributing
- Author
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.
|
Automatically discovers CarTalk users within Bluetooth range. Each vehicle can be identified using:
|
Uses WebRTC to establish low-latency, peer-to-peer audio communication between two vehicles. |
|
Built around vehicle-based identification rather than exposing personal phone numbers. |
BLE is used to scan for nearby CarTalk devices and read their advertising information. |
|
Firebase powers the signaling layer required to establish WebRTC connections between peers. |
Built entirely with Jetpack Compose, Material 3, and modern Android architecture patterns. |
|
π Vehicle Discovery & Connection cartalkCall.mp4Discovering and connecting with a nearby CarTalk user. |
π Real-Time Voice Communication cartalkvideo1.mp4Real-time voice communication using WebRTC. |
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 |
|
Android
|
Architecture
|
Nearby Comms
|
Voice & Backend
|
| 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.
1. Clone the repository
git clone https://github.com/mohitdamke/CarTalk.git2. 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.jsonto 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
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.
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.
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.
Mohit
Android Developer
Made with β€οΈ using Kotlin & Android
π CarTalk β Connect with the cars around you.





