Enterprise Platform

Laboratory Management System

Full-stack clinical lab platform with WhatsApp notifications, Keycloak RBAC, and automated patient report delivery.

PythonFastAPINext.jsTypeScriptPostgreSQLKeycloakWhatsApp APINode.jsDockerNginxGCPGitHub Actions

Status

Live

Deployment

Live on GCP

Auth

Keycloak RBAC

Notifications

WhatsApp API

Services

5 Docker containers

The Problem

Clinical labs struggle with manual test tracking, paper-based patient records, and no automated communication with patients — leading to delays, errors, and poor patient experience.

The Solution

A unified platform with a FastAPI backend, Next.js frontend, and a dedicated WhatsApp microservice (Node.js). Admins manage labs, patients, and test results from a single dashboard. Patients receive automated WhatsApp messages for appointments, reports, and billing — all secured via Keycloak group-based RBAC.

Features

Patient Management

  • Register and manage patient records with full history
  • Track test orders and sample collection status
  • Generate, store, and deliver lab reports digitally
  • Billing and invoice management per patient

Lab Administration

  • Multi-lab support with owner-based access isolation
  • Keycloak group-based role management per lab
  • Admin dashboard for system-wide control and analytics
  • Lab-level configuration — owner_username, keycloak_group_id

WhatsApp Notifications

  • Dedicated Node.js WhatsApp microservice
  • Automated patient notifications — report ready, appointments
  • Real-time delivery status tracking
  • Decoupled from main API for fault tolerance

Infrastructure & DevOps

  • 5 Docker containers: FastAPI, Next.js, PostgreSQL, Keycloak, WhatsApp
  • GitHub Actions CI/CD pipeline for automated deploys
  • Nginx reverse proxy with SSL via Certbot
  • Deployed and tested end-to-end on Google Cloud Platform

Architecture

FastAPI backend with patient, admin, and system routers — all JWT-verified via Keycloak. PostgreSQL stores all relational data with auto-migration on startup (ALTER TABLE IF NOT EXISTS). Next.js frontend communicates through a proxy layer. A separate Node.js WhatsApp service handles all notification delivery asynchronously. All five services orchestrated via Docker Compose on GCP with Nginx as the entry point.