/soulpet-back

Primary LanguageJavaScriptMIT LicenseMIT

SoulPet API (Back-End)

Bem-vindo(a), aqui você irá aprender como a API funciona e como utilizá-la.

Front-End -> README.md

MIT License
Copyright (c) 2023 SoulPet

Index

Para que serve a API?

  A SoulPet API é uma aplicação para sistemas internos de petshops, que provê a integração de um banco de dados para cadastro e manipulação de clientes, pets, produtos, serviços e pedidos.
  A clareza visual é um foco para essa API, onde os funcionários que estarão trabalhando com ela têm uma interface clara e amigável, facilitando o fluxo de trabalho. Além disso, todas os dados são validados de acordo com seu tipo e informação.

O que conseguirei dessa API?

  A API oferece diversos recursos e ferramentas, assim como:

  • A realização e manutenção do cadastro de clientes, com seu nome, e-mail e telefone, assim como a de seus respectivos pets, com nome, tipo, porte, e data de nascimento.
  • Cadastrar produtos e checar sua disponibilidade em estoque.
  • O agendamentos de serviços
  • Criação e organização de pedidos
  • E muito mais.

  Com a utilização dessa API, os petshops mantem um banco de dados único que otimiza o trabalho e o fluxo de informações dentro da empresa, indiretamente diminuindo erros e tempo desperdiçado.

Instalação

  Realizar um Git Clone do repositório.
  npm install para instalar todas as dependências necessárias.

  Configurar o arquivo .env:
DB_HOST=localhost
DB_NAME=soulpet_db
DB_USER=root
DB_PASSWORD=(senha do mySQL)

Dependências Necessárias

@hapi/joi | dotenv | express | morgan | mysql2 | sequelize

Ferramentas necessárias:

MySQl
Git
Node js

Utilização

  Deve-se primeiro inicializar o repositório

Inicialização

npm start
   Abre em: http://localhost:3001

Models:

Clientes

  • nome
    • String, com no máximo 130 caracteres
    • Obrigatório
  • email
    • String, com no máximo 130 caracteres no formato padrão de e-mail
    • Deve ser um e-mail único
    • Obrigatório
  • telefone
    • String, com no máximo 130 caracteres
    • Obrigatório
  • endereco
    • Deve satisfazer as condições no model "endereco"
    • Opcional

Endereco

  • uf
    • String com no máximo 2 caracteres
    • Obrigatório
  • cidade
    • String com no máximo 255 caracteres
    • Obrigatório
  • cep
    • String com no máximo 9 caracteres
    • Obrigatório
  • rua
    • String com no máximo 255 caracteres
    • Obrigatório
  • numero
    • String com no máximo 255 caracteres
    • Obrigatório

Pets

  • nome
    • String, com no máximo 130 caracteres
    • Obrigatório
  • tipo
    • String com no máximo 100 caracteres
    • Obrigatório
  • porte
    • String com no máximo 100 caracteres
    • Obrigatório
  • dataNasc
    • Data no formato YYYY/MM/DD
    • Obrigatório

Produtos

  • nome
    • String com no máximo 255 caracteres
    • Obrigatório
  • preco
    • Número float
    • Obrigatório
  • descricao
    • String com no máximo 150 caracteres
    • Obrigatório
  • desconto
    • Número float
    • Obrigatório
  • dataDesconto
    • Data no formato YYYY/MM/DD
    • Obrigatório
  • categoria
    • String com no máximo 255 caracteres
    • Obrigatório

Agendamentos

  • dataAgendada
    • Data no formato YYYY/MM/DD
    • Obrigatório
  • realizada
    • Boolean (TRUE/FALSE)
    • Obrigatório

Serviços

  • nome
    • String com no máximo 255 caracteres
    • Obrigatório
  • preco
    • Número float
    • Obrigatório

Rotas disponíveis:

Clientes

GET

POST

  • Cadastra um novo cliente http://localhost:3001/clientes

    • Body:
        nome = Nome do cliente
        email = Email do cliente
        telefone = Telefone do cliente
        endereco (opcional) = Endereço do cliente, inclui: UF, Cidade, Cep, Rua, Número

PUT

  • Atualiza os dados de um cliente http://localhost:3001/clientes/:id
    • Params:
        id = o id do cliente gerado pelo mySQL
    • Body:
        nome = Nome do cliente
        email = Email do cliente
        telefone = Telefone do cliente
        endereco (opcional) = Endereço do cliente, inclui: UF, Cidade, Cep, Rua, Número

DELETE

Pets

GET

POST

  • Cadastra um novo pet http://localhost:3001/pets
    • Body:
        nome = Nome do pet
        tipo = Tipo do pet
        porte = Porte do pet
        dataNasc = Data de nascimento do pet
        clienteId = O id do pet gerado pelo mySQL

PUT

  • Atualiza os dados de um pet http://localhost:3001/pets/:id
    • Params:
        id = O id do pet gerado pelo mySQL
    • Body:
        nome = Nome do pet
        tipo = Tipo do pet
        porte = Porte do pet
        dataNasc = Data de nascimento do pet
        clienteId = O id do cliente gerado pelo mySQL

DELETE

Produtos

GET

POST

  • Cadastra um novo produto http://localhost:3001/produtos
    • Body:
        nome = Nome do produto
        descricao = Descrição do produto
        preco = Preço do produto
        desconto = Desconto a ser aplicado no produto
        dataDesconto = Data de vencimento do desconto
        categoria = Categoria do produto

PUT

  • Atualiza os dados de um produto http://localhost:3001/produtos/:id
    • Params:
        id = O id do produto gerado pelo mySQL
    • Body:
        nome = Nome do produto
        descricao = Descrição do produto
        preco = Preço do produto
        desconto = Desconto a ser aplicado no produto
        dataDesconto = Data de vencimento do desconto
        categoria = Categoria do produto

DELETE

Agendamentos

GET

POST

  • Cadastra um novo agendamento http://localhost:3001/agendamentos
    • Body:
        dataAgendada = Data agendada para o serviço
        petId = O id do pet gerado pelo mySQL
        ServicoId = O id do serviço gerado pelo mySQL

PUT

  • Atualiza os dados de um agendamento http://localhost:3001/agendamentos/:id
    • Params:
        id = O id do agendamento gerado pelo mySQL
    • Body:
        dataAgendada = Data agendada para o serviço
        realizada = Se o serviço já foi realizado
        petId = O id do pet gerado pelo mySQL
        ServicoId = O id do serviço gerado pelo mySQL

DELETE

Serviços

GET

POST

DELETE

Devs: