Project 01
Dizli
A ride-hailing and delivery platform connecting customers with drivers in Samawah, Iraq.
Flutter · Node.js · TypeScript · PostgreSQL · Prisma
Overview
Dizli is a local mobility and delivery product. Customers book a ride or send an errand through one app. Drivers pick up those jobs through another. A Node.js API and a PostgreSQL database sit in the middle.
It is built for everyday use in Samawah — taxis, deliveries, and a few related services — not as a national marketplace. I work on the software: the two Flutter apps, the TypeScript API, and the data model.
Features
- Customer home. Services, wallet balance, search, and recent orders on one screen.
- Rides and deliveries. Request a taxi, confirm pickup and drop-off, or send a shopping list to a nearby store.
- Driver app. Go online, see nearby jobs, follow a map, and keep a daily summary of trips and deliveries.
- Chat. Customer and driver can message on an active order.
- Wallet. Balance, top-up, and a fare breakdown before the order is confirmed.
- Driver profile. Ratings, trip counts, and vehicle details visible to the customer.
Screens
Click any image to open it full size.
My role
I am the software developer on Dizli. I implement the customer app, the driver app, and the backend they talk to.
That includes screens and navigation in Flutter, REST endpoints in Node.js and TypeScript, and the PostgreSQL schema through Prisma — orders, users, drivers, wallet entries, and chat. I do not claim the marketing site copy or growth numbers as my work.
Technologies
- Flutter
- Node.js
- TypeScript
- PostgreSQL
- Prisma
Development
The hard part is keeping two clients on one order. A customer request has to show up for a driver, survive accept/cancel, and remain consistent in chat, fare, and wallet.
Maps and “going online” have to work on ordinary Android phones and uneven networks. Both apps are Arabic-first and RTL. I kept the API small and explicit — order state lives in Postgres, and the apps read from that — instead of duplicating business rules in each client.