Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ewertondrigues02/appointment-scheduling
O sistema de agendamento de consultas médicas é dividido em diversos microserviços: Doctors, Patients e Scheduling
https://github.com/ewertondrigues02/appointment-scheduling
api-gateway api-rest clean-code docker eureka-discovery-client eureka-server hibernate java jpa jwt jwt-authentication microservice rabbitmq solid-principles spring spring-boot spring-security
Last synced: about 2 months ago
JSON representation
O sistema de agendamento de consultas médicas é dividido em diversos microserviços: Doctors, Patients e Scheduling
- Host: GitHub
- URL: https://github.com/ewertondrigues02/appointment-scheduling
- Owner: ewertondrigues02
- License: mit
- Created: 2024-06-22T11:45:23.000Z (7 months ago)
- Default Branch: master
- Last Pushed: 2024-11-10T17:09:28.000Z (2 months ago)
- Last Synced: 2024-11-10T18:20:01.548Z (2 months ago)
- Topics: api-gateway, api-rest, clean-code, docker, eureka-discovery-client, eureka-server, hibernate, java, jpa, jwt, jwt-authentication, microservice, rabbitmq, solid-principles, spring, spring-boot, spring-security
- Language: Java
- Homepage:
- Size: 44.9 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Appointment Scheduling
O sistema de agendamento de consultas médicas é dividido em diversos microserviços: `Doctors`, `Patients` e `Scheduling`. O fluxo do sistema é o seguinte:
1. **Cadastro do Paciente**:
- Pacientes novos podem se cadastrar através do endpoint `register` na API de `Patients`.
- Se o paciente ainda não estiver cadastrado, ele deve se registrar para poder agendar consultas.2. **Autenticação**:
- Após o cadastro, o paciente pode realizar login.
- A autenticação do paciente é feita utilizando JWT (JSON Web Token) para garantir a segurança.
- Os microserviços de `Doctors` e `Patients` implementam Spring Security e JWT para validação e autorização.3. **Consulta de Disponibilidade**:
- Uma vez autenticado, o paciente pode fazer uma requisição para verificar a disponibilidade dos médicos.
- O sistema verifica a disponibilidade nos microserviços de `Doctors`.4. **Agendamento de Consultas**:
- Quando uma consulta é agendada, os microserviços `Doctors` e `Patients` enviam mensagens ao microserviço `Scheduling` via RabbitMQ.
- Uma exchange específica para agendamentos distribui as mensagens para as filas de `Doctors` e `Patients`.5. **Armazenamento e Mensageria**:
- Cada microserviço possui seu próprio banco de dados PostgreSQL.
- Tanto PostgreSQL quanto RabbitMQ são executados em contêineres Docker para garantir escalabilidade e facilidade de implantação.### Tecnologias Utilizadas
- **Java** e **Spring Boot** para o desenvolvimento dos microserviços.
- **Spring Security** e **JWT** para autenticação e autorização.
- **RabbitMQ** para comunicação assíncrona entre os microserviços.
- **Docker** para contêinerização dos serviços.
- **PostgreSQL** como banco de dados para cada microserviço.
- **Swagger** para documentação das APIs.---
Esta descrição detalha as funcionalidades e tecnologias do sistema, destacando como cada componente interage para fornecer um serviço robusto e seguro de agendamento de consultas médicas.
![Esquema-pronto](https://github.com/ewertondrigues02/appointment-scheduling/assets/106437473/157eedcf-3f08-43c2-9d63-710502553cd3)