Este projeto é composto por duas APIs integradas:
API de Consultas Médicas: responsável pelo cadastro e gerenciamento de usuários (pacientes, assistentes e médicos), além do agendamento de consultas médicas.
API de Documentos: responsável por gerar um comprovante em PDF com os dados da consulta, utilizando o Thymeleaf na criação do template, e armazenar o arquivo em um bucket S3 da AWS.
- Autenticação e autorização: controle de acesso via JWT para pacientes, assistentes, médicos e administradores.
- Agendamento de consultas: respeitando a disponibilidade dos horários dos médicos.
- Geração automática de documentos: criação de comprovantes para os agendamentos realizados.
- Armazenamento e acesso aos comprovantes: arquivos PDF armazenados e acessados via AWS S3.
- Linguagem: Java
- Framework: Spring Boot
- Gerenciador de Dependências: Maven
- Banco de Dados: PostgreSQL, H2 Database
- Migração de Banco: Flyway DB
- Segurança: Spring Security, JWT Token
- Mensageria: RabbitMQ
- Broker na Nuvem: Cloud AMQP
- Template Engine: Thymeleaf
- Geração de PDF: ITextPDF
- Armazenamento de Arquivos: AWS S3
- Testes: JUnit, Mockito
- Utilitários: Lombok, MapStruct
- Documentação da API: SpringDoc OpenAPI
➡️ Fluxo da Aplicação:
- Um usuário genérico é cadastrado no sistema com a role USER e credenciais básicas.
- O tipo específico de usuário é criado, vinculado ao usuário genérico e incluindo suas informações específicas e role correspondente (paciente, médico, assistente ou administrador).
- O assistente cadastra o cronograma de disponibilidade do médico, informando os dias da semana e horários de início e fim.
- Com base nesse cronograma, o assistente cria uma consulta vinculando-a ao horário disponível.
- O paciente visualiza e agenda uma das consultas disponíveis.
- Após o agendamento, um comprovante em PDF é gerado utilizando o Thymeleaf, armazenado na AWS S3.
- Documentação online: https://sistema-consultas-medicas.onrender.com/swagger-ui/index.html#/
- Documentação local: http://localhost:8080/swagger-ui/index.html
Pré-requisitos:
- Java 17
- Maven
- PostgreSQL
- RabbitMQ (CloudAMQP)
- Conta na AWS (Bucket S3)
Passos para Configuração:
- Clone o repositório
- Acesse o diretório do projeto
- Configure o banco de dados no arquivo
application.yml(URL, usuário, senha) das duas APIs - Configure o RabbitMQ (CloudAMQP) no arquivo
application.ymldas duas APIs - Configure a AWS S3 com suas credenciais no arquivo
application.ymlda api-comprovantes - Configure a secret key para JWT no arquivo
application.ymlda api-consultas-medicas
# Execute a aplicação
mvn spring-boot:run
# Pressione (CTRL + C) para encerrar a aplicação👩💻 Projeto desenvolvido por Isabel Henrique
🤝 Fique à vontade para contribuir!








