KAKhaled AshrafSoftware EngineerHire me
Projects

Teletherapy Marketplace

Estaraht

Estaraht connects patients with therapists for remote mental health sessions, appointment booking, secure chat, video/audio calls, payments, subscriptions, session files, notifications, and reviews. One Flutter codebase ships patient and doctor app flavors.

FlutterDartGetXSupabaseFirebase

Stack depth

12+

tools and integrations

Product scope

Patient and doctor flavors from one codebase. Therapist discovery by specialty, location, demand, and search.

Estaraht doctor app screen

Stack

Technology stack

FlutterDartGetXSupabaseFirebaseAgoraStripeGoogle PayApple PayDioGoogle MapsFCM

Features

Key product features

  • Patient and doctor flavors from one codebase.
  • Therapist discovery by specialty, location, demand, and search.
  • Appointment booking with availability slots and payment/session package checks.
  • Agora-powered video and audio sessions with incoming-call handling.
  • Secure chat with media and file support.
  • Doctor subscriptions, finance screens, bank details, withdrawal, and income reporting.
  • English, Arabic, and French localization.

Architecture

Technical decisions

Used compile-time app flavoring to control startup flow, routes, Firebase options, package IDs, and role-specific screens.

Organized the codebase into shared infrastructure, auth, patient, doctor, video call, and shared service layers.

Combined Supabase data/storage workflows with Firebase auth, messaging, crash reporting, and app-service integrations.

Centralized payment, pricing, reviews, notifications, session files, and doctor-rating data through shared services and migrations.

Problem solving

Challenges and solutions

Shipping two role-specific apps without duplicating all mobile infrastructure.

Built patient and doctor flavors on top of shared core, auth, payment, chat, notifications, and media services.

Coordinating appointment state, payments, session packages, and live calls.

Kept booking, payment, session balance, and call timing rules explicit in the app flow so users land in the correct state.

Screenshots / video

Product media

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

Estaraht doctor app screen
Estaraht doctor appointments screen
Estaraht patient app screen
Estaraht patient booking screen