When you can't drive, we drive. You and your car.
Not Uber. Not a taxi. It's YOUR car — we just find you a driver.
Whether your license is suspended, you're on medication, recovering from surgery, too tired, or simply prefer not to drive, DriveMe sends a vetted professional driver to your location. They drive your own vehicle to your destination.
DriveMe is not a taxi.
DriveMe works for any situation where getting behind the wheel isn't an option for you.
DriveMe — the difference
A licensed driver meets you at your car and drives you and your vehicle to your destination. One trip. No logistics, no hassle.
More use cases than you'd think
Suspended license · Post-surgery recovery · Medication side effects · Extreme fatigue · Medical appointments · Elderly drivers · Any situation where you cannot safely drive.
Verified & trusted
Every driver submits criminal records, identity documents, and a valid license. Admins manually approve each applicant before they can accept any trip.
Designed around Turkish transportation law
In Turkey, informal commercial passenger transport by private individuals (peer-to-peer ridesharing) is prohibited. DriveMe was architected from day one to comply: the driver is a licensed professional, and the vehicle belongs to the passenger — making it structurally equivalent to a chauffeur service, not a rideshare.
All user data is handled in compliance with KVKK (Turkish personal data protection law) and GDPR, including end-to-end encryption, minimal data retention, and explicit consent flows.
Two roles, one platform
🧍 Passengers (vehicle owners)
- ✓ Register their vehicle
- ✓ Submit a trip offer: pickup, destination, vehicle, and price
- ✓ Wait for a nearby driver to accept
- ✓ Verify the driver at pickup with a 4-digit code
- ✓ Track the trip in real time and pay cash on arrival
- ✓ Rate the driver after the trip
🚘 Drivers
- ✓ Register with identity + criminal record + driving license
- ✓ Get admin-approved before going live
- ✓ Set a preferred working radius
- ✓ Browse nearby passenger offers on the map and accept one
- ✓ Meet passanger at pickup location and verify them with a 4-digit code
- ✓ Complete the trip and confirm cash receipt
From request to destination
Passenger submits a trip offer
The passenger pins their pickup location, sets the destination, selects their registered vehicle, and names their price. The offer is broadcast to nearby available drivers.
Nearby drivers see the offer Real-time
Drivers within their configured radius see the offer appear on their map view. They can review the route, distance, and price before deciding.
A driver accepts → MATCHED
The first driver to accept the offer claims the trip. Both parties are notified immediately and the trip moves to MATCHED state.
4-digit code verification at pickup Security
When the driver arrives, both parties confirm each other's identity via a 4-digit code displayed in-app. Only after mutual confirmation does the trip officially begin and GPS tracking activate.
Arrival, cash payment, rating
The passenger ends the ride at the destination. The driver confirms receipt of cash in-app. The passenger then rates the driver — scores feed into the public driver profile.
Built for safety and trust
Code trip start
A unique 4-digit code is generated per trip. Driver and passenger must both confirm before any trip begins — preventing impersonation and false starts.
Real-time GPS tracking
Location is streamed via WebSocket with sub-3-second updates.
Dynamic pricing engine
Fare range is calculated from distance and estimated duration. Drivers set their own price within this band — creating a transparent mini-auction.
Automatic penalties
Speed violations (taking too long vs. expected duration) and cancellations after match trigger automatic penalty charges — keeping both sides accountable.
Admin approval workflow
All driver and vehicle documents are reviewed manually by admins via the web panel before going live. Admins can approve, reject with a reason, or re-request documents.
Driver ratings
After every completed trip, passengers rate their driver on a 5-star scale. Ratings are averaged and displayed publicly, driving quality across the platform.
Radius-based matching
Drivers configure how far they're willing to travel to pick up a request. Only relevant jobs appear on their map — no noise, no dead miles.
What it's built with
Flutter (Android)
Single codebase for both passenger and driver apps. Targets Android API 8.0+. Real-time map and WebSocket integration built in.
Spring Boot
RESTful API backend with JWT authentication, role-based access control, and modular service architecture.
PostgreSQL
Primary database. Stores users, trips, offers, documents, and ratings with full audit history.
Redis
In-memory store for active driver locations. Enables sub-3-second GPS update delivery to passengers.
Apache Kafka
Event bus for trip state changes, notifications, and async service-to-service communication.
MinIO
S3-compatible object storage for driver and vehicle documents (ID photos, criminal records, license scans).
Google Maps API
Route rendering, geocoding, and real-time location display inside both apps.
React Admin Panel
Vite + React web interface for admins to review documents, manage users, approve drivers and vehicles.
The people behind DriveMe
Ufuk Baran Güler
Team Member
Eda Alparslan
Team Member
Ege Kaan Eren
Team Member
Berfin Çetinkaya
Team Member
Duru Solakoğlu
Team Member
Prof. İbrahim Körpeoğlu
Academic Advisor · Bilkent University
Tağmaç Topal
Innovation Expert