Boas vindas ao repositório do projeto App de Delivery!

💻 Sobre

O aplicativo direciona seu fluxo de acordo com o perfil de quem está logando; administrador, cliente ou vendedor. O perfil de cliente direciona para a página de produtos e possui a funcionalidade de acompanhar os pedidos e marcar quando os mesmos são entregues; já o perfil da pessoa vendedora, direciona a aplicação para a parte de gestão de pedidos, onde poderá atualizar o status da entrega entre: preparando ou em trânsito; Enquanto o perfil de administrador é direcionado para a área de gestão de usuários, onde é permitido adicionar e remover pessoa usuária.

👨‍💻 Requisitos

🔨 Ferramentas

Stacks:

  • React com contextAPI;
  • Node.js;
  • Express;
  • MySql;
  • Sequelize (ORM);
  • Styled Componets;
  • Docker;


✨ Executando a aplicação

Via Docker Compose (Recomendado)

⚠️ Atenção

  • É necessário ter o Docker e o Docker Compose instalados na máquina.
  • É necessário que as portas 3000 e 3001 estejam desocupadas.

Após clonar o repositório, sequir os sequintes passos.


🐋 Subindo os containers com as imagens

  • Acessar o diretório raiz do projeto e execute o seguinte comando:
docker-compose up --build
  • OBS.:

    • Este comando irá rodar as migrations e seeders automaticamente, removendo os dados anteriores.
    • Os três containers serão criados e iniciados: backend, frontend e o db.
    • Executar o docker-compose sem a flag -d para que o compose funcione corretamente.

    Acessando a aplicação


    Parando os containers

    ctrl + c

Removendo os containers

docker-compose down


Localmente

⚠️ Atenção

  • É necessário ter o Node e o MySql instalados na máquina.
  • É necessário que as portas 3000 e 3001 estejam desocupadas.

Após clonar o repositório, seguir os seguintes passos.

Back-end

  • Acessar o diretório do back-end.
cd back-end 
  • Definir as varáveis de ambiente em um arquivo .env;
    • É necessário criar um arquivo .env na raiz do diretório do back-end.
    • A seguir, definir as seguintes variáveis de ambiente:
    • Exemplo:
DB_HOST=localhost
DB_USER=root
DB_PASS=sua_senha
DB_NAME=db 
DB_PORT=3306
  • OBS: o arquivo example.env contém um exemplo de como deve ser o arquivo .env.
    • É necessário renomear o arquivo example.env para .env. e preencher as variáveis de ambiente conforme sua configuração.

  • Instalar as dependências.
npm install
  • Rodar o back-end.
npm start
<!-- - OBS.: este comando irá rodar as migrations e seeders do banco de dados automaticamente, removendo os dados anteriores. -->

Front-end

  • Acessar o diretório do front-end.
cd front-end 
  • Instalar as dependências.
npm install
  • Rodar o front-end.
npm start


Localmente com o DB já presente

⚠️ Atenção

  • É necessário ter o Node e o MySql instalados na máquina.
  • É necessário que as portas 8080 e 3001 estejam desocupadas.

Após clonar o repositório, seguir os seguintes passos.

Back-end

  • Acessar o diretório do back-end.
cd backend 
  • Definir as varáveis de ambiente em um arquivo .env;
    • É necessário criar um arquivo .env na raiz do diretório do back-end.
    • A seguir, definir as seguintes variáveis de ambiente:
    • Exemplo:
DB_HOST=localhost
DB_USER=root
DB_PASS=docker
DB_NAME=cashforce 
DB_PORT=3306
  • OBS: o arquivo example.env contém um exemplo de como deve ser o arquivo .env.
    • É necessário renomear o arquivo example.env para .env. e preencher as variáveis de ambiente conforme sua configuração.

  • Instalar as dependências.
npm install
  • Rodar o back-end.
npm run dev
  • OBS.: este comando NÃO irá rodar as migrations e seeders do banco de dados.

Front-end

  • Acessar o diretório do front-end.
cd frontend 
  • Instalar as dependências.
npm install
  • Rodar o front-end.
npm start



📌 Testes de integração

Rodando os testes

Após subir o back-end, seguir os seguintes passos.

  • Acessar o diretório do back-end.
cd backend 
  • Executar os testes.
npm run test



📝 Consultando a documentação da API

Consultando a API

Com o back-end rodando, acessar a seguinte URL em seu navegador:

http://localhost:3001/api-docs