/brew-buddies

Website dirigido a revendedores de bebidas que implementa sistema de atendimento delivery

Primary LanguageJavaScript

Brew Buddies

Trata-se de uma aplicação que tem como objetivo provêr agilidade de atendimento via delivery a revendedores de bebidas. Foi desenvolvida como projeto de aprendizado em grupo no curso de desenvolvimento Web Trybe.

A aplicação se encarrega de autenticar e autorizar os usuários, assim como organizar os pedidos e entregas:

  • O cliente faz o pedido utilizando um "carrinho de compras"
    • O cliente possui as informações detalhadas e se o pedido está sendo preparado ou se já saiu pra entrega
  • O vendedor aprova, prepara e envia esse pedido
    • O vendedor possui as informações detalhadas sobre o pedido
  • Quando o produto é recebido pelo cliente, o mesmo marca o pedido como "recebido"
  • O administrador do sistema possui a capacidade de atribuir o tipo de usuário enquanto cria um novo, assim como remover usuário já cadastrado

⚠️ MySQL deve estar instalado para o funcionamento da API.

⚠️ Utiliza localStorage do browser.

Ferraments utilizadas
Pré-visualização
Login
Registro de usuário
Comprador - Fazendo pedido
Vendedor - Detalhes e interação com pedido
Comprador - Detalhes e interação com pedido
Administrador - Controle de usuários
Instalação e uso
  1. Clone o repositório e entre na pasta do repositório que você acabou de clonar
git clone git@github.com:pennaor/delivery-app.git
cd ./delivery-app
  1. Instale as dependências
npm install
  1. Crie um arquivo .env no diretório do back-end ou utilize as configurações default

  2. Instale as depedências do front-end/back-end e rode o Sequelize no ./back-end com o script:

npm run dev:prestart
  1. Rode a aplicação nas portas 3000 e 3001:
npm start
  1. Acesse http://localhost:3000

  2. Utilize as credenciais da pessoa administradora para fazer login:

E-mail: adm@deliveryapp.com
Senha: --adm2@21!!--
Scripts principais

Os scripts abaixo são definidos da raiz do projeto (./package.json) e não das aplicações individuais ./front-end/package.json e ./back-end/package.json:

  • start: Limpa as portas 3000 e 3001, subindo a aplicação com pm2 em modo fork (uma instância para cada aplicação). Nesse modo, as alterações não são assistidas;

    • uso (na raiz do projeto): npm start
  • stop: Para e deleta as aplicações rodando no pm2;

    • uso (na raiz do projeto): npm stop
  • dev: Limpa as portas 3000 e 3001 e sobe a aplicação com pm2 em modo fork (uma instância pra cada aplicação). Nesse modo, as atualizações são assistidas (modo watch);

    • uso (na raiz do projeto): npm run dev
  • dev:prestart: A partir da raiz, esse comando faz o processo de instalação de dependências (npm i) nos dois projetos (./front-end e ./back-end) e roda o Sequelize no ./back-end (lembrar de configurar o .env no mesmo);

    • uso (na raiz do projeto): npm run dev:prestart
  • db:reset: Roda os scripts do Sequelize restaurando o banco de dados de desenvolvimento (final -dev). Utilize esse script caso ocorra algum problema no seu banco local;

    • uso (na raiz do projeto): npm run db:reset
  • db:reset:debug: Roda os scripts do Sequelize restaurando o banco de dados de desenvolvimento (final -dev). Utilize esse script caso ocorra algum problema no seu banco local. Esse comando também é capaz de retornar informações detalhadas de erros (quando ocorrerem no processo);

    • uso (na raiz do projeto): npm run db:reset:debug
Testes UI Front-end

Com a aplicação rodando, mude para o diretório do front-end e execute o script:

cd ./front-end
npm test

Para verificar cobertura dos testes, execute o script:

npm run test:coverage
Nosso grupo
Trybe

São de total autoria da Trybe:

  • Proposta do projeto
  • Regras de Lint
  • setup pm2
  • npm scripts