No description
- JavaScript 98.8%
- HTML 0.9%
- Dockerfile 0.3%
| deploy | ||
| src | ||
| uploads | ||
| .dockerignore | ||
| .env | ||
| .env.example | ||
| .gitignore | ||
| .gitlab-ci.yml | ||
| docker-compose-minio.yml | ||
| docker-compose.yml | ||
| Dockerfile | ||
| index.js | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
# 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 corsPara paginação:
npm i mongoose-paginate-v2Para autenticação:
npm i bcryptjs npm i jsonwebtokenPara seed:
npm i faker-brPara documentação:
npm i swagger-ui-express npm i swagger-jsdocnpm 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