Skip to content

API for controlling medical clinics, being able to register doctors, patients and users.

License

Notifications You must be signed in to change notification settings

lasbrDev/api-medical-clinic-control-springboot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Medical Clinic Control API

Voll Med é uma empresa fictícia na área da saúde. Esta é uma API REST que controla o fluxo de serviços de uma clínica médica. O aplicativo possui um banco de dados para armazenar informações sobre médicos, pacientes (com endereços e contatos), agenda e horários de funcionamento.

Referências

Autores

Tecnologias Utilizadas

Back-end: Java, Spring Boot

Banco de Dados: MySQL

Conteinerização Docker

Cliente de Teste de API: Insomnia

Docker Compose

version: '3.8'

services:
  vollmed-mysql:
    image: mysql:latest
    container_name: vollmed-mysql
    environment:
      MYSQL_ROOT_USERNAME: root
      MYSQL_ROOT_PASSWORD: lasBr01
      MYSQL_DATABASE: vollmed_api
    networks:
      - REDEVOL
    ports:
      - "3306:3306"
    volumes:
      - vollmed-mysql-data:/var/lib/mysql

  flyway:
    image: flyway/flyway:latest
    container_name: vollmed-flyway
    environment:
      - FLYWAY_URL=jdbc:mysql://vollmed-mysql:3306/vollmed_api
      - FLYWAY_USER=root
      - FLYWAY_PASSWORD=lasBr01
    networks:
      - REDEVOL

networks:
  REDEVOL:
    driver: bridge

volumes:
  vollmed-mysql-data:

Neste arquivo docker-compose.yml, está configurando dois serviços: vollmed-mysql e flyway. O primeiro é para o banco de dados MySQL, enquanto o segundo é para as migrações usando o Flyway.

No MySQL, você especifica as credenciais do root, o nome do banco de dados, expõe a porta 3306 e usa um volume para persistir os dados. O serviço Flyway é configurado para se conectar ao MySQL e aplicar as migrações.

Aprendizados

Neste projeto, pude consolidar ainda mais os conceitos de uma API REST, importantes princípios de arquitetura, principalmente o Design Driven Domain, que é crucial em projetos profissionais. Implementei validações nas regras de negócios e desenvolvi uma documentação elegante. Além disso, utilizei o Flyway para controle de migrações e subi duas instâncias no Docker, uma para o MySQL e outra para o Flyway. O token JWT foi adotado para autenticação, pois a API é Stateless. Trata-se de uma API para controle de clínica médica, abrangendo cadastro de pacientes, médicos com suas especialidades, agendamento de consultas com validações, tratamento de exceções e testes automatizados.

Licença

MIT

Releases

No releases published

Packages

No packages published

Languages