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.
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

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 alertsGET /api/patients– List patientsGET /api/patients/{id}– Get patient by IDPOST /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 reportsGET /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.