A API Find a Pet é uma aplicação back-end desenvolvida como resolução de um desafio referente ao módulo API Node.js com SOLID da formação Node.js da Rocketseat.
A aplicação desenvolvida consiste em uma API para adoção de animais e foi aplicada boas práticas de código limpo, padrão de arquitetura e de projeto bem como conceitos do SOLID e testes. Foi de grande importância o desenvolvimento desta aplicação, pois pude colocar em prática todos os conceitos aprendidos no módulo estudado. Encontrei algumas dificuldades durante o desenvolvimento, mas realizei consultas e desta forma chegando a resolução do problema.
- Deve ser possível se cadastrar como uma ORG
- Deve ser possível realizar login como uma ORG
- Deve ser possível cadastrar um pet
- Deve ser possível listar todos os pets disponíveis para adoção em uma cidade
- Deve ser possível filtrar pets por suas características
- Deve ser possível visualizar detalhes de um pet para adoção
- Para listar os pets, obrigatoriamente precisamos informar a cidade
- Uma ORG precisa ter um endereço e um número de WhatsApp
- Um pet deve estar ligado a uma ORG
- O usuário que quer adotar, entrará em contato com a ORG via WhatsApp
- Todos os filtros, além da cidade, são opcionais
- Para uma ORG acessar a aplicação como admin, ela precisa estar logada
- Node.js versão 20 ou superior;
- Docker.
- Fastify
- Fastify JWT
- Prisma
- PostgreSQL
- Zod
- Docker
- JavaScript
- Typescript
- Dotenv
- Dayjs
- Fakerjs
- Vitest
- Clone o projeto:
$ git clone https://github.com/JaasielAntunes/find-a-pet-api-challenge.git
- Acesse a pasta do projeto:
$ cd find-a-pet-api-challenge
- Instale as dependências:
$ npm install
- Execute:
$ docker compose up -d
$ npm run migrate:run
- Inicie o servidor:
$ npm run dev
Cadastrar um Pet
{
"name": "Bino",
"about": "Bino é um gatinho brincalhão e dorme muito também.",
"age": "1",
"type": "Gato",
"breed": "Siamês",
"org_id": "7c4d766e-f2a3-46b2-ae04-6bb34eaaf6d8"
}
Cadastrar uma ORG
{
"name": "Pet Lover´s",
"author_name": "Jhon",
"email": "teste@gmail.com",
"password": "1234567",
"whatsapp": "+15555555555",
"city": "Salvador",
"state": "Bahia",
"street": "rua teste",
"cep": "10001",
"latitude": -27.2092052,
"longitude": -40.6401091
}
Retorna todas as ORGs cadastradas.
Autenticação de uma ORG cadastrada.
Busca de uma ORG próxima informando latitude e longitude como parâmetros.
Listagem de Pets disponíveis em uma cidade informando a cidade (city) como parâmetro.
Busca de um Pet pelo ID.
- Utilize o Postman ou Insomnia para testar as requisições.