Building Microservices Architecture using Docker, implementing CI/CD pipelines using GitHub Actions, incorporating asynchronous communication using RabbitMQ and caching with Redis. Additionally, implementing rate limiting, creating a custom API gateway or reverse proxy, and documenting system architecture.
- The Healthcare Appointment Scheduling System employs a microservices architecture with Docker containers for modularization and scalability.
- CI/CD pipelines ensure automated and reliable deployment of updates and features.
- RabbitMQ enables asynchronous communication between services, enhancing system resilience and responsiveness.
- Redis caching optimizes performance by storing patient data and appointment schedules, reducing database load and latency.
- Rate limiting mechanisms manage system load and prevent overload, ensuring stability and responsiveness.
- A custom API gateway facilitates secure and efficient communication between services, providing features like authentication and request routing.
- Node.js - Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.
- Express.js - Express is a minimal and flexible Node.js web application framework that provides a robust set of features for web and mobile applications.
- Typescript - TypeScript extends JavaScript by adding types to the language.
- Zod - Zod is a TypeScript-first schema declaration and validation library.
- PostgreSQL - PostgreSQL, also known as Postgres, is a free and open-source relational database management system emphasizing extensibility and SQL compliance.
- Prisma - Open source Node.js and TypeScript ORM with a readable data model, automated migrations, type-safety, and auto-completion.
- Docker - Docker is a platform designed to help developers build, share, and run container applications.
- Redis - Redis is a source-available, in-memory storage, used as a distributed, in-memory key–value database, cache and message broker, with optional durability.
- RabbitMQ - RabbitMQ is another widely used open source message broker, employed by several companies worldwide.
- GitHub Actions - GitHub Actions is a continuous integration and continuous delivery (CI/CD) platform that allows to automate build, test, and deployment pipeline.
- Postman - Postman is an application that allows the testing of web APIs.
Healthcare-Appointment-Scheduling-System/
├── .github
└── workflows
└── cd.yaml
├── api-gateway
└── services/
├── auth/
├── prisma
├── src/
├── controllers
├── lib
├── routes
├── app.ts
├── index.ts
├── config.ts
├── tests
├── package.json
├── Dockerfile
├── user
├── prisma
├── src/
├── controllers
├── lib
├── routes
├── app.ts
├── index.ts
├── config.ts
├── tests
├── package.json
├── Dockerfile
├── email
├── prisma
├── src/
├── controllers
├── lib
├── routes
├── app.ts
├── index.ts
├── config.ts
├── tests
├── package.json
├── Dockerfile
├── appointment
├── prisma
├── src/
├── controllers
├── lib
├── routes
├── app.ts
├── index.ts
├── config.ts
├── queue.ts
├── redis.ts
├── tests
├── package.json
├── Dockerfile
├── EHR
├── prisma
├── src/
├── controllers
├── lib
├── routes
├── app.ts
├── index.ts
├── config.ts
├── queue.ts
├── redis.ts
├── tests
├── package.json
├── Dockerfile
├── notification
├── prisma
├── src/
├── controllers
├── lib
├── routes
├── app.ts
├── index.ts
├── config.ts
├── tests
├── package.json
├── Dockerfile
├── docker-compose.yaml
├── README.md
follow .env.example file for setup environment variables
docker-compose up
docker-compose -f kong-docker-compose.yml up
yarn run test .\tests\**\**\*
When push the code in the GitHub automatic run the actions
https://api.postman.com/collections/22653708-df253a8d-6b26-4e83-9673-793d1d6c04d5?access_key=PMAT-01HWT700T6H22BASWVF2E3HK9R