A Microservices-Based Patient Management System
CareConnect is a scalable, backend-focused healthcare platform built using microservices architecture. It enables seamless interaction between patients, doctors, appointments, and notifications, while demonstrating real-world distributed system concepts such as API Gateway, asynchronous messaging, containerization, and service-to-service communication.
This project is designed to showcase production-grade backend engineering practices.
- Patient registration & authentication
- Secure patient profile management
- JWT-based protected routes
- Doctor onboarding & authentication
- Doctor profile and specialization management
- Secure access using middleware
- Create and manage appointments
- Validates patient & doctor existence via service calls
- Publishes events to message broker
- Listens to appointment events
- Sends email notifications asynchronously
- Decoupled from core business logic
- Central entry point for all client requests
- Routes traffic to appropriate services
- Simplifies frontend integration
- Built with React + Vite
- Separate dashboards for doctors and patients
- Auth-protected routes
- Microservices Architecture
- API Gateway Pattern
- Event-Driven Communication
- Loose Coupling via Message Broker
- Containerized using Docker
Client → API Gateway → Services
├── Patient Service
├── Doctor Service
├── Appointment Service
└── Notification Service (Async)
- Node.js
- Express.js
- MongoDB
- JWT Authentication
- RabbitMQ (Event Messaging)
- React
- JavaScript
- Tailwind
- Docker
- Docker Compose
- Service-to-Service Communication
- Container Networking
CareConnect
├── gateway
├── patient-service
├── doctor-service
├── appointment-service
├── notification-service
├── client
├── docker-compose.yaml
└── arc.md
Each service follows a clean structure:
├── app.js
├── controllers
├── models
├── routes
├── middleware
├── db
├── service (RabbitMQ)
└── Dockerfile
- REST APIs between Gateway and services
- Service-to-service HTTP validation (Doctor ↔ Patient)
-
RabbitMQ for:
- Appointment created events
- Notification triggers
-
Improves scalability & fault tolerance
- Docker
- Docker Compose
docker-compose up --builddocker-compose downEach service runs in its own container and communicates via Docker’s internal network.
- JWT-based authentication
- Route-level authorization middleware
- Secure environment variable handling
- No direct service exposure to clients
This project demonstrates:
- Real-world microservices design
- API Gateway implementation
- Event-driven architecture
- Asynchronous messaging with RabbitMQ
- Dockerized production-style setup
- Clean code organization & separation of concerns
- Replace REST with gRPC for inter-service communication
- Implement Rate Limiting & Circuit Breakers
- Add Observability (Prometheus, Grafana)
- Migrate Gateway to Nginx










