Skip to content

db-petcontrol/petcontrol-api

Repository files navigation

🐾 PetControl API

O PetControl é uma API REST desenvolvida em Spring Boot para cadastro e gerenciamento de pets disponíveis para adoção. O sistema permite criar, listar, consultar, editar e remover pets, fornecendo uma arquitetura organizada, documentação interativa e integração com aplicações frontend.


🔗 Disponível em produção (Swagger/OpenAPI): https://petcontrol-api-h7vz.onrender.com/swagger-ui/index.html

⚠️ A aplicação pode levar alguns segundos para responder na primeira requisição devido ao cold start da plataforma.


🖥️ Frontend da aplicação

Este projeto possui uma interface web desenvolvida separadamente para consumo da API:

🔗 Frontend (Produção): https://petcontrol-app.onrender.com

🔗 Repositório: https://github.com/db-petcontrol/petcontrol-app


✨ Principais funcionalidade

  • Cadastro de pets com validação de dados
  • Listagem paginada de pets ordenados por nome
  • Visualização detalhada de um pet por ID
  • Edição de informações de pets cadastrados
  • Exclusão de pets
  • Regras de validação para dados do pet (campos obrigatórios, caracteres válidos e tamanho)
  • Testes unitários e de integração.

🛠️ Tecnologias utilizadas

Tecnologia Categoria
Java Linguagem
Spring Boot Framework
PostgreSQL Banco de Dados
H2 Database Banco em Memória
MapStruct Mapeamento
Lombok Redução de Boilerplate
Docker Containerização
Flyway Migrations
GitHub Actions CI/CD
Git Hooks Validações Locais
JUnit Testes Unitários
Mockito Mocking
JaCoCo Cobertura de Testes
Checkstyle Padronização de Código
Spotless Formatação
Swagger / OpenAPI Documentação da API REST

🚀 Como rodar o projeto

Pré-requisitos

Antes de começar, você precisará ter instalado em sua máquina:

  • Docker
  • Git
  • Java (versão 21 - LTS recomendado)
  • Maven (ou utilizar o wrapper mvnw incluído no projeto)

1. Clone o repositório

# Clone o repositório
git clone https://github.com/db-petcontrol/petcontrol-api.git

# Acesse a pasta do projeto
cd petcontrol-api

2.1. Opção 1: Rodar tudo com Docker

2.1.1 Suba backend + banco de dados

docker-compose up -d --build

2.2. Opção 2: Rodar backend local + banco no Docker

2.2.1 Suba apenas o banco de dados:

docker-compose up -d postgres

2.2.2. Rode a aplicação localmente

./mvnw spring-boot:run

🧪 Testes

O projeto possui:

  • Testes unitários
  • Testes de integração (cenários felizes)

Para executar os testes automatizados:

./mvnw test

📊 Cobertura de código

O projeto utiliza JaCoCo para análise de cobertura.

Para gerar o relatório:

./mvnw clean verify

OBS: O relatório também é gerado após a execução dos testes.

O relatório estará disponível em:

target/site/jacoco/index.html

Abra o arquivo index.html no navegador para visualizar os detalhes da cobertura.


📜 Padronização de código

O projeto utiliza Checkstyle e Spotless para garantir consistência, legibilidade e padronização do código.

Para verificar padrões de código (Checkstyle)

./mvnw checkstyle:check

Para corrigir formatação automaticamente (Spotless)

./mvnw spotless:apply

📄 Documentação da API

A documentação da API está disponível via Swagger:

http://localhost:8080/swagger-ui/index.html

Após iniciar a aplicação, acesse o link acima para:

  • Visualizar os endpoints disponíveis
  • Testar requisições diretamente
  • Consultar contratos da API


Feito com apoio de ☕ por 👩‍💻 Gabriela de Castro Laurindo e Rachel Pizane Maia

About

API REST para gerenciamento de pets

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages