Este projeto é uma aplicação tanto client-side quanto server-side, nela é possível realizar o cadastro, logar com a conta criada, comprar bebidas e acompanhar o andamento da compra. Também é possível logar como admin, garantindo assim permissão para criar outros usuários vendedores e outros admins. Como vendedor é possível receber pedidos e marcá-los como "preparando" e "em trânsito". Para o front-end foi utilizado React e context API. Para o back-end foi utilizado express.js e sequelize para o banco de dados. Este projeto foi desenvolvido em grupo na Trybe como projeto final do módulo de Back-end. Caso queira ver o readme original do projeto clique neste aqui.
Garanta que você tem instalado na sua máquina:
- Node na versão igual ou superior a 14
- mysql-server
- Primeiro clone o repositório:
git clone https://github.com/VitorLimaRios/sd-08-project-delivery-app.git
- Entre na pasta do repositório:
cd sd-08-project-delivery-app
- Crie um arquivo .env dentro da pasta do back-end seguindo o exemplo do arquivo .env.exemple:
cd back-end && touch .env
- Instale as dependências na pasta raiz do projeto:
cd .. && npm install
- Instale as dependências das pastas front-end e back-end usando o seguinte script na pasta raiz do projeto:
npm run dev:prestart
- Estando na pasta raiz do projeto utilize o seguinte script:
npm run dev
Este script foi criado pela Trybe e ele 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
).
- Caso deseje acessar a aplicação como usuário, você pode criar uma conta ou acessar usando os seguintes dados:
- email:
zebirita@email.com
- senha:
$#zebirita#$
- Caso deseje acessar a aplicação como vendedora, você pode criar uma conta através do admin ou acessar usando os seguintes dados:
- email:
fulana@deliveryapp.com
- senha:
fulana@123
- Caso deseje acessar a aplicação como admin, você pode acessar usando os seguintes dados:
- email:
adm@deliveryapp.com
- senha:
--adm2@21!!--
Alguns Scripts relevantes criados pela Trybe:
-
start
: Limpa as portas3000
e3001
e simula a inicialização no avaliador. Prepara o campo rodando oSequelize
para restaurar o banco de dados de testes (final-test
) e sobe a aplicação compm2
em modofork
(Uma instância pra cada aplicação). Nesse modo as alterações não são assistidas;- uso (na raiz do projeto):
npm start
- uso (na raiz do projeto):
-
stop
: Para e deleta as aplicações rodando nopm2
;- uso (na raiz do projeto):
npm stop
- uso (na raiz do projeto):
-
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 oSequelize
no./back-end
(lembrar de configurar o.env
no mesmo);- uso (na raiz do projeto):
npm run dev:prestart
- uso (na raiz do projeto):
-
db:reset
: Rodas os scripts doSequelize
restaurando o banco de dados de desenvolvimento (final-dev
), utilize caso ocorra algum problema no seu banco local;- uso (na raiz do projeto):
npm run db:reset
- uso (na raiz do projeto):
-
db:reset:debug
: Rodas os scripts doSequelize
restaurando o banco de dados de desenvolvimento (final-dev
), utilize 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
- uso (na raiz do projeto):
-
test <nomes-dos-arquivos>
: Roda todos os testes (ou uma parte deles caso<nomes-dos-arquivos>
seja definido) utilizando o banco de dados de testes (final-test
);- uso (na raiz do projeto):
npm test
,npm test 01login 02register
ou aindanpm run test 01 02
- uso (na raiz do projeto):
-
test:dev <nomes-dos-arquivos>
: Roda todos os testes (ou uma parte deles caso<nomes-dos-arquivos>
seja definido) utilizando o banco de dados de desenvolvimento (final-dev
);- uso (na raiz do projeto):
npm run test:dev
,npm run test:dev 01login 02register
ou aindanpm test:dev 01 02
;
- uso (na raiz do projeto):
-
test:dev:open <nomes-dos-arquivos>
: Roda todos os testes (ou uma parte deles caso<nomes-dos-arquivos>
seja definido) utilizando o banco de dados de desenvolvimento (final-dev
), exemplonpm test:dev:open 01login 02register
ou aindanpm test:dev:open 01 02
; Esse teste deve mostrar abrir uma janela mostrando o comportamento das páginas;- uso (na raiz do projeto):
npm run test:dev:open
,npm run test:dev:open 01login 02register
ou aindanpm test:dev:open 01 02
;
- uso (na raiz do projeto):
-
test:dev:report "<nomes-dos-arquivos>"
: Roda todos os testes (ou uma parte deles caso"<nomes-dos-arquivos>"
seja definido) utilizando o banco de dados de desenvolvimento (final-dev
); Esse teste devolve um output em texto com o resultado de todos os testes; Oslogs
são gerados em./__tests__/reports
.- uso (na raiz do projeto):
npm run test:dev:report
,npm run test:dev:report "01login 02register"
ou aindanpm run test:dev:report "01 02"
;
- uso (na raiz do projeto):
Caio Rocha |
Ediberto Oliveira |
Daniel Rodrigues |
Este projeto foi excelente para treinar meu trabalho em equipe utilizando metodologias àgeis além de me permitir praticar minhas hard skills que aprendi ao longo do curso da Trybe. No geral eu estou orgulhoso do que eu e meus colegas construímos.