No description
  • JavaScript 98.8%
  • HTML 0.9%
  • Dockerfile 0.3%
Find a file
2025-11-26 17:20:08 -04:00
deploy Deploy no Docker Hub 2025-10-21 15:08:42 -04:00
src Debug Viagens 2025-11-26 17:20:08 -04:00
uploads Update Imagens Ok 2025-10-21 00:33:17 -04:00
.dockerignore Trabalhando na API 2024-08-28 11:37:04 -04:00
.env Correção Expiração Token 2025-10-22 10:34:56 -04:00
.env.example Update Imagens Ok 2025-10-21 00:33:17 -04:00
.gitignore Coment docker minio local 2025-10-21 08:35:08 -04:00
.gitlab-ci.yml Deploy no Docker Hub 2025-10-21 15:08:42 -04:00
docker-compose-minio.yml Coment docker minio local 2025-10-21 08:35:08 -04:00
docker-compose.yml Up configurações docker + ci/cd + kubernetes 2025-05-10 00:14:16 -04:00
Dockerfile Deploy no Docker Hub 2025-10-21 15:08:42 -04:00
index.js Removido vercel, retornei ao estado anterior 2025-05-05 00:40:19 -04:00
package-lock.json Up validate images 2025-10-20 23:41:00 -04:00
package.json Up validate images 2025-10-20 23:41:00 -04:00
README.md Implementação recuperação de senha ok 2025-07-29 22:16:06 -04:00

# API: Gestão de Abastecimentos

Figma, telas:

  • Splash
  • Login * Cabeçalho
  • Minha Conta * Cabeçalho
  • Inicio (Métricas de Média)
  • Cadastro Usuários * Rodapé
  • Cadastro Veículos * Rodapé
  • Cadastro Fornecedores * Rodapé
  • Cadastro Abastecimentos * Rodapé

Inicio

  • Informações do último abastecimento
  • data, qtde, preço, fornecedor
  • custo médio do motorista e do grupo "motoristas"

Cadastro de Usuários:

  • Tela1: ativo, nome, email, senha, tipo_usuario, foto Cadastro de Veiculos:
  • Tela 1: ativo, placa, modelo, ano, marca
  • Tela 2: renavam, chassi,
  • Tela 3: capacidade, tipoCombustivel
  • Tela 4: observação Cadastro de Fornecedores:
  • Tela 1: ativo, fantasia, cnpj, razao
  • Tela 2: telefone, email,
  • Tela 3: rua, numero, bairro, cidade, estado
  • Tela 4: observação Cadastro de Abastecimentos:
  • Tela 1: data, placa, motorista
  • Tela 2: tipo_Combustivel, litros, preço, total
  • Tela 3: odometro, fornecedor, bairro, cidade, estado
  • Tela 4: observação

Requisitos

* Autenticação e Autorização

  • Autenticação de Usuários: Implementar um sistema seguro de login
  • Controle de Acesso: Definir níveis de permissão (admin, gerente, motorista).

* Gestão de Veículos

  • Cadastro de Veículos: Permitir adicionar, editar e excluir veículos.
  • Consulta de Veículos: Listar veículos e exibir informações.
  • Atribuição de Motoristas: Relacionar motoristas aos veículos.

* Gestão de Motoristas

  • Cadastro de Motoristas: Permitir adicionar, editar e excluir motoristas.
  • Consulta de Motoristas: Listar motoristas e exibir informações.
  • Histórico de Motoristas: Registro de histórico de viagens/abastecimentos por motorista.

* Gestão de Abastecimentos

  • Registro de Abastecimentos: Registrar informações detalhadas de abastecimento (quantidade, data/hora, custo, veículo, motorista, local).
  • Consulta de Abastecimentos: Listar abastecimentos e exibir informações.
  • Histórico de Abastecimentos: Registro de histórico de abastecimentos do motorista logado
  • Futuro: Controle de Estoque de Combustível + Alertas de Reabastecimento

* Informações de Consumo Médio

  • Cálculo de Consumo Médio: Monitorar o consumo médio de combustível por veículo e motorista.
  • Relatórios de Consumo: Gerar relatórios diários, semanais ou mensais de consumo e eficiência.

* Testes e Documentação

  • Testes Automatizados: Testar endpoints, tanto para funcionamento correto quanto para segurança.
  • Documentação da API: Criar uma documentação detalhada usando ferramentas como Swagger ou Postman.

* Performance, Cache e Escalabilidade

  • Otimização de Consultas: Garantir consultas eficientes ao banco de dados.
  • Uso de Cache: Implementar cache para melhorar a performance de leituras frequentes.
  • Escalabilidade: Arquitetura que suporte crescimento, tanto em termos de volume de dados quanto em número de requisições.

Instruções

Validar versões

  • Listagem de versões
    npm -v
    node -v
    

Instalar dependencias

  • Listagem de dependencias

    npm install
    npm i express
    npm i mongoose
    npm i dotenv
    npm i nodemon
    npm i cors
    

    Para paginação:

    npm i mongoose-paginate-v2
    

    Para autenticação:

    npm i bcryptjs
    npm i jsonwebtoken
    

    Para seed:

    npm i faker-br
    

    Para documentação:

    npm i swagger-ui-express
    npm i swagger-jsdoc
    

    npm i zod

    npm i nodemailer
    
    

Subir o banco de dados

  • Cria um ".env" copiando o conteude de ".env.example"

    cp .env.example .env
    
  • Sobe o banco do docker compose

    docker compose up -d --build --force-recreate
    
  • Rodar o seed para popular o banco

    docker exec abastecimentoAPI npm run seed
    

Subir API localmente

  • Popula o banco de dados
    npm run seed
    
  • Rodar a aplicação
    npm run dev
    

Subir atualizações no git

  • Sequencia completa
    git add .
    git commit -m "Upload Project"
    git push origin main
    git push gitlab main