{"id":28400651,"url":"https://github.com/patinaomi/devops-github-actions","last_synced_at":"2026-04-12T22:07:07.634Z","repository":{"id":283199402,"uuid":"950322947","full_name":"patinaomi/devops-github-actions","owner":"patinaomi","description":"Exercício realizado utilizando o Github Actions para CI/CD","archived":false,"fork":false,"pushed_at":"2025-04-10T23:04:34.000Z","size":521,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-01T18:38:12.880Z","etag":null,"topics":["actions","cicd"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/patinaomi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-03-18T01:31:42.000Z","updated_at":"2025-04-25T20:11:39.000Z","dependencies_parsed_at":"2025-04-11T00:18:54.587Z","dependency_job_id":"2002675e-53e7-408c-87bd-b2e8fd099147","html_url":"https://github.com/patinaomi/devops-github-actions","commit_stats":null,"previous_names":["patinaomi/sprint-3-devops","patinaomi/devops-github-actions"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/patinaomi/devops-github-actions","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patinaomi%2Fdevops-github-actions","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patinaomi%2Fdevops-github-actions/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patinaomi%2Fdevops-github-actions/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patinaomi%2Fdevops-github-actions/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/patinaomi","download_url":"https://codeload.github.com/patinaomi/devops-github-actions/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patinaomi%2Fdevops-github-actions/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262421735,"owners_count":23308501,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["actions","cicd"],"created_at":"2025-06-01T11:02:33.167Z","updated_at":"2025-10-28T05:36:13.424Z","avatar_url":"https://github.com/patinaomi.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\n\n# Challenge Odontoprev\n\u003cp align=\"center\"\u003e  \u003cimg loading=\"lazy\" src=\"http://img.shields.io/static/v1?label=STATUS\u0026message=EM%20DESENVOLVIMENTO\u0026color=GREEN\u0026style=for-the-badge\"/\u003e  \u003c/p\u003e\n\n## Índice\n\n1. [Sobre o Projeto](#sobre-o-projeto)\n2. [Arquitetura da Solução](#arquitetura-da-solução)\n3. [Funcionalidades Principais](#funcionalidades=principais)\n4. [Como Rodar o Projeto](#como-rodar-o-projeto)\n5. [Pré-requisitos](#pré-requisitos)\n6. [Modelo Relacional (DER)](#modelo-relacional-der)\n7. [Diagrama de Classes](#diagrama-de-classes)\n8. [Documentação da API](#documentação-da-api)\n9. [Video](#video)\n\n---\n\n## Sobre o Projeto\n\nEste 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.\n\n## Arquitetura da Solução\n![Arquitetura da Solução](Diagrama%20sem%20nome.drawio.png)\n\n**Funcionalidades principais**\n- Cadastro de pacientes, dentistas e clínicas.\n- Marcação e controle de consultas.\n- Gerenciamento de formulários detalhados de pacientes.\n- Recepção de feedbacks e controle de sinistros.\n \n## Como Rodar o Projeto\n\nPara rodar a aplicação Java Spring Boot, siga as instruções abaixo:\n #### Pré-requisitos \n - **Java 17** ou superior instalado \n - - **Maven** instalado \n - - **Banco de Dados Oracle** configurado e em execução \n - - **IDE** (como IntelliJ IDEA ou Eclipse) para editar e executar o projeto (opcional) \n #### Passos para rodar a aplicação \n 1. **Clonar o repositório**\n  \n```sh\n    git clone https://github.com/patinaomi/sprint-3-devops\n    cd sprint-3-devops\n```\n2. **Configurar o banco de dados**\nNo 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:\n\n```sh\n    spring.datasource.url=jdbc:oracle:thin:@oracle.fiap.com.br:1521/orcl\n    spring.datasource.username=seu-usuario\n    spring.datasource.password=sua-senha\n    spring.datasource.driver-class\n    name=oracle.jdbc.OracleDriver\n```\n\n3. **Instalar dependências**\nExecute o comando Maven para baixar as dependências necessárias:\n```sh\n    mvn clean install\n```\n\n4. **Executar a aplicação**\nCom as dependências instaladas, rode a aplicação com:\n```sh\n    mvn spring-boot:run\n```\n5.  **Acessar a aplicação**\n    \n    -   A aplicação estará disponível em: `http://localhost:8080`\n    -   A documentação Swagger estará disponível em: `http://localhost:8080/swagger-ui.html`\n\n#### Observações\n\n-   Certifique-se de que o banco de dados está em execução antes de iniciar a aplicação.\n-   Para testes, você pode utilizar o **Postman** ou acessar diretamente o **Swagger UI** para testar os endpoints.\n\n\n## Modelo Relacional (DER)\n![Modelo Relacional](Relational_1.png)\n\n## Diagrama de Classes\n![Diagrama de Classes](diagrama-de-classes.png)\n\n![Domains](domains.png)\n\n## Documentação da API\nFoi 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.\n\n#### Cliente\n\n- **GET /clientes**: Lista todos os clientes.\n- **POST /clientes/criar**: Cria um novo cliente.\n- **GET /clientes/{id}**: Retorna os detalhes de um cliente específico pelo ID.\n- **PUT /clientes/{id}**: Atualiza as informações de um cliente.\n- **PATCH /clientes/{id}/**: Atualiza parcialmente um dado do cliente.\n- **DELETE /clientes/{id}**: Remove um cliente.\n\n#### Consulta\n\n- **GET /consultas**: Lista todas as consultas.\n- **POST /consultas/criar**: Cria uma nova consulta.\n- **GET /consultas/{id}**: Retorna os detalhes de uma consulta específica pelo ID.\n- **PUT /consultas/{id}**: Atualiza as informações de uma consulta.\n- **PATCH /consultas/{id}**: Atualiza o dado parcial da consulta.\n- **DELETE /consultas/{id}**: Remove uma consulta.\n\n#### Dentista\n\n- **GET /dentistas**: Lista todos os dentistas.\n- **POST /dentistas/criar**: Cria um novo dentista.\n- **GET /dentistas/{id}**: Retorna os detalhes de um dentista específico pelo ID.\n- **PUT /dentistas/{id}**: Atualiza as informações de um dentista.\n- **PATCH /dentistas/{id}**: Atualiza um dado parcial do dentista.\n- **DELETE /dentistas/{id}**: Remove um dentista.\n\n## Feedback\n\n- **GET /feedbacks**: Lista todos os feedbacks.\n- **POST /feedbacks/criar**: Cria um novo feedback.\n- **GET /feedbacks/{id}**: Retorna os detalhes de um feedback específico pelo ID.\n- **PUT /feedbacks/{id}**: Atualiza as informações de um feedback.\n- **PATCH /feedbacks/{id}**: Atualiza um dado parcial do feedback.\n- **DELETE /feedbacks/{id}**: Remove um feedback.\n\n## Formulário Detalhado\n\n- **GET /formularios**: Lista todos os formulários detalhados.\n- **POST /formularios/criar**: Cria um novo formulário detalhado.\n- **GET /formularios/{id}**: Retorna os detalhes de um formulário específico pelo ID.\n- **PUT /formularios/{id}**: Atualiza as informações de um formulário detalhado.\n- **PATCH /formularios/{id}**: Atualiza um dado no formulário.\n- **DELETE /formularios/{id}**: Remove um formulário detalhado.\n\n## Sinistro\n\n- **GET /sinistros**: Lista todos os sinistros.\n- **POST /sinistros/criar**: Cria um novo sinistro.\n- **GET /sinistros/{id}**: Retorna os detalhes de um sinistro específico pelo ID.\n- **PUT /sinistros/{id}**: Atualiza as informações de um sinistro.\n- **PATCH /sinistros/{id}**: Atualiza um dado parcial de um sinistro.\n- **DELETE /sinistros/{id}**: Remove um sinistro.\n\n\n## Video\nTambé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)\n\n## 🧑‍🤝‍🧑 Equipe\n\n| \u003ch3\u003eClaudio Bispo\u003c/h3\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/110735259?v=4\" width=180px\u003e \u003ch6\u003eRM553472\u003c/h6\u003e \u003ca href=\"https://github.com/claubis\"\u003e\u003cimg src=\"https://img.shields.io/badge/github-%23121011.svg?style=for-the-badge\u0026logo=github\u0026logoColor=white\"\u003e\u003c/a\u003e \u003ca href=\"https://www.linkedin.com/in/claudiosbispo\"\u003e\u003cimg src=\"https://img.shields.io/badge/linkedin-%230077B5.svg?style=for-the-badge\u0026logo=linkedin\u0026logoColor=white\"\u003e\u003c/a\u003e \u003ca href=\"https://www.instagram.com/_claudiobispo/\"\u003e\u003cimg src=\"https://img.shields.io/badge/Instagram-%23E4405F.svg?style=for-the-badge\u0026logo=Instagram\u0026logoColor=white\"\u003e\u003c/a\u003e|\u003ch3\u003ePatricia Naomi\u003c/h3\u003e \u003cimg src=\"https://avatars.githubusercontent.com/u/132932532?v=4\" width=180px\u003e\u003ch6\u003eRM552981\u003c/h6\u003e \u003ca href=\"https://github.com/patinaomi\"\u003e\u003cimg src=\"https://img.shields.io/badge/github-%23121011.svg?style=for-the-badge\u0026logo=github\u0026logoColor=white\"\u003e\u003c/a\u003e \u003ca href=\"https://www.linkedin.com/in/patinaomi/\"\u003e\u003cimg src=\"https://img.shields.io/badge/linkedin-%230077B5.svg?style=for-the-badge\u0026logo=linkedin\u0026logoColor=white\"\u003e\u003c/a\u003e \u003ca href=\"https://www.instagram.com/naomipati/\"\u003e\u003cimg src=\"https://img.shields.io/badge/Instagram-%23E4405F.svg?style=for-the-badge\u0026logo=Instagram\u0026logoColor=white\"\u003e\u003c/a\u003e|\n|--|--|\n\n\n[:arrow_up: voltar para o índice :arrow_up:](#índice)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpatinaomi%2Fdevops-github-actions","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpatinaomi%2Fdevops-github-actions","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpatinaomi%2Fdevops-github-actions/lists"}