Back to home

BloomCare

A full-stack mental-health teletherapy platform connecting patients with licensed doctors for virtual therapy sessions — with AI-assisted doctor matching and a RAG assistant for clinicians.

Visit live site

Architecture

Frontend

ReactViteReact RouterTailwind CSSAxios
Patient- and doctor-facing SPA built with React + Vite and React Router for role-based navigation.
Booking and therapy-session management flows consuming the REST API, with loading and error states handled throughout.
Responsive interface styled with Tailwind CSS.

Backend

FastAPIPythonSQLAlchemyAlembicMySQLRedis2FAJWT / RBACAI matchingRAG (LLM)Swagger / OpenAPIRabbitMQPrometheus
Python FastAPI service exposing auto-generated Swagger / OpenAPI documentation for every endpoint.
SQLAlchemy 2.0 ORM with Alembic migrations over a MySQL model — patients, doctors, schedules, appointments, therapy sessions, and electronic medical records.
AI-powered patient–doctor matching that recommends the most suitable therapist from each patient's onboarding preferences and responses.
Retrieval-Augmented Generation (RAG) assistant answering doctors' clinical questions, grounded in mental-health encyclopedias and reference material.
Two-factor authentication (2FA) on top of JWT, role-based access control (RBAC), and audit logging to meet data-protection requirements in a regulated healthcare context.
Event-driven alerts and transactional email — e.g. when an appointment is created — dispatched asynchronously through a background worker on a RabbitMQ queue.
Redis for caching and slowapi-based rate limiting; Prometheus instrumentation for metrics; file storage via an S3-compatible client backed by Cloudflare R2.

Deployment

Dockerdocker-composeGitLab CI/CDNginxCloudflare WorkersCloudflare R2GCP Cloud SQL
Containerised with Docker and orchestrated via docker-compose (API, MySQL, Redis, RabbitMQ, Nginx).
CI/CD through GitLab, publishing images to the GitLab Container Registry.
Served on Cloudflare (Workers + R2 object storage) with GCP Cloud SQL as the managed MySQL database.
The FastAPI backend is maintained in a private repository — only the live application is linked.

Screenshots

BloomCare screenshot
BloomCare screenshot