Skip to content

pallomagualter/api-Voll.med

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🏥 API Voll.med 🧑🏻‍⚕️

Sobre o projeto

Voll.med é uma clínica médica fictícia que precisa de um aplicativo para gestão de consultas. O aplicativo deve possuir funcionalidades que permitam o cadastro de médicos e de pacientes, e também o agendamento e cancelamento de consultas.

Enquanto um time de desenvolvimento será responsável pelo aplicativo mobile, o nosso será responsável pelo desenvolvimento da API Rest desse projeto.

app-voll-med

Projeto feito com o intuito de fixar conhecimentos sobre a linguagem Java utilizando o Spring Boot. Aplicando conhecimentos como:

  • Criação de uma API Rest em Java com Spring Boot
  • Desenvolver CRUDs utilizando o banco de dados MySQL
  • Utilizar o Flyway como ferramenta de Migrations da API
  • Realizar validações utilizando o Bean Validation
  • Realizar paginação dos dados da API
  • Boas práticas na API
  • Tratamento de erros
  • Autenticação/Autorização
  • Tokens JWT

🎨 Layout

O layout da aplicação mobile está disponível neste link: Figma

Built with 💜 by Palloma Gualter

✔️ Requisitos

Médico

  • O sistema deve possuir uma funcionalidade de cadastro de médicos, na qual as seguintes informações deverão ser preenchidas:

    • Nome, E-mail, Telefone, CRM
    • Especialidade (Ortopedia, Cardiologia, Ginecologia ou Dermatologia)
    • Endereço completo (logradouro, número, complemento, bairro, cidade, UF e CEP)
    • Todas as informações são de preenchimento obrigatório, exceto o número e o complemento do endereço.
  • Não é permitido cadastrar mais de um médico com o mesmo e-mail

  • Não é permitido cadastrar médico sem e-mail

  • O sistema deve possuir uma funcionalidade de listagem de médicos, na qual as seguintes informações, de cada um dos médicos cadastrados, deverão ser exibidas:

    • Nome, E-mail, CRM, Especialidade
    • A listagem deve ser ordenada pelo nome do médico, de maneira crescente, bem como ser paginada, trazendo 10 registros por página.
  • O sistema deve possuir uma funcionalidade de atualização de dados cadastrais de médicos, na qual as seguintes informações poderão ser atualizadas:

    • Nome, Telefone e Endereço
    • As seguintes regras de negócio devem ser validadas pelo sistema:
      • Não permitir a alteração do e-mail do médico;
      • Não permitir a alteração do CRM do médico;
      • Não permitir a alteração da Especialidade do médico.
  • O sistema deve possuir uma funcionalidade que permita a exclusão de médicos cadastrados.

    • As seguintes regras de negócio devem ser validadas pelo sistema:
      • A exclusão não deve apagar os dados do médico, mas torná-lo como "inativo" no sistema.

Paciente

  • O sistema deve possuir uma funcionalidade de cadastro de pacientes, na qual as seguintes informações deverão ser preenchidas:
    • Nome
    • E-mail
    • Telefone
    • CPF
    • Endereço completo (logradouro, número, complemento, bairro, cidade, UF e CEP)
    • Todas as informações são de preenchimento obrigatório, exceto o número e o complemento do endereço.
  • O sistema deve possuir uma funcionalidade de listagem de pacientes, na qual as seguintes informações, de cada um dos pacientes cadastrados, deverão ser exibidas:
    • Nome
    • E-mail
    • CPF
    • A listagem deve ser ordenada pelo nome do paciente, de maneira crescente, bem como ser paginada, trazendo 10 registros por página.
  • O sistema deve possuir uma funcionalidade de atualização de dados cadastrais de pacientes, na qual as seguintes informações poderão ser atualizadas:
    • Nome
    • Telefone
    • Endereço
    • As seguintes regras de negócio devem ser validadas pelo sistema:
      • Não permitir a alteração do e-mail do paciente;
      • Não permitir a alteração do CPF do paciente.
  • O sistema deve possuir uma funcionalidade que permita a exclusão de pacientes cadastrados.
    • As seguintes regras de negócio devem ser validadas pelo sistema:
      • A exclusão não deve apagar os dados do paciente, mas torná-lo como "inativo" no sistema.

Consultas

  • O sistema deve possuir uma funcionalidade que permita o agendamento de consultas, na qual as seguintes informações deverão ser preenchidas:
    • Paciente
    • Médico
    • Data/Hora da consulta
    • As seguintes regras de negócio devem ser validadas pelo sistema:
      • O horário de funcionamento da clínica é de segunda a sábado, das 07:00 às 19:00;
      • As consultas tem duração fixa de 1 hora;
      • As consultas devem ser agendadas com antecedência mínima de 30 minutos;
      • Não permitir o agendamento de consultas com pacientes inativos no sistema;
      • Não permitir o agendamento de consultas com médicos inativos no sistema;
      • Não permitir o agendamento de mais de uma consulta no mesmo dia para um mesmo paciente;
      • Não permitir o agendamento de uma consulta com um médico que já possui outra consulta agendada na mesma data/hora;
      • A escolha do médico é opcional, sendo que nesse caso o sistema deve escolher aleatoriamente algum médico disponível na data/hora preenchida.
  • O sistema deve possuir uma funcionalidade que permita o cancelamento de consultas, na qual as seguintes informações deverão ser preenchidas:
    • Consulta
    • Motivo do cancelamento
    • As seguintes regras de negócio devem ser validadas pelo sistema:
      • É obrigatório informar o motivo do cancelamento da consulta, dentre as opções: paciente desistiu, médico cancelou ou outros;
      • Uma consulta somente poderá ser cancelada com antecedência mínima de 24 horas.

🛠 Technologies

This project was made using the follow technologies:


👩🏻‍💻 How to run

Clone Repository

git clone https://github.com/pallomagualter/api-Voll.med.git

Access API at

http://localhost:8080/

Made with love 💜 by Palloma Gualter 🚀. This project is under the MIT license.

Give a ⭐️ if this project helped you!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages