KAKhaled AshrafSoftware EngineerHire me
Projects

Service Marketplace

Khusm

Khusm is a mobile service marketplace where users browse categories, find providers, view branches, add services to cart, subscribe to plans, manage Khusm cards, complete payments, and track orders.

FlutterDartBLoC/CubitGetItDio

Stack depth

10+

tools and integrations

Product scope

Phone/password auth, OTP verification, password reset, and account deletion. Home data, service categories, provider search, and provider branches.

Stack

Technology stack

FlutterDartBLoC/CubitGetItDioFirebase MessagingAwesome NotificationsGoogle MapsDartzLocal Storage

Features

Key product features

  • Phone/password auth, OTP verification, password reset, and account deletion.
  • Home data, service categories, provider search, and provider branches.
  • Location permissions, saved coordinates, route opening, and direct provider calls.
  • Service browsing, cart management, checkout, and order/payment web views.
  • Subscription plans, current subscription state, and Khusm card activation.
  • Saved payment cards and order history with cancellation or repayment.
  • Notifications, FAQ, about, terms, contact, care team, settings, and language switching.

Architecture

Technical decisions

Used feature-based modules with data, datasource, repository, domain, usecase, presentation, and Cubit layers.

Centralized dependency injection with GetIt and functional error handling with Dartz.

Connected the app to `https://api.khusm.com/api/` with language-aware queries and token handling.

Integrated Firebase Cloud Messaging and notification permission flows for user updates.

Problem solving

Challenges and solutions

Provider discovery needed both search and physical branch navigation.

Implemented paginated provider/category flows with location permissions, branch locations, Google Maps navigation, and direct call actions.

The app combined subscriptions, cards, carts, payment cards, and orders in one user journey.

Separated modules by business domain and used Cubits/use cases to keep checkout, repayment, cancellation, and card flows maintainable.

Screenshots / video

Product media

Media shown here comes from the project source folders in this workspace.