Menu Close

Api-PetShope

Logo

Api-PetShope

Api para gerenciamento de um PetShope
Nessa api é possível listar, visualizar, criar, editar, excluir animais de estimação de uma petshop.

-----------------------------------------------------

🧩 Introdução    |   
🚀 Resultados   |   
🧪 Dependências   |   
💡 Possíveis Melhorias    |   
🏆 Créditos       

🧩 Introdução

⠀⠀⠀⠀Bem-vindo ao Petshop Administration Panel! Este projeto é de uma APi para um painel administrativo completo desenvolvido como parte de um teste técnico para uma empresa. O objetivo principal é fornecer uma plataforma fácil de usar para visualizar, criar, editar e excluir animais de estimação em uma petshop.

🚀 Resultados

Todos os resultados foram alcançados com sucesso. De modo geral são esses os resultados de cada requisição.

🧭 Rota com funções do client

🎯 Pega todos os cliente e seus pets

GET

    
 http://localhost:3003/admin/clients
    

    RETORNA
  {
    "id": "256d8ed4-c82d-412e-bc06-4d68a5729656",
    "nome": "Maycon",
    "telefone": "28999287132",
    "pets": [
      {
        "id": "631775f3-8cff-4ea4-bc0a-a48787dc74ad",
        "nome": "Jon",
        "idade": 7,
        "tipo": "GATO",
        "raca": "Siamês",
        "donoId": "256d8ed4-c82d-412e-bc06-4d68a5729656"
      }
    ]
  },...
  }

🎯 Registra o cliente junto com o pet

POST

    
http://localhost:3003/admin/client/register
    

{
  "client": {
    "nome": "cebola",
    "telefone": "28999343577"
  },
  "pet": {
    "idade": 5,
    "nome": "cebolinha",
    "raca": "vira-lata",
    "tipo": "CACHORRO"
  }
}

🎯 Mudando qualquer dado disponivel do cliente

PATCH

    
 http://localhost:3003/admin/client/{IdClient}
    

{
  "telefone": "11999287132"
  
}

🎯 Deleta o usuario

DELETE

    http://localhost:3003/admin/client
    

{
    "id": "b7bbca37-1737-4409-aa26-32a8ef65a111"
}

📖 Volta ao Sumário

🧭 Rota com funçoes do pet

### 🎯  Mudando qualquer dado disponivel do pet

PATCH

    
PATCH http://localhost:3003/admin/client/{idClient}/pet/{idPet}
    

{
  "nome": "Tor"
}

🎯 Deleta o Pet de um cliente

DELETE

    
    http://localhost:3003/admin/pet  
    

{
    "idClient": "b7bbca37-1737-4409-aa26-32a8ef65a111",
    "idPet":  "e08ce6c2-f3d6-45c9-a0f2-b132bf26907c"
}

🧭 Rota para Cadastra o Adiministrador

🎯 Registra o Administrador

POST

    
http://localhost:3003/users/register
    

{
    "name": "teste",
    "email": "teste@gmail.com",
    "password": "123456"
}

🎯 Logar e pegar token

POST

    
http://localhost:3003/users/login
    

{
    "email": "teste@gmail.com",
    "password": "123456"
}

📖 Volta ao Sumário

🧪 Dependências

Requisitos para rotar o codigo…

📖 Instalação

Caso tenha Git basta da git clone, caso não tenha basta clicar em code e depois dowloand zip e seguir os proximos passos

git clone https://github.com/MayconCoutinho/Api-PetShope

Caso já tenha o Node em sua maquina basta instalar o projeto com npm i

    
npm i 
    

Caso queira rodar o projeto no front-end, vai precisar do login

OBS – Muito importante, caso não tenha um banco de dados PostgreSQL disponivel, não vai da para rodar o projeto, pois o projeto conecta diretamente com o banco de dados
sendo assim crie um arquivo “.env” para por os dados do PostgreSQL.

    
DATABASE_URL="postgres://postgres:SENHA@localhost:5432/petShop?schema=public"

JWT_KEY = "minha-senha-segura"
JWT_EXPIRES_IN = "24h"

BCRYPT_SALT_ROUNDS = 12


configurando.2.mp4


Apos isso basta entra no projeto com o vscode, entra em scripts e apertar execultar o “dev”

📖 Dependencies

 "dependencies": {
    "@prisma/client": "^4.13.0",
    "@types/multer": "^1.4.7",
    "bcryptjs": "^2.4.3",
    "cors": "^2.8.5",
    "dotenv": "^16.0.3",
    "express": "^4.18.2",
    "firebase": "^9.22.0",
    "firebase-admin": "^11.8.0",
    "jsonwebtoken": "^9.0.0",
    "multer": "^1.4.5-lts.1",
    "supertest": "^6.3.3",
    "uuid": "^9.0.0"
    }

📖 devDependencies

"devDependencies": {
    "@commitlint/cli": "^17.6.3",
    "@commitlint/config-conventional": "^17.6.3",
    "@faker-js/faker": "^7.6.0",
    "@types/bcryptjs": "^2.4.2",
    "@types/cors": "^2.8.13",
    "@types/express": "^4.17.15",
    "@types/jsonwebtoken": "^9.0.0",
    "@types/node": "^18.11.18",
    "@types/supertest": "^2.0.12",
    "@types/uuid": "^9.0.0",
    "@typescript-eslint/eslint-plugin": "^5.59.2",
    "cz-conventional-changelog": "^3.3.0",
    "eslint": "^8.40.0",
    "eslint-config-prettier": "^8.8.0",
    "eslint-config-standard-with-typescript": "^34.0.1",
    "eslint-plugin-import": "^2.27.5",
    "eslint-plugin-n": "^15.7.0",
    "eslint-plugin-prettier": "^4.2.1",
    "eslint-plugin-promise": "^6.1.1",
    "husky": "^8.0.3",
    "prettier": "^2.8.8",
    "prisma": "^4.13.0",
    "ts-node-dev": "^2.0.0",
    "typescript": "^4.9.5",
    "vitest": "^0.31.0"
    }

💡 Possíveis Melhoras

Possíveis melhorias no código e no projeto, caso queira voltar e melhorá lo.

  • – Testa todo o código.
  • – Criar token de confirmação para cada requisição.
  • – No momento é possivel acessar api sem a confirmação de que realmente é o adiministrador, oque não é interessante
  • – Tem muitas funções em que dever ter validações melhores
  • – Expandir a api para gerar dados estatisticos
  • – Colocar fotos fakes de clientes
  • ***- ***

📖 Volta ao Sumário

🏆 Créditos


Maycon Coutinho
Hello 😃 Se você chegou até aqui, acredito que gostou do meu projeto, nesse caso temos algo em comum, sendo assim que tal conversamos um pouco? Meu chama no linkedin 😁

View Source Code
Posted in Development