← All case studies

Case study · Healthcare · Telehealth & care coordination

A multi-tenant telehealth platform for clinicians and patients

Web and mobile apps where clinicians and patients chat in real time, book appointments and meet on video, with every organization’s data kept separate.

Client
Clinician Core
My role
Senior software engineer · current project
Employer
Zymr Systems Pvt. Ltd.

The problem

Care teams need to reach patients quickly, book time against shared calendars and meet face to face without switching between tools.

Several organizations use the same platform, so every record, permission and conversation has to stay inside its own organization, on web and on mobile.

What I owned

  • Building core features across the React web app and the React Native mobile app
  • Real-time chat over WebSockets, with push notifications through AWS SNS and Lambda
  • Designing the scheduling system on PostgreSQL
  • Integrating the Agora SDK for in-app video and audio calls
  • User management with RBAC permissions and multi-tenant data isolation

Architecture

ClientsAccessBackend on AWSData & mediaWeb appReactMobile appReact NativeAuth0authenticationReal-time chatWebSocketsPython backendscheduling · RBACNotificationsAWS SNS → LambdaPostgreSQLtenants · bookingsVideo & audioAgora SDKsign inchattokeneventsread · writevideo calls
Web and mobile clients sign in with Auth0, talk to a Python backend on AWS, chat over WebSockets, and join video calls through Agora.

Booking and holding an appointment

  1. A clinician or patient opens shared availability and picks a free slot.
  2. The scheduling service checks the slot against existing bookings and flags conflicts automatically.
  3. The booking is saved in PostgreSQL inside the organization’s own data, and a calendar invite goes out.
  4. As the meeting approaches and starts, its status updates live in both apps.
  5. Clinician and patient join an in-app video or audio call through Agora.

Key decisions

WebSockets for chat and live status

Messages and meeting-status changes appear instantly without the apps polling the server.

Push notifications through AWS SNS and Lambda

Users hear about new messages and calls even when the app is closed, and notification delivery is decoupled from the main API.

Scheduling on PostgreSQL

Transactions and relational constraints suit bookings, where two people must never end up with the same slot.

Tenant isolation and RBAC built into user management

Every request is scoped to an organization and a role, so one organization can never read another’s data.

Results

  • Real-time chat, push notifications, scheduling and video calls delivered across web and mobile
  • Multi-tenant data isolation and RBAC permissions across organizations
  • Active project: I’m still developing core features
  • React
  • React Native
  • Python
  • AWS SNS
  • AWS Lambda
  • Auth0
  • PostgreSQL
  • WebSockets
  • Agora

Client names and results are taken from my résumé. Architecture is simplified and shared without confidential details.