Do que se trata?
Trata-se do Projeto final integrador: Desenvolvimento de Sistemas feito para a Universidade de Santo Amaro (UNISA)
Integrantes:
- FERNANDO DOMINGOS BEZERRA
- MARCOS ANTÔNIO CALIÓ FILHO
- LUCIMAR ALMEIDA DA SILVA
- RODRIGO PEDRASSI ALVES
Neste projeto, nosso grupo desenvolveu um app de delivery para uma distribuidora de bebidas.
A distribuidora de cervejas da dona Tereza está se informatizando! Seu negócio, antes focado em um local específico da cidade, passou a receber uma quantidade massiva de encomendas de outros pontos, expandindo sua atuação via delivery. Isso tudo graças ao excelente preço das bebidas e atendimento da equipe de vendas.
Agora a distribuidora possui alguns pontos de venda na cidade para agilizar no atendimento dessas áreas. Cada ponto de venda, por sua vez, possui uma pessoa vendedora responsável.
Como seu antigo sistema, que era um conjunto de planilhas, já não atende a necessidade do negócio por gerar muita manutenção, procuramos desenvolver uma ideia de aplicativo que pudesse agilizar a vida de sua equipe e das pessoas que compram seus produtos. O aplicativo inclui:
- Ter acesso via login: tanto clientes como pessoas vendedoras, assim como a própria dona Tereza, que administra o sistema, devem ter acesso ao aplicativo via login, porém para funções diferentes: (1) A pessoa cliente, que compra da lista de produtos; (2) A pessoa vendedora, que aprova, prepara e entrega; (3) A pessoa administradora, que gerencia quem usa o aplicativo;
- Fazer a comunicação entre clientes e pessoas vendedoras: a pessoa cliente faz o pedido via "carrinho de compras" e a pessoa vendedora aprova, prepara e envia esse pedido. Quando o produto é recebido por quem comprou, essa pessoa marca o pedido como "recebido". Ambos devem possuir detalhes sobre seus pedidos;
- Se a pessoa cliente faz o pedido, o mesmo deve aparecer para a pessoa vendedora em seu dash de pedidos após a atualização da página. A pessoa cliente, por sua vez, deve ter as informações sobre seu pedido quando sua página for atualizada, ou seja, ter informações se o pedido está sendo preparado ou se já saiu pra entrega;
Algumas das tecnologias utilizadas
- Frontend
- React
- Html
- CSS
- Backend
- Nodejs
- Javascript
- Express
- MySQL
- Sequelize
Scripts do package.json
principal
São os scripts 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 portas3000
e3001
. Também 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 para 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
: 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
);- uso (na raiz do projeto):
npm run dev
- 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
: Roda os scripts doSequelize
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
- uso (na raiz do projeto):
-
db:reset:debug
: Roda os scripts doSequelize
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
- uso (na raiz do projeto):
Algumas observações para rodar o projeto
1. Existe um arquivo chamado 🐳 docker-compose.yml
capaz de subir um container MySQL dispensando a instalação do mesmo. Rode o comando docker-compose up -d
. Caso tenha MySQL instalado cheque o arquivo em back-end/src/database/config/config.js
para a configuração das váriaveis de ambiente
2. É nessário ter instalado o Nodejs em uma versão igual ou superior ao 16
3. Também se faz nessário o gerenciador de pacotes do Nodejs NPM (Node Package Manager)
Usuários do sistema
- Cliente:.
- usuário: zebirita@email.com
- senha: "$#zebirita#$" (sem as "")
- Vendedor:.
- usuário: fulana@deliveryapp.com
- senha: fulana@123
- Adm:.
- usuário: adm@deliveryapp.com
- senha: --adm2@21!!--