Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ronaldosnavarro/apirest-vollmed
A Voll.Med API é uma API RESTful desenvolvida para gerenciar informações e processos relacionados a um sistema de gestão de saúde. A aplicação permite o gerenciamento de pacientes, médicos, agendamentos e outras entidades pertinentes a um sistema de saúde.
https://github.com/ronaldosnavarro/apirest-vollmed
Last synced: 5 days ago
JSON representation
A Voll.Med API é uma API RESTful desenvolvida para gerenciar informações e processos relacionados a um sistema de gestão de saúde. A aplicação permite o gerenciamento de pacientes, médicos, agendamentos e outras entidades pertinentes a um sistema de saúde.
- Host: GitHub
- URL: https://github.com/ronaldosnavarro/apirest-vollmed
- Owner: RonaldoSNavarro
- Created: 2024-07-13T19:28:08.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2024-07-25T19:43:59.000Z (7 months ago)
- Last Synced: 2024-12-13T21:57:40.263Z (2 months ago)
- Language: Java
- Homepage:
- Size: 65.4 KB
- Stars: 4
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.MD
Awesome Lists containing this project
README
# Voll.Med API
## Visão Geral
A **Voll.Med API** é uma API RESTful desenvolvida para gerenciar informações e processos relacionados a um sistema de gestão de saúde. A aplicação permite o gerenciamento de pacientes, médicos, agendamentos e outras entidades pertinentes a um sistema de saúde.
## Funcionalidades
- **Gerenciamento de Pacientes:**
- Cadastro de novos pacientes
- Atualização de informações de pacientes
- Exclusão de registros de pacientes
- Consulta de dados de pacientes- **Gerenciamento de Médicos:**
- Cadastro de novos médicos
- Atualização de informações de médicos
- Exclusão de registros de médicos
- Consulta de dados de médicos- **Gerenciamento de Agendamentos:**
- Criação de novos agendamentos
- Atualização de agendamentos existentes
- Cancelamento de agendamentos
- Consulta de agendamentos- **Autenticação e Autorização:**
- Registro de novos usuários
- Login de usuários existentes
- Autorização baseada em roles (paciente, médico, admin)## Tecnologias Utilizadas
- **Backend:**
- [Java](https://www.java.com/) com [Spring Boot](https://spring.io/projects/spring-boot)
- [Spring Data JPA](https://spring.io/projects/spring-data-jpa)
- [Hibernate](https://hibernate.org/)
- [Flyway](https://flywaydb.org/)- **Banco de Dados:**
- [MySQL](https://www.mysql.com/)- **Segurança:**
- [Spring Security](https://spring.io/projects/spring-security) com JWT- **Documentação da API:**
- [Springfox Swagger](https://springfox.github.io/springfox/)## Pré-requisitos
- [Java 11+](https://www.oracle.com/java/technologies/javase-jdk11-downloads.html)
- [Maven](https://maven.apache.org/)
- [MySQL](https://dev.mysql.com/downloads/mysql/)## Como Executar
1. Clone o repositório:
```bash
git clone https://github.com/seu-usuario/vollmed.api.git
```2. Navegue até o diretório do projeto:
```bash
cd vollmed.api
```3. Configure o banco de dados MySQL com as credenciais adequadas no arquivo `application.properties`:
```properties
spring.datasource.url=jdbc:mysql://localhost:3306/vollmed
spring.datasource.username=seu-usuario
spring.datasource.password=sua-senha
spring.jpa.hibernate.ddl-auto=none
spring.flyway.enabled=true
```4. Execute o projeto usando Maven:
```bash
mvn spring-boot:run
```5. A API estará disponível em:
```
http://localhost:8080
```## Documentação da API
A documentação completa da API pode ser acessada via Swagger em: http://localhost:8080/swagger-ui.html
## Estrutura de Classes
O projeto `med.voll.api` possui a seguinte estrutura de classes:
### Controller
- **AutenticacaoController**: Controlador responsável pela autenticação de usuários.
- **ConsultaController**: Controlador responsável pelas operações relacionadas às consultas médicas.
- **MedicoController**: Controlador responsável pelas operações relacionadas aos médicos.
- **PacienteController**: Controlador responsável pelas operações relacionadas aos pacientes.### Domain
- **consulta**
- **validacoes**
- **AgendaDeConsultas**: Classe responsável pela agenda de consultas.
- **Consulta**: Entidade que representa uma consulta médica.
- **ConsultaRepository**: Repositório para gerenciar as consultas no banco de dados.
- **DadosAgendamentoConsulta**: DTO para os dados de agendamento de consulta.
- **DadosCancelamentoConsulta**: DTO para os dados de cancelamento de consulta.
- **DadosDetalhamentoConsulta**: DTO para os detalhes de uma consulta.
- **DadosListagemConsulta**: DTO para a listagem de consultas.
- **MotivoCancelamento**: Enum para os motivos de cancelamento de consultas.- **endereco**
- **DadosEndereco**: DTO para os dados do endereço.
- **Endereco**: Entidade que representa um endereço.- **medico**
- **DadosAtualizacaoMedico**: DTO para os dados de atualização do médico.
- **DadosCadastroMedico**: DTO para os dados de cadastro do médico.
- **DadosDetalhamentoMedico**: DTO para os detalhes de um médico.
- **DadosListagemMedico**: DTO para a listagem de médicos.
- **Especialidade**: Enum para as especialidades médicas.
- **Medico**: Entidade que representa um médico.
- **MedicoRepository**: Repositório para gerenciar os médicos no banco de dados.- **paciente**
- **DadosAtualizacaoPaciente**: DTO para os dados de atualização do paciente.
- **DadosCadastroPaciente**: DTO para os dados de cadastro do paciente.
- **DadosListagemPaciente**: DTO para a listagem de pacientes.
- **Paciente**: Entidade que representa um paciente.
- **PacienteRepository**: Repositório para gerenciar os pacientes no banco de dados.- **usuario**
- **AutenticacaoService**: Serviço para gerenciar a autenticação.
- **DadosAutenticacao**: DTO para os dados de autenticação.
- **Usuario**: Entidade que representa um usuário.
- **UsuarioRepository**: Repositório para gerenciar os usuários no banco de dados.### Infra
- **exception**
- **TratadorDeErros**: Classe para tratamento de erros globais na aplicação.- **security**
- **DadosTokenJWT**: DTO para os dados do token JWT.
- **SecurityConfigurations**: Configurações de segurança da aplicação.
- **SecurityFilter**: Filtro de segurança para interceptar e validar as requisições.
- **TokenService**: Serviço para manipulação de tokens JWT.- **springdoc**
- **SpringDocConfigurations**: Configurações para a documentação da API com SpringDoc.### Aplicação
- **ApiApplication**: Classe principal da aplicação que contém o método `main`.### Recursos
- **db.migration**: Diretório contendo os scripts de migração de banco de dados Flyway.
- **application.properties**: Arquivo de propriedades da aplicação para o ambiente padrão.
- **application-prod.properties**: Arquivo de propriedades da aplicação para o ambiente de produção.
- **application-test.properties**: Arquivo de propriedades da aplicação para o ambiente de teste.# Desenvolvedor
[
Ronaldo Navarro](https://github.com/ronaldosnavarro)
- LinkedIn: https://www.linkedin.com/in/ronaldonavarro---