Essa é uma implementação de uma aplicação fullstack, com uso de React, Node.js com Express.js, e banco de dados MySQL.
É um aplicativo de delivery de bebidas que contempla 3 fluxos de uso: fluxo do cliente, do vendedor e do administrador; contando com diversas funcionalidades.
A aplicação foi construída com a arquitetura MSC (model-service-controller) e foi Dockerizada.
Tudo isso com validações e testes pensados para os casos de uso da aplicação, garantindo a qualidade e integridade do código.
O foco dessa projeto foi praticar a construção de uma aplicação fullstack completa robusta, construindo e integrando front e back-end.
- Cadastro e login na plataforma
- Redirecionamento no aplicativo de acordo com as credenciais de login (cliente, vendedor ou administrador)
- Validação de token para qualquer operação da aplicação
- Consulta de produtos disponíveis e adição ao carrinho
- Checagem do pedido e remoção de itens do carrinho
- Consulta de vendedores disponíveis e finalização de uma venda
- Consulta de pedidos e seus detalhes
- Acompanhamento e alteração do status do pedido
- Armazenamento dos dados das operações no LocalStorage
- Logout da plataforma
- Registro de novos vendedores pelo administrador
- Consulta e remoção de usuários do sistema pelo administrador
Para rodar esta aplicação é necessário ter o Docker e o Docker Compose (v1.29 ou superior) instalados em sua máquina.
- Clone o repositório e entre no diretório
git clone git@github.com:lzaghi/react-sql-delivery-app.git
cd react-sql-delivery-app- A partir da raiz do projeto, suba os containeres do front, back e banco de dados
npm run compose:upA aplicação já estará rodando! :)
Acesse http://localhost:3000 para a experiência de usuário. O back-end estará rodando em http://localhost:3001.
Para parar a aplicação, basta executar o comando abaixo na raiz do projeto
npm run compose:downA documentação completa da API, com todas as operações possíveis, pode ser consultada localmente em http://localhost:3001/swagger/ após a aplicação estar rodando.

Credenciais de acesso presentes por padrão no banco de dados:
- Cliente
email: zebirita@email.com
senha: $#zebirita#$- Vendedor
email: fulana@deliveryapp.com
senha: fulana@123- Administrador
email: adm@deliveryapp.com
senha: --adm2@21!!--Para rodar os testes
- front-end: entre no container do front e execute o comando
docker exec -it delivery_frontend sh
npm run test:coverage- back-end: entre no container do back e execute o comando
docker exec -it delivery_backend sh
npm run test:coverageReact.js, Node.js, Express.js, MySQL, Docker, JWT, RTL, Mocha, Chai, Sinon, Arquitetura MSC, API RESTful, Swagger
O deploy foi feito nas plataformas PlanetScale (banco de dados), Render (back-end) e Vercel (front-end)
Análise SonarCloud





