Projeto de final de módulo do curso de Web Dev Full Stack da Resilia Educação referente ao Módulo 4.
Projeto realizado utilizando o Node.js com framework Express. SQLite foi utilizado como banco de dados do projeto.
Abra o terminal/Powershell e rode os comandos abaixo:
Clonando o repositório:
git clone https://github.com/Josirocha/moko_tattoo_studio.git
Entrando na pasta:
cd moko_tattoo_studio
Instalando os pacotes:
npm install
Criando e populando o banco de dados:
npm run database
Rodando o projeto:
npm start
-
GET /produtos
Retorna todos os dados do banco. Esquema da resposta:
{ "produtos": [ { "id": 1, "descricao": "Agulhas de tatuagem", "quantidade": 178, "valor": 2.5, "tipo": "Materiais", "id_fornecedor": 1 }, { "id": 2, "descricao": "Tinta preta", "quantidade": 52, "valor": 30.99, "tipo": "Materiais", "id_fornecedor": 2 } ] }
-
GET /produtos/id/{id}
Retorna o produto correspondente ao id. Esquema da resposta:
{ "produto": { "id": 16, "descricao": "Tinta branca", "quantidade": 45, "valor": 80, "tipo": "Materiais", "id_fornecedor": 2 } }
-
POST /produtos
Insere um produto na base de dados. Esquema da requisição:
{ "descricao": "Tinta roxa", "quantidade": 45, "valor": 80, "tipo": "Materiais", "id_fornecedor": 2 }
Esquema da resposta
{ "mensagem": "Produto inserido com sucesso", }
-
PUT /produtos/id/{id}
Atualiza um produto de acordo com o id. Esquema da requisição:
{ "descrição": "Tinta vermelha", "quantidade": 45, "valor": 80, "tipo": "Materiais", "id_forncedor": 2 }
Esquema da resposta:
{ "msg": "Produto atualizado com sucesso" }
-
DELETE /produtos/id/{id}
Deleta um produto de acordo com o id. Esquema da resposta:
{ "msg": "Produto com id 25 deletado com sucesso" }
-
GET /tatuadores
Lista todos os registros de pessoas tatuadoras cadastradas
Esquema da resposta:
{ "Pessoas tatuadoras": [ { "id": 1, "nome": "Lucas Sampaio", "telefone": "21-998875291" }, { "id": 2, "nome": "Samantha Costa", "telefone": "21-985662419" }, { "id": 3, "nome": "Pablo Mendes", "telefone": "21-975498842" } ] }
-
GET /tatuadores/:id
Lista o registro da pessoa tatuadora cadastrada com determinado id. O número do id deve ser passado como parâmetro na rota.
Esquema da resposta:
{ "id": 2, "nome": "Samantha Costa", "telefone": "21-985662419" }
-
POST /tatuadores
Insere um registro de pessoa tatuadora.
No body da requisição deve ser passado apenas nome e telefone como atributos, pois o id é gerado por autoincremento.
Esquema da requisição:
{ "nome": "Raquel Avoante", "telefone": "21-123456789" }
Esquema da resposta:
{ "msg": "Pessoa tatuadora inserida com sucesso" }
-
PUT /tatuadores/:id
Atualiza um registro específico de pessoa tatuadora com determinado id. O número do id deve ser passado como parâmetro na rota, e a requisição deve ter um body.
Esquema da requisição:
{ "nome": "Avoante", "telefone": "85-123456789" }
Esquema da resposta:
{ "mensagem": "Pessoa tatuadora de id 4 atualizada com sucesso!" }
-
DELETE /tatuadores/:id
Apaga um registro específico, conforme o id passado como parâmetro na rota.
Esquema da resposta:
{ "mensagem": "Pessoa tatuadora de id 4 deletada com sucesso" }
-
GET /fornecedores
Retorna todos os dados do banco. Esquema da resposta:
{ "resultado": [ { "id": 1, "nome": "LUVAS", "telefone": "21-912345678", "endereco": "Rua São Bento, nº 123", "email": "luvasmil@gmail.com" }, { "id": 2, "nome": "ELECTRIC INK", "telefone": "21-998741145", "endereco": "Av. Mario Cruz, nº 2002", "email": "eletricink@gmail.com" }, { "id": 3, "nome": "CAPITAL PIERCING", "telefone": "21-998663347", "endereco": "Rua João de Barro, nº 198", "email": "capitalpiercing@gmail.com" } ] }
-
GET /fornecedoresId/id/{id}
Retorna o fornecedor correspondente ao id. Esquema da resposta:
{ "resultado": { "id": 1, "nome": "LUVAS", "telefone": "21-912345678", "endereco": "Rua São Bento, nº 123", "email": "luvasmil@gmail.com" } }
-
POST /fornecedores
Insere um fornecedor na base de dados. Esquema da requisição:
{ "nome": "POMADAS", "telefone": "21-912345678", "endereco": "Rua São Bento, nº 123", "email": "agulhasmil@gmail.com" }
Esquema da resposta
{ "mensagem": "Fornecedor inserido com sucesso!" }
-
PUT /fornecedores/id/{id}
Atualiza um fornecedor de acordo com o id. Esquema da requisição:
{ "nome": "LUVAS", "telefone": "21-912345678", "endereco": "Rua São Bento, nº 123", "email": "luvasmil@gmail.com" }
Esquema da resposta:
{ "mensagem": "Fornecedores atualizado com sucesso!" }
-
DELETE /fornecedores/id/{id}
Deleta um fornecedor de acordo com o id. Esquema da resposta:
{ "mensagem": "Fornecedores atualizado com sucesso!" }
-
GET /clientes
Retorna todos os dados do banco. Esquema da resposta:
{ "Usuarios": [ { "id": 1, "nome": "Eugênio Oliveira", "telefone": "21-994785122" }, { "id": 2, "nome": "Olívia Ribeiro", "telefone": "21-988796335" }, { "id": 3, "nome": "Mirtes Faria Lima", "telefone": "21-974659987" } ] }
-
GET /clientes/{id}
Retorna o cliente correspondente ao id. Esquema da resposta:
{ { "dados": { "id": 1, "nome": "Eugênio Oliveira", "telefone": "21-994785122" } } }
-
POST /clientes
Insere um cliente na base de dados. Esquema da requisição:
{ "nome": "Manuela Esteves", "telefone": "21-992246521" }
Esquema da resposta
{ "newUser": { "msg": "Usuário Manuela Esteves inserido com sucesso", "erro": false } }
-
PUT /clientes/{id}
Atualiza um cliente de acordo com o id. Esquema da requisição:
{ "nome": "Maria Esteves", "telefone": "21-992246521" }
Esquema da resposta:
{ "msg": "Usuário Maria Esteves, com id 1 atualizado com sucesso", "erro": false }
-
DELETE /clientes/{id}
Deleta um cliente de acordo com o id. Esquema da resposta:
{ "msg": "Usuário 1 deletado com sucesso!", "erro": "false" }
-
GET/tatuagens
Retorna todos os dados do banco.
Esquema da resposta:
{ "resultado": [ { "id": 1, "categoria": "Realismo", "link": "https://d5y9g7a5.rocketcdn.me/wp-content/uploads/2021/01/tatuagens-realistas-desenhos-impressionantes-para-te-inspirar-960x658.jpg", "id_tatuador": 1 }, { "id": 2, "categoria": "Maori", "link": "https://blog.pajaris.com.br/wp-content/uploads/2021/02/tatuagem-maori-26.jpg", "id_tatuador": 2 }, { "id": 3, "categoria": "OldSchool", "link": "https://www.minhatatuagem.com/wp-content/uploads/2020/01/tatuagem-oldschool-40.jpg", "id_tatuador": 3 }, ] }
-
GET /tatuagens/{id}
Retorna a imagem correspondente ao id.
Esquema da resposta:
{ "resultado": { "id": 1, "categoria": "Realismo", "link": "https://d5y9g7a5.rocketcdn.me/wp-content/uploads/2021/01/tatuagens-realistas-desenhos-impressionantes-para-te-inspirar-960x658.jpg", "id_tatuador": 1 } }
-
POST /tatuagens
Insere uma tatuagem na base de dados.
Esquema da requisição:
{ { "categoria": "Aquarela", "link": "https://s3-blog.tattoo2me.com/wp-content/uploads/2020/01/1*c0c4SlsntfZ9Dl1uxTO-hQ.jpeg", "id_tatuador": "2" } }
Esquema da resposta
{ "mensagem": "Tatuagem inserida com sucesso!" }
-
PUT /tatuagens/{id}
Atualiza uma imagem de acordo com o id.
Esquema da requisição:
{ "categoria": "Aquarela", "link": "https://s3-blog.tattoo2me.com/wp-content/uploads/2020/01/1*c0c4SlsntfZ9Dl1uxTO-hQ.jpeg", "id_tatuador": "3" }
Esquema da resposta:
{ "mensagem": "Tatuagem atualizada com sucesso!" }
-
DELETE /tatuagens/{id}
Deleta uma imagem de acordo com o id.
Esquema da resposta:
{ "mensagem": "Tatuagem deletada com sucesso!" }
-
GET /agendamentos
Retorna todos os dados do banco. Esquema da resposta:
{ "agendamentos": [ { "id": 1, "data": "2022-08-15", "horario": "14:00", "id_cliente": 1, "id_tatuador": 2 }, { "id": 2, "data": "2022-08-18", "horario": "15:00", "id_cliente": 2, "id_tatuador": 3 }, { "id": 3, "data": "2022-08-19", "horario": "13:00", "id_cliente": 3, "id_tatuador": 1 }, { "id": 4, "data": "2022-08-30", "horario": "09:00", "id_cliente": 1, "id_tatuador": 2 } ] }
-
GET/agendamentos/{id}
Retorna o agendamento correspondente ao id:
Esquema da resposta:
{
"id": 1,
"data": "2022-08-15",
"horario": "14:00",
"id_cliente": 1,
"id_tatuador": 2
}
-
POST /agendamentos
Insere um agendamento na base de dados. Esquema da requisição:
{ "data": "2022-08-30", "horario": "19:00", "id_cliente": 1, "id_tatuador": 2 }
Esquema da resposta
{ "mensagem": "Agendamento inserido com sucesso", }
-
PUT /agendamentos/{id}
Atualiza um agendamento de acordo com o id. Esquema da requisição:
{ "data": "2022-08-30", "horario": "20:00", "id_cliente": 3, "id_tatuador": 1 }
Esquema da resposta:
{ "msg": "Agendamento com id 3 atualizado com sucesso" }
-
DELETE /agendamentos/{id}
Deleta um agendamento de acordo com o id. Esquema da resposta:
{ "msg": "Agendamento com id 3 deletado com sucesso" }