Osta (أُسطى) — Car Services Marketplace

Featured

Built by Youssef Salem Hassan

app delivered by a team of 5
24 days
app delivered by a team of 5
screens
53
screens
API routes
78
API routes
backend tests
414
backend tests
01

Overview

Osta (أُسطى) — Car Services Marketplace — Two-sided car-services marketplace for Egypt — find nearby service centers on a map, book a slot, track the repair live; centers manage bookings, catalog, and team. DEPI graduatio…

Two-sided car-services marketplace for Egypt — find nearby service centers on a map, book a slot, track the repair live; centers manage bookings, catalog, and team. DEPI graduation project.

My role

Team lead: built the entire Laravel backend and the Flutter foundation (Clean Architecture + BLoC, networking, auth, role-aware routing, CI), then wired every screen to the live API.

02

The Problem

Car maintenance in Egypt still runs offline: trust is word-of-mouth, prices are negotiated on the spot, and booking means phone calls. Workshops are invisible online and owners have no way to compare, book, or track a repair.

03

The Solution

One Flutter app hosting two role shells. Customers discover centers on a live map (PostGIS nearby search), pick services and a time slot, pay through Paymob hosted checkout, and follow the booking status in real time over WebSockets. Service centers get onboarding, a dashboard, a bookings queue with accept/assign/complete actions, catalog and offers management, working hours, team roster, and a product store. Arabic-first with RTL, light/dark themes, and a Laravel 12 API behind Sanctum auth.

Technologies used

21

Languages

DartPostgreSQL

Platforms

Flutterflutter_blocMaterial Design 3

Architecture & state

Clean ArchitectureBLoC/Cubitgo_routerget_it

Backend, data & cloud

dioLaravel 12

Tooling & delivery

GitHub Actions

Experience & UI

Arabic / English

Other

Google MapsPHPPostGISSanctumPaymobReverb WebSocketsFCMFilament
04

Key Outcomes

  • End-to-end booking loop live: map → center profile → service + slot → payment → live status, on a real backend.
  • 53 production screens across customer and business roles, Arabic/English with RTL, light and dark.
  • Laravel 12 API (78 routes) with PostgreSQL/PostGIS geosearch, Paymob payments, Reverb WebSockets, FCM push, and a Filament admin panel.
  • Led a 5-person team that delivered the app in 24 days on a backend I built on my own, with 400+ automated backend tests and CI gating format, analysis, and tests.

Articles about this project

More projects