Skip to content

Aplicação back-end para gestão de vendas estilos drop shipping, com organização REST e CRUD de produtos e compras.

Notifications You must be signed in to change notification settings

JeffersonSimplicio/project-store-manager

Repository files navigation

STORE MANAGER 🛒

Descrição

Store Manager é um API Rest desenvolvida com uma arquitetura em camadas MSC (Model-Service-Controller), desenvolvida por TDD(Test-driven development). Essa aplicação faz o gerenciamento de vendas do formado drop shipping, conseguindo criar, ler, editar e excluir um produto ou uma venda(CRUD). A aplicação foi desenvolvida em agosto de 2022, durante o Módulo de Back-End da Trybe.

Esquema das tabelas

image

Tecnologias

NodeJS Express.js MySQL Mocha Chai Sinon

O projeto foi desenvolvido em uma arquitetura em camadas MSC (Model-Service-Controller), a interação com o banco de dados MySQL foi feita de maneira direta através de querys. Sendo construída com o framework Express para estruturar endpoints e tratar erros. Usando os princípios dos REST para garantir qualidade e padrão do código, além de padronizar o formato que os dados seriam recebidos e retornados.

O framework Mocha foi utilizado para estruturar os testes, as asserções utilizadas foram providas pela biblioteca Chai. Por tratar-se de testes unitários, apenas uma funcionalidade específica era testada por vez, para que as demais funções não influenciassem nos teste, a biblioteca Sinon foi usada para criar dubles.

Desenvolvimento

Docker Visual Studio Code Insomnia

Para assegurar um ambiente isolado e seguro para o desenvolvimento e dos testes, foi usado o Docker. Os códigos foram escritas na ferramenta da Microsoft, Visual Studio Code. Durante a criação o Nodemon foi utilizado para rodar a execução, essa ferramenta tornou o desenvolvimento mais dinâmico, o monitoramento do comportamento da API foi feito com o Insomnia.

Nesse projeto também foi feita a criação de testes unitários, com cobertura de 100% das linhas¹. Os testes foram feitos para Models, Servirces e Controllers, senso implementado com o uso de Mocha, Chai e Sinon. Os testes possuem dubles, portanto, podem ser executados mesmo sem um banco de dados(npm run test:mocha).

¹ - Relativo aos arquivos testados.

Utilização

💻 Localmente
  • Para rodar a aplicação, obrigatoriamente você deve ter o node instalado em seu computador.

  • É necessário ter o MySQL sendo executado

  • Dica: Caso não possua o banco de dados criado ainda, user o comando npm run migration²

  • Dica: Para povoar o banco de dados, execute o comando npm run seed²

  1. Clone o projeto para sua maquina
git clone git@github.com:JeffersonSimplicio/project-store-manager.git
  1. Entre no diretório gerado
cd project-store-manager
  1. Instale as dependências
npm i
  1. Renomeie o arquivo .env.example para .env e edite os dados para os da sua maquina

  2. Inicialize a aplicação

npm start
🐳 Docker
  • Para rodar a aplicação com docker, é necessário ter instalando em sua maquina Docker e Docker Compose

  • Dica: Caso não possua o banco de dados criado ainda, user o comando npm run migration²

  • Dica: Para povoar o banco de dados, execute o comando npm run seed²

² - execute esses comandos no terminal do container

  1. Clone o projeto para sua maquina
git clone git@github.com:JeffersonSimplicio/project-store-manager.git
  1. Entre no diretório gerado
cd project-store-manager
  1. Suba o ambiente do docker
docker-compose up -d
  1. Acesse o terminal do contêiner
docker exec -it store_manager bash
  1. Instale as dependências
npm i
  1. Inicialize a aplicação
npm start

About

Aplicação back-end para gestão de vendas estilos drop shipping, com organização REST e CRUD de produtos e compras.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published