Khidmat — خدمت
Local-first Flutter app that keeps worker contacts, service appointments and job records on the phone — with full Urdu and English support.

Khidmat keeps worker contacts, service appointments and work records on the phone in English or Urdu. Users pick one of two roles — Worker, to organise client jobs, or Work giver, to plan services with people they know. Contacts are added by hand with a phone number and service, then searched by name, city, English, Urdu or Roman Urdu service words. From a contact the user can call, send an SMS, share details or plan an appointment; jobs then record the date, address, amount and notes and move through a status as the work progresses. Version 2.0.0 removed the Supabase backend entirely, so no account, server, login or connection setup is needed and every record works without a network. Language choice survives restart and Urdu uses a right-to-left layout.
Key Features
- Two role modes — Worker and Work giver — each with its own dashboard
- Contact search across name, city, English, Urdu and Roman Urdu service terms
- One-tap call, SMS and share from any saved contact
- Appointment and job records with address, amount, notes and progress status
- Full Urdu / English switching with right-to-left layout that persists across restarts
- JSON backup and restore with validation and confirmation before replacing records
- Queued writes with a previous copy retained for recovery
Repository Topics
Challenges
Removing a live backend without losing the product: keeping records durable on-device, making writes crash-safe, and giving users a reliable export path before they uninstall.
Results
A shippable Android APK (ARM64, ARM32 and x86-64) that runs fully offline, with the iOS project included and a clearly documented path to TestFlight distribution.