/magazon-api

Desafio final proposto pela 4ª Edição da Luiza <Code>.

Primary LanguageJavaScript

Wishlist Magazon Bookstore - API com Node.js

Desafio final proposto pela 4ª Edição do LuizaCode, onde devemos desenvolver uma API Rest para gerenciamento de lista de desejos do e-commerce da livraria Bookstore.

Índice

1. Sobre o projeto

A proposta deste projeto foi desenvolver uma API que permitisse a criação e atualização de clientes, produtos e listas de desejos. O projeto foi realizado em trio, e desde o primeiro contato com a proposta, o planejamento foi o ponto principal. Optamos por utilizar a ferramenta projects do github pra estruturar nosso board de planejamento, com o template de Kanban automatizado, proporcionando melhor organização. Você pode conferi-lo aqui.

Principais objetivos, cada um contendo uma série de solicitações técnicas e funcionalidades:

  • Gerenciamento de clientes;

  • Gerenciamento de produtos;

  • Gerenciamento da lista de desejos;

Nosso boilerplate foi estruturado de acordo com as funcionalidades do projeto.

2. Guia de Instalação

Você também pode testar e manipular nosso projeto localmente, basta seguir os seguintes passos: Assegure-se de ter instalado e conectado o MongoDB.

Após, para clonar o projeto, abra seu terminal, digite o seguinte comando abaixo e aperte enter:

  git clone https://github.com/isisnoron/magazon-api.git

Feito isso, ainda no terminal, entre na pasta clonada e digite o seguinte comando:

  npm install  

Crie o arquivo ".env" na raiz do projeto, cole o código abaixo e salve:

  MONGO_DB_URI=mongodb://localhost:27017/bookstore

Agora vamos rodar a aplicação! Digite no terminal:

  npm start

Prontinho! Já pode usar o projeto. Dentro do banco de dados bookstore, temos as seguintes coleções:

  • clients
  • products
  • wishlists

Você pode utilizar o postman para inserir clientes, produtos e wishlists através do método POST. Assim, as coleções serão automaticamente criadas no banco de dados. Você pode conferir os requisitos e os endpoints através da documentação, utilizando o endpoint /swagger.

3. Endpoints

Conforme foi estabelecido no desenvolvimento do desafio, a API possui os seguintes endpoints:

3.1 /clients

  • GET /clients
  • GET /clients/id/:_id
  • GET /clients/name/:name
  • GET /clients/email/:email
  • GET /clients/wishlist/id/:wishlist_id
  • POST /clients
  • PUT /clients/:_id
  • DELETE /clients/:_id

3.2 /products

  • GET /products
  • GET /products/:code
  • POST /products
  • PATCH /products/:_id
  • DELETE /products/:_id

3.3 /wishlists

  • GET /wishlist
  • GET /wishlist/:_id
  • GET /wishlist/client/id/:_id
  • GET /wishlist/product/id/:_id
  • POST /wishlist
  • PUT /wishlist/:_id
  • DELETE /wishlist/:_id

3.4 /swagger

Documentação da API.

4. Tecnologias utilizadas

5. Implementações Futuras

Em futuras implementações, para a melhoria e desempenho do projeto, desejamos:

  • Acrescentar funcionalidade de login para o usuário, criptografando sua senha. Bem como criação e verificação do token, utilizando autenticação com JWT.
  • Melhoria na questão de validações e tratamentos de erros.
  • Também temos como foco a implementação de testes unitários e automatizados;
  • Gerar mensagens de log;
  • Front-end da aplicação para consumo da API em questão.

6. Autoras do projeto

👩‍💻 Projeto desenvolvido por:

Elisa Vieira Isis Ribeiro Lilian Leandro
Foto da Elisa Vieira
Foto Isis Ribeiro
Foto Lilian Leandro
GitHub - Elisa LinkedIn - Elisa GitHub - Isis LinkedIn - Isis GitHub - Lilian LinkedIn - Lilian

⬆ Voltar ao início