Skip to content

unamednada/store-manager

Repository files navigation

Store Manager

Projeto back-end, API RESTful desenvolvida em modelo MSC, com CRUD completo em node.js + express (com express-rescue), banco de dados MySQL. Foram utilizados schemas e middlewares para a segurança e validação juntamente com o Joi.

Sistema de gerenciamento de vendas com autenticação e autorização.

Esta API contém testes unitários para garantir a qualidade do resultado. Cobertura mínima de 60% de código.

URI base da API: Deploy

A API responde aos métodos HTTP abaixo. As requisições devem ser feitas para https://store-manager-deploy.herokuapp.com/<ENDPOINT>. A URI base não contém nenhum conteúdo relevante. Recomendo utilizar o Postman, o Insomnia ou outra aplicação para acessar os endpoints.

LISTA DE ENDPOINTS:

  • /sales:

    • GET /;
    • POST /;
    • GET /<id>;
    • DELETE /<id>;
    • PUT /<id>;
  • /products:

    • GET /;
    • POST /;
    • GET /<id>;
    • DELETE /<id>;
    • PUT /<id>;

Projeto incentivado pela Trybe, no módulo de back-end do curso de Desenvolvimento Web.


Habilidades

- Planejar e Desenvolver uma API RESTful em camadas (MSC);

- Conhecimentos em JS, SQL, arquitetura e padrões de projeto;

Protótipo do projeto

Project Gif

🗒 PARA RODAR O STORE MANAGER LOCALMENTE:

  1. Clone o repositório
  • git clone [email protected]:unamednada/store-manager.git
  • Entre na pasta do repositório que você acabou de clonar:
    • cd store-manager
  1. Instale as dependências e inicialize o projeto
  • Instale as dependências:
    • npm install
  1. Certifique-se de que seu servidor MySQL está rodando, senão inicialize
  • Verifique se o serviço está online:
    • sudo systemctl status mysql
  • Caso esteja offline, inicie o serviço:
    • sudo systemctl start mysql
  1. Faça a migração do banco de dados para sua máquina local
  • Abra seu terminal ou o seu workbench e faça a query contida no arquivo:
    • StoreManager.sql
  1. Crie um arquivo chamado .env na raiz do projeto contendo as seguintes variáveis:
  • PORT: a porta em que a API vai receber as requisições
  • MYSQL_HOST: o hospedeiro do banco de dados, no caso da máquina local, o localhost
  • MYSQL_USER: seu usuário do MySQL
  • MYSQL_PASSWORD: a senha para acessar o MySQL
  • MYSQL_DB_NAME: o nome do banco de dados que criamos no passo 3, StoreManager
  1. Rode o servidor e vá até http://localhost:3001 no seu navegador
  • Verifique que a sua porta 3001 está livre no localhost:
    • sudo ss -plnut
  • Agora, execute o servidor
    • npm start

🗒 PARA CONTRIBUIR COM O STORE MANAGER:

  1. Clone o repositório
  • git clone [email protected]:unamednada/store-manager.git
  • Entre na pasta do repositório que você acabou de clonar:
    • cd store-manager
  1. Instale as dependências e inicialize o projeto
  • Instale as dependências:
    • npm install
  1. Crie uma branch a partir da branch master
  • Verifique que você está na branch master
    • Exemplo: git branch
  • Se não estiver, mude para a branch master
    • Exemplo: git checkout master
  • Agora, crie uma branch onde você vai guardar os commits do seu projeto
    • Você deve criar uma branch no seguinte formato: nome-de-usuario-feat-descricao
    • Exemplo: git checkout -b mariazinha-feat-mobile-design
  1. Adicione as mudanças ao stage do Git e faça um commit
  • Verifique que as mudanças ainda não estão no stage
    • Exemplo: git status (devem aparecer listados os novos arquivos em vermelho)
  • Adicione o novo arquivo ao stage do Git
    • Exemplo:
      • git add . (adicionando todas as mudanças - que estavam em vermelho - ao stage do Git)
      • git status (devem aparecer listados os arquivos em verde)
  • Faça o commit inicial
    • Exemplo:
      • git commit -m 'Feat: mobile responsive design' (fazendo o primeiro commit)
      • git status (deve aparecer uma mensagem tipo nothing to commit )
  1. Adicione a sua branch com o novo commit ao repositório remoto
  • Usando o exemplo anterior: git push -u origin mariazinha-feat-mobile-design
  1. Crie um novo Pull Request (PR)
  • Vá até a página de Pull Requests do repositório no GitHub
  • Clique no botão verde "New pull request"
  • Clique na caixa de seleção "Compare" e escolha a sua branch com atenção
  • Adicione uma descrição para o Pull Request, um título que o identifique, e clique no botão verde "Create pull request". Crie da seguinte forma: [MARIAZINHA][FEAT]Mobile design
  • Adicione uma descrição para o Pull Request, um título claro que o identifique, e clique no botão verde "Create pull request"
  • Não se preocupe em preencher mais nada por enquanto!
  • Volte até a página de Pull Requests do repositório e confira que o seu Pull Request está criado

⚠️ Aguarde review do seu PR ⚠️

Depois que as mudanças forem revisadas, elas poderão ser incorporadas, ou você pode ter que fazer uma mudança pra que elas sejam revisadas novamente. Fique de olho!


Testes Unitários e Cobertura

Para garantir que sua alteração não interfere no funcionamento da API, antes de subir suas modificações, lembre-se de testar as camadas e caso faça mais testes ou modifique os testes atuais, certifique-se de que a cobertura está acima do mínimo:

npm run test:mocha
npm run test

Linter

Para garantir a qualidade do código, vamos utilizar neste projeto os linters ESLint e StyleLint. Assim o código estará alinhado com as boas práticas de desenvolvimento, sendo mais legível e de fácil manutenção! Para rodá-los localmente no projeto, execute os comandos abaixo:

npm run lint
npm run lint:styles

Quando é executado o comando npm run lint:styles, ele irá avaliar se os arquivos com a extensão CSS estão com o padrão correto.

Quando é executado o comando npm run lint, ele irá avaliar se os arquivos com a extensão JS e JSX estão com o padrão correto.

Depois de terminar o desenvolvimento

Para "entregar" suas mudanças, siga os passos a seguir:

  • Vá até a página DO SEU Pull Request, adicione a label de "code-review" e marque seus colegas
    • No menu à direita, clique no link "Labels" e escolha a label code-review
    • No menu à direita, clique no link "Assignees" e escolha o seu usuário

⚠ Lembre-se que garantir que todas as issues comentadas pelo Lint estão resolvidas! ⚠


About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published