Mohamed BardouniProduct Engineer

Sanad Therapy: A Mental-Health App with Video Sessions

A Flutter app published on Google Play for mental health: booking video sessions with therapists, chat, mood tracking, and a private journal.

FlutterRiverpodZegoCloudFirebase
Sanad Therapy: A Mental-Health App with Video Sessions

Context

A mental-health product holds the most sensitive data on a user's phone. A journal, a mood history, and session content are not ordinary records, and the app has to stay usable on a weak connection because people open it at the moment they actually need it.

Scope I disclose publicly

  • A Flutter app split into independent feature modules: booking, therapists, chat, mood, journal, subscription, community, and crisis.
  • Video sessions built on the ZegoCloud UIKit and its signalling plugin rather than a hand-rolled WebRTC stack.
  • A journal encrypted with a key held in the platform's secure storage, behind a biometric or PIN gate.
  • A local Hive cache alongside Dio requests, so reads start from the device before they touch the network.
  • Firebase for authentication, messaging, and analytics, plus a dedicated automated test for Google Play policy compliance sitting inside the test suite.

Decisions and trade-offs

  • Buying the video layer instead of building it: reliable video calling is an infrastructure problem, and solving it in-house would have consumed the project.
  • Encrypting the journal behind a biometric lock, because the worst leak in this app is not a breached server — it is an unlocked phone in someone else's hand.
  • Reading from the local cache first, so the app stays usable on a bad network.
  • Keeping a store-policy compliance test in the suite, because a policy violation blocks a release exactly as hard as a bug does.
  • The trade-off: depending on an external video provider ties the product to their pricing and policies in exchange for far less development time.

The public evidence is the Google Play listing, with its feature description, developer details, and privacy disclosures. I do not repeat any description the store page itself does not support.

Check the public source
Disclosure: I publish no download counts, user numbers, or clinical outcomes. This is a software product and I make no medical claims.

Need something similar?

Send me the problem, the users, and the expected scope.