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.
- 1. Sobre o projeto
- 2. Guia de instalação
- 3. Endpoints
- 4. Tecnologias utilizadas
- 5. Implementações Futuras
- 6. Autoras do 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.
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.
Conforme foi estabelecido no desenvolvimento do desafio, a API possui os seguintes endpoints:
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
GET /products
GET /products/:code
POST /products
PATCH /products/:_id
DELETE /products/:_id
GET /wishlist
GET /wishlist/:_id
GET /wishlist/client/id/:_id
GET /wishlist/product/id/:_id
POST /wishlist
PUT /wishlist/:_id
DELETE /wishlist/:_id
Documentação da API.
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.
👩💻 Projeto desenvolvido por: