Loading repository data…
Loading repository data…
Joaorooliveira / repository
API RESTful completa para gestão de clínica médica (Voll.med). Desenvolvida em Java 21 e Spring Boot 3, inclui CRUDs, agendamento de consultas com regras de negócio complexas (SOLID), autenticação Stateless com JWT, Migrations com Flyway, documentação via Swagger e testes automatizados (JUnit/Mockito).
🚧 API RESTful completa para o gerenciamento de uma clínica médica. 🚧
Este projeto é uma API RESTful desenvolvida para a clínica fictícia "Voll.med". A aplicação vai além do CRUD básico, implementando regras de negócio complexas para agendamento de consultas, autenticação/autorização via Tokens JWT, validações de integridade, testes automatizados e documentação interativa.
A API oferece as seguintes funcionalidades:
🔐 Autenticação e Segurança:
🩺 Gestão de Médicos:
Gestão de Pacientes:
📅 Gestão de Consultas:
Este projeto foi construído utilizando as seguintes tecnologias:
A API possui documentação completa via Swagger UI. Após executar o projeto, acesse a:
👉 http://localhost:8080/swagger-ui.html
Resumo dos principais endpoints:
| Método | Rota | Descrição |
|---|---|---|
POST | /login | Autentica um utilizador e retorna o Token JWT. |
POST | /consultas | Agenda uma nova consulta (Requer JSON com ids e data). |
DELETE | /consultas | Cancela uma consulta (Requer JSON com id e motivo). |
POST | /medicos | Cadastra um novo médico. |
GET | /medicos | Lista médicos ativos (paginado). |
PUT | /medicos | Atualiza dados de um médico. |
DELETE | /medicos/{id} | Inativa um médico. |
POST | /pacientes | Cadastra um novo paciente. |
GET | /pacientes | Lista pacientes ativos (paginado). |
Clone o repositório:
git clone [https://github.com/Joaorooliveira/clinica-medica-api.git]
cd clinica-medica-api
Configuração da Base de Dados:
O ficheiro src/main/resources/application.properties espera as seguintes variáveis ou configurações padrão:
vollmed_api.root e a senha está configurada (ou ajuste no arquivo).JWT_SECRET para maior segurança do token.Execute a Aplicação:
./mvnw spring-boot:run
O Flyway irá criar automaticamente as tabelas medicos, pacientes, usuarios e consultas.
Teste a API:
http://localhost:8080.usuarios (com a senha em hash
BCrypt) ou desabilite a segurança temporariamente para testes.Para executar os testes automatizados (unitários e de integração):
./mvnw test
📄 Licença Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.