Esta API permite o gerenciamento de adoção de animais, com funcionalidades para cadastrar, listar e atualizar o status dos animais. É construída usando Java 21 com Spring Boot 3.3.4.
- Cadastro de Animais: Registre animais com informações básicas.
- Listagem de Animais: Consulte animais disponíveis para adoção e já adotados.
- Atualização de Status: Altere o status do animal (Adotar / Adotado).
- API REST: Comunicação entre o frontend e backend.
/Animai-donation
├── backend/
| ├── main/
| │ ├── java/com/felipesouls/
| | | ├── config # Configurações do servidor (SWAGGER).
| │ │ ├── controllers # Controladores REST.
| │ │ ├── entities # Entidades JPA.
| | | ├── exceptions # Exceções personalizadas.
| | | ├── DTO # DTO reproduzir resp/env customizados.
| | | ├── records # Bodys customizados.
| │ │ ├── repositories # Repositórios JPA.
| │ │ ├── services # Serviços de negócio.
| │ └── resources/
| │ └── application.properties # Configurações da aplicação.
| | └── application-test.properties # Perfil de test com banco H2.
| | └── import.sql # Inicilalização do banco de dados.
| |
| └── test/ # Testes unitários.
| ├── factories # Fabricas para enditadades de teste.
| ├── repositories # Testes de repository.
| └── servives # Testes de unidade da camada Service.
|
├──frontend/
│ └── src/
│ ├── components/ # Componentes React
│ └── services/ # Serviços de consumo da API
└── docker-compose.yml # Config do Docker para back e front
└── EU # Descrição do projeto o melhor.
Pré-requisitos
- Docker está installado.
Para caso queira rodar independente é necessário.
- Node.js instalado
- Java 21 e Maven instalados
- Docker (opcional) para rodar containers
- Postman para testar a API (opcional)
Passo 1: Clonar o Repositório
git clone https://github.com/felipesousasilva/adocao-animais.git
cd adocao-animais
- Build das imagens:
docker-compose build
- Iniciar os containers:
docker-compose up
1 - Acesse a pasta do backend:
cd backend
2 - Configuração do Banco de Dados: - Por padrão, a aplicação usa H2 como banco de dados em memória.Se quiser usar MySQL ou PostgreSQL, configure um novo perfil.
3 - Executar a aplicação (Terminal):
./mvnw spring-boot:run
4- Acessando a Documentação Swagger: Após a execução, acesse: http://localhost:8080/swagger-ui/index.html
Passo 3: Executar o Frontend
- Acesse a pasta do frontend:
cd frontend
- Instalar as dependências:
npm install
- Iniciar a aplicação:
npm run dev
- Acesse o frontend em:
http://localhost:3000
No arquivo frontend/src/services/AnimalService.js
:
import axios from 'axios';
import { Animal } from '../model/Animal';
const API_URL = 'http://localhost:8080/animals';
export const fetchAnimals = async (): Promise<Animal[]> => {
const response = await axios.get(API_URL);
return response.data;
};
export const addAnimal = async (newAnimal: Animal): Promise<Animal> => {
const response = await axios.post(API_URL, newAnimal);
return response.data;
};
-
Listar Animais
GET /animals
-
Cadastrar Animal
POST /animals
{
"name": "Buddy",
"description": "Um golden retriever amigável.",
"imageUrl": "https://example.com/images/buddy.jpg",
"category": "Cachorro",
"birthDate": "2019-04-15",
"status": "AVAILABLE"
}
- Atualizar Status `PATCH /animals/{id}/{status}
Este projeto é licenciado sob a SaaS License. Consulte LICENSE para mais detalhes.