Bilkent University · CS 491/492 Senior Design · T2534

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.

The Concept

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.

Users

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
How It Works

From request to destination

1

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.

2

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.

3

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

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.

5

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.

Features

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.

Tech Stack

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.

Team

The people behind DriveMe

UG

Ufuk Baran Güler

Team Member

EA

Eda Alparslan

Team Member

EE

Ege Kaan Eren

Team Member

Berfin Çetinkaya

Team Member

DS

Duru Solakoğlu

Team Member

İK

Prof. İbrahim Körpeoğlu

Academic Advisor · Bilkent University

TT

Tağmaç Topal

Innovation Expert

Deliverables

Project reports

Assessment of Innovation Form

Open PDF

Project Information Form

Open PDF

Detailed Design Report

Open PDF

Project Specification Document

Open PDF

Analysis & Requirements Report

Open PDF

User Manual

Open PDF

Meeting Minutes — April 21

Open PDF

Meeting Minutes — March 13

Open PDF

Meeting Minutes — Nov 26

Open PDF

Meeting Minutes — Oct 28

Open PDF

Meeting Minutes — Dec 24

Open PDF