An open API service indexing awesome lists of open source software.

https://github.com/patinaomi/devops-github-actions

Exercício realizado utilizando o Github Actions para CI/CD
https://github.com/patinaomi/devops-github-actions

actions cicd

Last synced: 2 months ago
JSON representation

Exercício realizado utilizando o Github Actions para CI/CD

Awesome Lists containing this project

README

          

# Challenge Odontoprev

## Índice

1. [Sobre o Projeto](#sobre-o-projeto)
2. [Arquitetura da Solução](#arquitetura-da-solução)
3. [Funcionalidades Principais](#funcionalidades=principais)
4. [Como Rodar o Projeto](#como-rodar-o-projeto)
5. [Pré-requisitos](#pré-requisitos)
6. [Modelo Relacional (DER)](#modelo-relacional-der)
7. [Diagrama de Classes](#diagrama-de-classes)
8. [Documentação da API](#documentação-da-api)
9. [Video](#video)

---

## Sobre o Projeto

Este projeto consiste em uma aplicação de gerenciamento para uma clínica odontológica. Ele permite que dentistas, pacientes e clínicas gerenciem consultas, feedbacks, sinistros, formulários detalhados e muito mais. A aplicação utiliza tecnologias como Java, Spring Boot, e um banco de dados relacional para facilitar o gerenciamento eficiente das operações diárias da clínica.

## Arquitetura da Solução
![Arquitetura da Solução](Diagrama%20sem%20nome.drawio.png)

**Funcionalidades principais**
- Cadastro de pacientes, dentistas e clínicas.
- Marcação e controle de consultas.
- Gerenciamento de formulários detalhados de pacientes.
- Recepção de feedbacks e controle de sinistros.

## Como Rodar o Projeto

Para rodar a aplicação Java Spring Boot, siga as instruções abaixo:
#### Pré-requisitos
- **Java 17** ou superior instalado
- - **Maven** instalado
- - **Banco de Dados Oracle** configurado e em execução
- - **IDE** (como IntelliJ IDEA ou Eclipse) para editar e executar o projeto (opcional)
#### Passos para rodar a aplicação
1. **Clonar o repositório**

```sh
git clone https://github.com/patinaomi/sprint-3-devops
cd sprint-3-devops
```
2. **Configurar o banco de dados**
No arquivo `application.properties` ou `application.yml` (localizado em `src/main/resources`), configure os detalhes do banco de dados, como a URL, nome de usuário e senha:

```sh
spring.datasource.url=jdbc:oracle:thin:@oracle.fiap.com.br:1521/orcl
spring.datasource.username=seu-usuario
spring.datasource.password=sua-senha
spring.datasource.driver-class
name=oracle.jdbc.OracleDriver
```

3. **Instalar dependências**
Execute o comando Maven para baixar as dependências necessárias:
```sh
mvn clean install
```

4. **Executar a aplicação**
Com as dependências instaladas, rode a aplicação com:
```sh
mvn spring-boot:run
```
5. **Acessar a aplicação**

- A aplicação estará disponível em: `http://localhost:8080`
- A documentação Swagger estará disponível em: `http://localhost:8080/swagger-ui.html`

#### Observações

- Certifique-se de que o banco de dados está em execução antes de iniciar a aplicação.
- Para testes, você pode utilizar o **Postman** ou acessar diretamente o **Swagger UI** para testar os endpoints.

## Modelo Relacional (DER)
![Modelo Relacional](Relational_1.png)

## Diagrama de Classes
![Diagrama de Classes](diagrama-de-classes.png)

![Domains](domains.png)

## Documentação da API
Foi realizada a documentação da API utilizando **Swagger**, o que facilita a visualização e teste de todos os endpoints disponíveis no sistema. Para acessar a documentação completa, basta visitar o link [Swagger](http://localhost:8080/swagger-ui/index.html#/) quando o projeto estiver em execução.

#### Cliente

- **GET /clientes**: Lista todos os clientes.
- **POST /clientes/criar**: Cria um novo cliente.
- **GET /clientes/{id}**: Retorna os detalhes de um cliente específico pelo ID.
- **PUT /clientes/{id}**: Atualiza as informações de um cliente.
- **PATCH /clientes/{id}/**: Atualiza parcialmente um dado do cliente.
- **DELETE /clientes/{id}**: Remove um cliente.

#### Consulta

- **GET /consultas**: Lista todas as consultas.
- **POST /consultas/criar**: Cria uma nova consulta.
- **GET /consultas/{id}**: Retorna os detalhes de uma consulta específica pelo ID.
- **PUT /consultas/{id}**: Atualiza as informações de uma consulta.
- **PATCH /consultas/{id}**: Atualiza o dado parcial da consulta.
- **DELETE /consultas/{id}**: Remove uma consulta.

#### Dentista

- **GET /dentistas**: Lista todos os dentistas.
- **POST /dentistas/criar**: Cria um novo dentista.
- **GET /dentistas/{id}**: Retorna os detalhes de um dentista específico pelo ID.
- **PUT /dentistas/{id}**: Atualiza as informações de um dentista.
- **PATCH /dentistas/{id}**: Atualiza um dado parcial do dentista.
- **DELETE /dentistas/{id}**: Remove um dentista.

## Feedback

- **GET /feedbacks**: Lista todos os feedbacks.
- **POST /feedbacks/criar**: Cria um novo feedback.
- **GET /feedbacks/{id}**: Retorna os detalhes de um feedback específico pelo ID.
- **PUT /feedbacks/{id}**: Atualiza as informações de um feedback.
- **PATCH /feedbacks/{id}**: Atualiza um dado parcial do feedback.
- **DELETE /feedbacks/{id}**: Remove um feedback.

## Formulário Detalhado

- **GET /formularios**: Lista todos os formulários detalhados.
- **POST /formularios/criar**: Cria um novo formulário detalhado.
- **GET /formularios/{id}**: Retorna os detalhes de um formulário específico pelo ID.
- **PUT /formularios/{id}**: Atualiza as informações de um formulário detalhado.
- **PATCH /formularios/{id}**: Atualiza um dado no formulário.
- **DELETE /formularios/{id}**: Remove um formulário detalhado.

## Sinistro

- **GET /sinistros**: Lista todos os sinistros.
- **POST /sinistros/criar**: Cria um novo sinistro.
- **GET /sinistros/{id}**: Retorna os detalhes de um sinistro específico pelo ID.
- **PUT /sinistros/{id}**: Atualiza as informações de um sinistro.
- **PATCH /sinistros/{id}**: Atualiza um dado parcial de um sinistro.
- **DELETE /sinistros/{id}**: Remove um sinistro.

## Video
Também disponibilizamos um vídeo no YouTube demonstrando nossa solução e explicando as principais funcionalidades do projeto. Você pode assisti-lo através do seguinte link: [Link do Video no Youtube](https://youtu.be/XrRJLczRDN4)

## 🧑‍🤝‍🧑 Equipe

|

Claudio Bispo

RM553472
|

Patricia Naomi

RM552981
|
|--|--|

[:arrow_up: voltar para o índice :arrow_up:](#índice)