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:up
A 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:down
A 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:coverage
React.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