DaniPoletto / challenge-alura-back-end-6-nodejs

Projeto desenvolvido durante a 6ª edição do Challenge Backend da Alura

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Challenge Alura Back-end 6 edição

🚧 Projeto em construção 🚧

O que é um challenge

São 4 semanas de desafios propostos pela plataforma de ensino Alura com o objetivo de praticar construindo um projeto. Toda semana são disponibilizados desafios e o aluno deve usar o material de apoio fornecido a cada semana para resolver o desafio proposto.

Projeto

Essa edição tem como objetivo construir uma api para adoção de pets.

Desafios de cada semana

  • 1ª semana - CRUD de tutores e testes de api utilizando Postman

    • Retornar tutores
    • Retornar um tutor
    • Cadastrar tutor
    • Atualizar tutor
    • Deletar tutor
    • Testes Postman
  • 2ª semana - Relacionamento entre entidades e engenharia de software.

    • Retornar abrigos
    • Retornar um abrigo
    • Cadastrar abrigo
    • Atualizar abrigo
    • Deletar abrigo
    • Retornar pets
    • Retornar um pet
    • Cadastrar pet
    • Atualizar pet
    • Deletar pet
    • Cadastrar adoção
    • Deletar adoção
    • Testes Postman
  • 3ª e 4ª semana - Autenticação e testes

Tecnologias utilizadas

NodeJs, MySql, Express e Sequelize.

Esquema do banco de dados

Tutor

Inicializando o projeto

  1. Instalando dependências
npm install
  1. Rodando servidor na pasta api
npm start

Padrão

O padrão de formato utilizado é o Json tanto para requisições como resposta.

URL Base

http://127.0.0.1:8000

Rotas

Cabeçalhos

Todas as rotas devem receber os cabeçalhos:

Cabeçalho Valor
Accept application/json

1 Tutor

1.1 Retornar tutores

Método Rota Descrição BODY PARAMS QUERY PARAMS
GET /tutors Retornar todas os tutores - -

Tutor

1.2 Retornar um tutor

Método Rota Descrição BODY PARAMS QUERY PARAMS
GET /tutors/{id} Retornar um tutor por id - -

Tutor

1.3 Cadastrar um tutor

Método Rota Descrição BODY PARAMS QUERY PARAMS
POST /tutors Cadastrar um tutor
{
"name": "Daniela",
"email": "daniela@teste.com.br",
"password": "123456"
}
-
1.3.1 Campos
Nome Tipo Descrição
name string Obrigatório
email string Obrigatório
password string Obrigatório

Tutor

1.4 Atualizar um tutor

Método Rota Descrição BODY PARAMS QUERY PARAMS
PUT /tutors/{id} Atualizar um tutor por id
{
"name": "Ana",
"email": "ana@teste.com.br",
"password": "654321"
}
-
1.4.1 Campos
Nome Tipo Descrição
name string Obrigatório
email string Obrigatório
password string Obrigatório

Tutor

1.5 Deletar um tutor

Método Rota Descrição BODY PARAMS QUERY PARAMS
DELETE /tutord/{id} Deletar um tutor por id - -

Tutor

2 Abrigos

2.1 Retornar abrigos

Método Rota Descrição BODY PARAMS QUERY PARAMS
GET /shelters Retornar todas os abrigos - -

Shelter

2.2 Retornar um abrigo

Método Rota Descrição BODY PARAMS QUERY PARAMS
GET /shelters/{id} Retornar um abrigo por id - -

Shelter

2.3 Cadastrar um abrigo

Método Rota Descrição BODY PARAMS QUERY PARAMS
POST /shelters Cadastrar um abrigo
{
"name": "Daniela",
"email": "daniela@teste.com.br",
"password": "123456"
}
-
2.3.1 Campos
Nome Tipo Descrição
name string Obrigatório
email string Obrigatório
password string Obrigatório

Shelter

2.4 Atualizar um abrigo

Método Rota Descrição BODY PARAMS QUERY PARAMS
PUT /shelters/{id} Atualizar um abrigo por id
{
"name": "Ana",
"email": "ana@teste.com.br",
"password": "654321"
}
-
2.4.1 Campos
Nome Tipo Descrição
name string Obrigatório
email string Obrigatório
password string Obrigatório

Shelter

2.5 Deletar um abrigo

Método Rota Descrição BODY PARAMS QUERY PARAMS
DELETE /shelterd/{id} Deletar um abrigo por id - -

Shelter

3 Pets

3.1 Retornar pets

Método Rota Descrição BODY PARAMS QUERY PARAMS
GET /pets Retornar todas os pets - -

Pet

3.2 Retornar um pet

Método Rota Descrição BODY PARAMS QUERY PARAMS
GET /pets/{id} Retornar um pet por id - -

Pet

3.3 Cadastrar um pet

Método Rota Descrição BODY PARAMS QUERY PARAMS
POST /pets Cadastrar um pet
{
{"shelter_id": 1,
"name": "Doguinho",
"description": "Muito carinhoso",
"adopted": false,
"age": 2,
"address": "rua 1",
"image": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQktXg5_v8-L9AslphhrFvphE12SWkGl-_Jig&usqp=CAU"}
}
-
3.3.1 Campos
Nome Tipo Descrição
name string Obrigatório
shelter_id inteiro Obrigatório
description string Obrigatório
adopted booleano Obrigatório
age inteiro (meses) Obrigatório
address string Obrigatório
image string Obrigatório

Pet

3.4 Atualizar um pet

Método Rota Descrição BODY PARAMS QUERY PARAMS
PUT /pets/{id} Atualizar um pet por id
{
{"shelter_id": 1,
"name": "Doguinho",
"description": "Muito carinhoso",
"adopted": false,
"age": 2,
"address": "rua 1",
"image": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQktXg5_v8-L9AslphhrFvphE12SWkGl-_Jig&usqp=CAU"}
}
-
3.4.1 Campos
Nome Tipo Descrição
name string Obrigatório
shelter_id inteiro Obrigatório
description string Obrigatório
adopted booleano Obrigatório
age inteiro (meses) Obrigatório
address string Obrigatório
image string Obrigatório

Pet

3.5 Deletar um pet

Método Rota Descrição BODY PARAMS QUERY PARAMS
DELETE /petd/{id} Deletar um pet por id - -

Pet

4 Adoções

4.1 Cadastrar uma adoção

Método Rota Descrição BODY PARAMS QUERY PARAMS
POST /adoptions Cadastrar um abrigo
{
"pet_id": 1,
"tutor_id": 1,
"date": "2023-04-07"
}
-
4.1.1 Campos
Nome Tipo Descrição
pet_id inteiro Obrigatório
tutor_id inteiro Obrigatório
date string no formato YYYY-MM-DD Obrigatório

Adoption

4.2 Deletar uma adoção

Método Rota Descrição BODY PARAMS QUERY PARAMS
DELETE /adoptions/{id} Deletar um pet por id - -

Adoption

About

Projeto desenvolvido durante a 6ª edição do Challenge Backend da Alura


Languages

Language:JavaScript 100.0%