Skip to content

CibeleMartins/studioTattooAPI-M4

Repository files navigation


Logo

Studio Tattoo API com Node, Express, Sequelize e SQLite


Sumário

Sobre | Conhecimentos praticados | Rotas da aplicação | Tecnologias utilizadas

Logo

Sobre

Projeto desenvolvido no final do Módulo 4, na Turma 10 do curso de Desenvolvimento Web Fullstack da Resilia Educação. A finalidade do projeto foi criar uma API para um estúdio de tatuagem utilizando Node, Express, Sequelize e SQLite.

Cada integrante do grupo ficou responsável pela criação de uma API referente à uma entidade do banco de dados do estúdio de tatuagem.

Sendo eles: Atendimentos, tatuadores, produtos e fornecedores.

Nesta aplicação é possível cadastrar, listar, atualizar e deletar atendimentos.

Conhecimentos Praticados

✔ NodeJs
✔ Express
✔ SQLite3
✔ Sequelize
✔ CRUD com Sequelize
✔ Padrão MVC

Rotas da aplicação:

Atendimentos

GET / - A rota deve exibir todos os atendimentos cadastrados.

GET /atendimentos/:id - A rota deve listar um atendimento baseado em seu ID.

POST /atendimentos - A rota deve cadastrar um atendimento com as informações passadas no body da requisição.

{
nome:"Gisele",
sobrenome:"Vieira Rocha",
cpf_cliente: "037.888.333-09",
email:"rochavieira@hotmail.com",
telefone:"44 9 99387752",
descricao_tattoo:"Uma tatuagem de um barco, de mais ou menos 50cm no braço.",
link_foto_tattoo:"https://www.google.com/url?sa=i&url=https%3A%2F%2Ftudocommoda.com%2Fpiercing-tattoo%2Ftatuagem-de-barco-e-navio%2F&psig=AOvVaw2i_rXpQXIrKT0s3IbowbEN&ust=1647831430415000&source=images&cd=vfe&ved=0CAsQjRxqFwoTCNDkgMzY0_YCFQAAAAAdAAAAABAD",
 data_sessao_tattoo:"2022-04-17",
 nome_tatuador:"Maria Júlia Rosseto"
}

PATCH /atendimentos/:id - A rota deve atualizar um atendimento com as informações passadas no body da requisição. Caso necessário apenas uma informação pode ser atualizada um por vez.

{
id: 1,
nome: "John Doe",
sobrenome: "Martins",
cpf_cliente: "064.332.633-05",
email: "john@hotmail.com",
telefone: "44 9 99786753",
descricao_tattoo: "Uma tatuagem de dragão, sem cores, de mais ou menos 70cm nas costas."
}

DELETE /atendimentos/:id - A rota deve deletar um atendimento baseado em seu ID.


Validação de dados:

Foram adicionadas as seguintes validações para os dados recebidos nas requisições:

GET/PATCH/DELETE

  • O parâmetro da rota de listagem, atualização e deleção devem ser um número, e correspondente a um id de atendimento existente.

Rodando o projeto:

Pré-requisitos:

Antes de começar, você precisará instalar em sua máquina as seguintes ferramentas: Git, Node.js e Insomnia.
Além disso, é aconselhável ter um editor como o VSCode para trabalhar com o código!

Instalando e rodando o projeto:

# Crie uma pasta onde desejar, clique com o botão direito e depois clique em -> Git Bash Here.

# Clone este repositório.
$ git clone https://github.com/CibeleMartins/studioTattooAPI-M4

# OBS: Para colar o link no Git clique com o botão direito e depois em -> Paste.

# Abra a pasta clonada em seu VSCode.

# Ao abrir a pasta no VSCode, clique em -> Terminal e inicie um novo terminal.

# Certifique-se de que está dentro da pasta clonada para que os outros comandos funcionem com êxito.
$ cd studioTattooAPI-M4

# Instale as dependências do projeto.
$ npm install

# Inicie o servidor da aplicação.
$ npm start

# Após isso, para não precisar abrir um novo terminal, aperte CTRL + C, digite "s" e aperte ENTER.

# Em seguida digite o comando responsável por criar a base de dados com a entidade Atendimentos.
$ npm run create-table

# OBS: 1 - Caso deseje fazer alguma alteração na entidade Atendimentos, entre em -> Migrations para configurá-la e em -> Models para passar a configuração da migração, e depois digite o comando supracitado. 2 - Caso seja feito esse tipo de alteração na tabela, é necessário também, inserir as alterações nos Atendimentos pré-inseridos na pasta seeders.

# Após, declare o comando que vai inserir alguns Atendimentos já pré-inseridos no módulo da pasta seeders para visualizarmos na tabela Atendimentos.
$ npm run populate-table 

# Certifique-se de que o arquivo -> database.sqlite foi criado na pasta -> database e que a tabela possui três registros.

# Inicie a aplicação novamente para realizar as etapas no Insomnia com êxito.
$ npm start

# Se desejar deletar a migração de colunas e dados da tabela Atendimentos digite o comando
$ npm run delete-table

#Obs: Caso o usuário queira incrementar o projeto é recomendado que observe e verifique a documentação do Sequelize.
https://sequelize.org/

CRUD com Insomnia:

Utilize o Insomnia para realizar as requisições na studioTattooApi! Para isso, abra o Insomnia no seu computador.

Clique em -> Create e depois em -> File.

Vá até o arquivo -> crudInsomnia.har inserido dentro da pasta raiz do projeto, selecione-o e clique em -> import.

Ou somente clique no botão abaixo, observe os Gifs e realize as etapas seguintes

Run in Insomnia


Abra a coleção criada no Insomnia com o nome My Collection. Através dos métodos HTTP você pode realizar todas as operações do CRUD com a studioTattooApi. Para isso é necessário que você clique em -> No Environment -> Manage Environments -> Base Environments e declare o seguinte json

{ "url": "localhost:3000" }

Clique em -> Done.

Após isso, utilize a variável de ambiente URL antes do nome da rota e teste o CRUD da aplicação.



Acesse a aplicação:

Também é possível acessar as rotas da aplicação através da URL: https://appstudiotattoo.herokuapp.com

OBS: Para melhor visualização dos dados da aplicação, baixe a extensão JSON Viewer em seu navegador.

Dependências:

"dependencies": {
    "chalk": "^5.0.1",
    "dotenv-safe": "^8.2.0",
    "express": "^4.17.3",
    "path": "^0.12.7",
    "sequelize": "^6.17.0",
    "sequelize-cli": "^6.4.1",
    "sqlite3": "^5.0.2",
    "url": "^0.11.0"
  },
  "devDependencies": {
    "nodemon": "^2.0.15"
  }
}

Tecnologias utilizadas:


Desenvolvido por Cibele Martins .

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published