A scalable, containerized microservices-based healthcare web application that supports patient appointments, user management, feedback, and pharmacy integration. Built with .NET Core (C#), React, Docker, and PostgreSQL.
HealthcareSystem-main/
├── EventStore/ # Event sourcing related logic
├── IntegrationWithPharmacies/ # External pharmacy API integration
├── PatientWebApplication/ # Core microservices and web application
│ ├── AppointmentMicroserviceApi/
│ ├── FeedbackMicroserviceApi/
│ ├── GatewayApi/
│ ├── HealthCareDatabase/
│ ├── SearchMicroserviceApi/
│ ├── UserMicroserviceApi/
│ ├── WebAppClientApp/ # Frontend React client
│ └── *.Tests # Integration and Selenium tests
├── Dockerfile.* # Dockerfiles for various services
├── docker-compose*.yml # Compose files for dev, test, and prod
└── README.md
- C# / .NET Core – Microservices API
- Entity Framework Core – ORM for data access
- PostgreSQL – Relational database
- RabbitMQ (if included) – Event-driven architecture
- React (v16.11.0) – UI Library
- Redux / Thunk – State Management
- React-Router – Client-side routing
- Bootstrap / Reactstrap – UI components
- Axios – HTTP client
- Docker – Containerization
- Docker Compose – Multi-container setup
- Express – Node.js server for SSR fallback
- .NET 6 SDK
- Node.js v14+
- Docker & Docker Compose
- PostgreSQL (or use Docker container)
git clone https://github.com/your-org/HealthcareSystem.git
cd HealthcareSystem-main
docker-compose -f docker-compose.dev.yml up --build
You can switch to
docker-compose.yml
ordocker-compose.test.yml
depending on the environment.
Navigate to the frontend React app:
cd PatientWebApplication/WebAppClientApp/client-app
npm install
npm start
Runs the React app in development mode at http://localhost:3000
The application uses JWT-based authentication with user roles managed via the UserMicroserviceApi
.
Service | Port (if standalone) | Description |
---|---|---|
GatewayApi |
5000 (default) | API Gateway for routing to microservices |
UserMicroserviceApi |
5001 | Handles user registration/authentication |
AppointmentMicroserviceApi |
5002 | Manages patient appointments |
FeedbackMicroserviceApi |
5003 | Collects patient feedback |
SearchMicroserviceApi |
5004 | Enables search functionality |
To run automated tests:
cd PatientWebApplication
dotnet test
Environment files (.env
, .env.development
, .env.production
) are included under client-app/
. Set the appropriate API endpoints and ports.
(Insert UI screenshots here if desired)
- The frontend uses Redux and React Router v5.
- SSR/Express fallback is implemented via
server.js
. - For pharmacy integration, see
IntegrationWithPharmacies/
.
This project is licensed under the MIT License - see the LICENSE file for details.