Giter VIP home page Giter VIP logo

projeto-app-delivery's Introduction

🚚 Boas vindas ao meu repositório do Projeto App de Delivery!! 🚀

👨‍💻 O que deverá ser desenvolvido

Aqui é meu projeto mais completo até agora 15/03/2023! Nessa aplicação, será responsável por criar e integrar tanto o back-end quanto o front-end, criando uma plataforma de delivery de cerveja. 🍻

Neste projeto, eu desenvolvi um app de delivery para uma distribuidora de bebidas. Veja abaixo um contexto para entender melhor a entrega que foi feita com este repositório:

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, dona Tereza procurou a sua equipe de pessoas desenvolvedoras com uma ideia de aplicativo que pudesse agilizar a vida de sua equipe e das pessoas que compram seus produtos. O aplicativo precisa:

  • 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;

    A ideia é já pressupõe alguma escalabilidade, dado que foram estabelecidas algumas entidades genéricas no banco de dados e componentização no front-end, para que, caso o sistema cresça, não seja muito difícil mudar e ampliar essa estrutura.

    A proposta encantou, mas dona Tereza quer ver o negócio em ação! Ela está disposta a pagar por um MVP do projeto e vocês fecharam o negócio com um prazo combinado para entrega.

🌐 Orientações

👷 Estruturação do projeto

Para facilitar o entendimento, podemos dividir a aplicação em 4 fluxos principais, uma validação de status entre cliente e pessoa vendedora e cobertura de testes (front-end e back-end):

  • Fluxo Comum que compreende:

    • (1) Tela de Login.
    • (2) Tela de Registro.
  • Fluxo do Cliente que compreende: :

    • (3) Tela de Produtos.
    • (4) Tela de Checkout.
    • (5) Tela de Pedidos.
    • (6) Tela de Detalhes do Pedido.
  • Fluxo da Pessoa Vendedora que compreende:

    • (7) Tela de Pedidos.
    • (8) Tela de Detalhes/Controle do Pedido.
  • Validação do Status do Pedido que compreende:

    • (9) Teste de status.
  • Fluxo da Pessoa Administradora que compreende:

    • (10) Tela de gerenciamento de usuários.
  • Testes da aplicação que compreende:

    • (11) Testes de cobertura.
  • ⚠️ Importante ⚠️: a tela de login deve ser capaz de direcionar para a tela principal de cada pessoa usuária, sendo as páginas:

    • Do cliente: /customer/products,
    • Da pessoa vendedora: /seller/orders,
    • Da pessoa administradora: /admin/manage
🔰 Iniciando o projeto
  1. Clone o repositório Usar link SSH
  • Entre na pasta do repositório que você acabou de clonar:

    • cd pasta-do-repositório
    1. Instale as dependências [Caso existam] *npm install

    2. Crie uma branch a partir da branch main

  • Verifique se você está na branch main

  • Exemplo: git branch
  • Se não estiver, mude para a branch main

    • Exemplo: git checkout main
  • Agora crie uma branch à qual você vai submeter os commits do seu projeto

  • Você deve criar uma branch no seguinte formato: nome-de-usuario-nome-do-projeto

    • Exemplo: git checkout -b app-delivery
    1. Adicione as mudanças ao stage do Git e faça um commit
  • Verifique que as mudanças ainda não estão no stage

    • Exemplo: git status (deve aparecer listada a pasta maria em vermelho)
  • Adicione o novo arquivo ao stage do Git * Exemplo: * git add . (adicionando todas as mudanças - que estavam em vermelho - ao stage do Git) * git status (deve aparecer listado o arquivo maria/README.md em verde)

  • Faça o commit inicial

    • Exemplo: * git commit -m 'iniciando o projeto x' (fazendo o primeiro commit) * git status (deve aparecer uma mensagem tipo nothing to commit )
    1. Adicione a sua branch com o novo commit ao repositório remoto
  • Usando o exemplo anterior: git push -u origin app-delivery

⚠️ Configurações mínimas para execução do projeto

Na sua máquina você deve ter:

  • Sistema Operacional Distribuição Unix
  • Node versão 16
  • Docker
  • Docker-compose versão >=1.29.2

➡️ O node deve ter versão igual ou superior à 16.14.0 LTS:

  • Para instalar o nvm, acesse esse link;
  • Rode os comandos abaixo para instalar a versão correta de node e usá-la:
    • nvm install 16.14 --lts
    • nvm use 16.14
    • nvm alias default 16.14

➡️ Odocker-compose deve ter versão igual ou superior àˆ1.29.2:

📊 Tecnologias Utilizadas

projeto-app-delivery's People

Contributors

daviazev avatar luidipireshub avatar maycol-mohr avatar christian-vscll avatar arthurbarbosaoliveira avatar trybe-tech-ops avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.