rmb
ES

Med Monitor App

Med Monitor App is a cloud-native system designed to monitor patient vital signs, manage alerts, and generate summary reports. It leverages a microservices architecture with real-time messaging integrations and secure cloud storage. The system provides both a responsive client dashboard and REST APIs for interacting with patient, alert, vital sign, and report data.

Med Monitor App
AngularSpring BootKafkaRabbitMQAWSOracle DBDocker

Project Overview

  • Angular Frontend Client: A responsive web application for dashboards, alerts, and patient data visualization.
  • Backend-for-Frontend (BFF): A Spring Boot service connecting the frontend to microservices and handling aggregation.
  • Patient Service: Manages patient records and consumes status updates.
  • Vital Signs Service: Handles ingestion, storage, and distribution of vital signs.
  • Alert Service: Generates and manages alerts triggered by vital sign thresholds.
  • Summary Report Service: Creates and stores JSON-based summary reports in AWS S3.

Tech Stack

Frontend:

  • Angular 18, RxJS, Tailwind CSS
  • MSAL (Azure AD authentication)

Backend & Microservices:

  • Java 23, Spring Boot 3, Maven
  • Kafka & RabbitMQ for messaging
  • Oracle Database (with wallet)
  • AWS S3 for report storage

Infrastructure:

  • Docker for containerization
  • AWS API Gateway for client routing
  • Externalized configuration and secrets management

Architecture Highlights

  • Microservices with Spring Boot 3
  • Event-driven communication via Kafka and RabbitMQ
  • Data persistence in Oracle DB (with wallet for secure connection)
  • Cloud storage and hosting with AWS (API Gateway, S3)
  • Authentication via Azure AD (MSAL)
  • Containerized deployment with Docker

Architecture Diagram


Features

Frontend Client

  • Dashboard of live patient vital signs and alerts
  • Patient detail and alert views
  • User authentication (Azure AD)
  • Responsive navigation and layout

Backend-for-Frontend (BFF)

  • REST API for patient, alert, and vital signs data
  • CORS and security handling
  • Aggregates microservice data for frontend consumption

Patient Service

  • CRUD operations for patient data
  • Consumes patient status updates from RabbitMQ
  • Initializes sample patient data on startup

Vital Signs Service

  • Generates and stores patient vital signs
  • Produces Kafka messages and RabbitMQ summaries
  • REST APIs for data management

Alert Service

  • Consumes vital signs and generates alerts
  • Publishes alerts to Kafka and RabbitMQ
  • REST endpoints for alert management

Summary Report Service

  • Consumes RabbitMQ messages to generate reports
  • Stores JSON reports in AWS S3
  • REST APIs for listing and downloading reports

API Entry Points Overview

BFF

  • GET /api/alerts – List alerts
  • GET /api/patients – List patients
  • GET /api/patients/{id} – Get patient by ID
  • POST /api/vital-signs – Create new vital sign

Patient Service

  • Full CRUD on /api/patients

Vital Signs Service

  • Full CRUD on /api/vital-signs
  • GET /api/vital-signs/patient/{patientId}

Alert Service

  • Full CRUD on /api/alerts

Summary Report Service

  • GET /api/reports – List reports
  • GET /api/reports/{id} – Download report

Best Practices

  • Layered Architecture: Controllers, services, repositories, and configuration layers are clearly separated.
  • Dependency Injection: Constructor injection using Lombok or Spring annotations for testability.
  • Configuration Management: All sensitive data and environment variables are externalized. No hardcoded credentials.
  • Exception Handling: Centralized handling for REST endpoints.
  • Logging & Monitoring: SLF4J logging and cloud-native monitoring integration.
  • Testing: Unit and integration tests for services and repositories.
  • Containerization: Docker ensures consistent, portable deployments.
  • Code Quality: Java and Angular code follow industry standards and maintain modularity.
  • Documentation: Clear API endpoints and internal documentation for maintainability.
Published: 01/04/2025

Related Projects

Chatbot App
A full-stack AI-powered chatbot, designed for fast, friendly, and interactive support.
Next Store
A scalable e-commerce web application built with Next.js and PostgreSQL, featuring product listings, user authentication, and a shopping cart system.
Movies App
A modular, scalable Angular 20+ application for browsing, searching, and managing movies. Built with best practices for maintainability, performance, and clarity.