Este é um projeto Full-Stack
desenvolvido em grupo, onde criamos e integramos tanto o Back-End
quanto o Front-End
, para a criação de um app de delivery de uma distribuidora de bebidas. Dentre as funcionalidades do app, destacam-se:
- Acesso via login, tanto pelos clientes quanto pela pessoa vendedora e administradora, porém, com acesso a funções diferentes: (1) A pessoa cliente, que realiza um pedido pela lista de produtos; (2) A pessoa vendedora aprova, prepara e envia o pedido; (3) A pessoa administradora gerencia quem usa o pedido;
- Fazer a comunicação entre clientes e pessoas vendedoras, onde, após realizar o pedido via carrinho de compras, o vendedor recebe o pedido, aprova, prepara e envia. Após recebimento, o cliente marca o pedido como 'recebido'. Ambos possuem os detalhes do pedido;
- Além disso, através dos detalhes do pedido, o cliente têm acesso a informações se o pedido está sendo preparado ou se já saiu pra entrega;
As tabelas do banco de dados, desenvolvido para a criação da API que alimenta a aplicação, possui as seguintes relações:
Front-End
- JavaScript;
- React;
- React Router;
- Context API.
Back-End
- JavaScript;
- Node.Js;
- Express;
- Sequelize;
- MySQL;
- Json Web Token (JWT);
- md5;
- cors;
- express-async-errors;
- Joi.
Localmente
- Após a clonagem do repositório, instale as dependências com
npm install
.
Informações importantes
- O projeto só instala as dependências com a versão 16 do
node
para evitar conflitos de versão, caso não tenha essa versão instalada você pode use onvm
para fazer o gerenciamento de versões; - Para testar o projeto localmente, é fundamental configurar o arquivo de variáveis de ambiente
.env
dentro da pasta./back-end
(ele é o único .env no projeto), conforme exemplo em.env.example
, na mesma pasta; - Inicie o projeto pela raiz, utilizando o comando
npm i
. Após isso, é possível fazer a instalação de ambos os aplicativos (back e front) através da raiz do projeto, utilizando o comandonpm run dev:prestart
(esse comando também restaurará o banco de dados, caso o .env esteja configurado corretamente).
Scripts importantes do package.json
principal
Scripts para uso na raiz do projeto (./package.json
) e não nas aplicações individuais ./front-end/package.json
e ./back-end/package.json
:
npm start
: Limpa as portas3000
e3001
e sobe a aplicação compm2
em modofork
(uma instância para cada aplicação). Nesse modo, as alterações não são assistidas;npm stop
: Para e deleta as aplicações rodando nopm2
;npm run dev
: Limpa as portas3000
e3001
e sobe a aplicação compm2
em modofork
(uma instância pra cada aplicação). Nesse modo, as atualizações são assistidas (modowatch
);npm run 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
;npm run db:reset
: Roda os scripts doSequelize
restaurando o banco de dados de desenvolvimento. Utilize esse script caso ocorra algum problema no seu banco local;npm run db:reset:debug
: Além da mesma função do comando anterior, esse também é capaz de retornar informações detalhadas de erros (quando ocorrerem no processo);