naturesprophet / backendjr Goto Github PK
View Code? Open in Web Editor NEWAplicação de controle financeiro veicular, alimentado pela entrada de dados do usuário.
License: Apache License 2.0
Aplicação de controle financeiro veicular, alimentado pela entrada de dados do usuário.
License: Apache License 2.0
Definir as tecnologias a serem utilizadas para iniciar o desenvolvimento do projeto.
Opções em análise:
Java (maven, spring-boot)
C# (.NET Core 2.1)
Javascript (Node + Express + sequelize)
Nestjs Framework (Node + TypeScript + TypeORM + Jest + Cucumber) --> mais provável
Para documentação: OpenAPI (Swagger)
Desenvolver a funcionalidade de registro de novos Veículos, contendo:
Usuário proprietário
Montadora
Modelo
Ano
Cor
Placa
POST /veiculos
Escolher os serviços a serem utilizados para executar os processos de Integração Contínua do projeto, como testes unitários, testes e2e, testes de cobertura, análise da qualidade do código, etc...
Algumas opções a serem analisadas:
TravisCI
CircleCI
Google Cloud Build
Buddy
Implementar uma rota GET em que o usuário possa buscar por um perfil de consumo específico, informando o combustível, trajeto e ar (Veículo incluso na seção)
GET /consumos/perfil/:combustível/:trajeto/:ar
Desenvolver a funcionalidade de cadastrar e adicionar novos usuários ao sistema, especificando:
Nome
Email
Login
Sem senha por enquanto pois a versão inicial não usará autenticação por se tratar de uma experiência.
POST /usuarios
Escrever os cenários de testes automatizados (cucumber) com o que se espera que cada endpoint faça.
implementar um endpoint que listará todos os perfis de consumo detectados no veículo atual da seção.
GET /consumos/perfil/todos
Para melhorar a compreensão do funcionamento da api para o desenvolvedor final e explicitar todas as features disponíveis, vou implementar o Swagger e expor a documentação na rota /docs/
Desenvolver a funcionalidade chave de registrar os novos abastecimentos.
Cada abastecimento deverá ter os campos:
Veículo
Posto
Combustível
Valor do Litro ou metro
Valor total
Quilometragem atual do veículo
Adicionalmente, para registrar o consumo, deverão ser solicitadas as informações:
Tipo de uso do ar condicionado
Tipo de trajeto percorrido
POST /abastecimentos
Desenvolver o Diagrama de Classes
Desenvolver o Modelo Relacional
Desenvolver a funcionalidade de registrar manutenções feitas no veículo, especificando:
Quem fez ou onde foi feita a manutenção.
Valor gasto com peças e material
Valor gasto com mão de obra
Descrição dos serviços executados
Datas (inicial e final) da execução do serviço.
POST /manutencao
Ao gerar um novo registro de consumo, o sistema deverá comparar o consumo registrado com a média histórica daquele perfil, para detectar variações fora da margem aceitável.
Caso for detectada uma suspeita, o sistema deverá alertar o Usuário.
Toda vez que um novo consumo for gerado no sistema, será necessário fazer uma verificação nos registros de consumo anteriores do veículo. Essa verificação buscará consumos de características semelhantes (mesmo veículo, mesmo combustível, mesmo trajeto e mesmo uso do ar ).
Ao encontrar registros anteriores com as mesmas características, o sistema deverá gerar (caso ainda nao exista) esse perfil de consumo, ou atualizar (se ja existir), fazendo o calculo da média de consumo desse perfil.
Implementar um endpoint GET para que o usuário possa listar todas as despesas do veículo atual na seção.
GET /despesas
Implementar um endpoint que listará todos os postos de combustíveis registrados no sistema.
Esse endpoint será necessário para que o usuário possa selecionar o posto correto ao registrar um novo abastecimento.
GET /postos
Desenvolver a funcionalidade de registro de despesas em impostos e taxas em geral, especificando:
Tipo de despesa
Data do pagamento
Descrição do pagamento
POST /despesas
Implementar um endpoint onde o usuário possa listar todos os seus veículos.
Esse endpoint é necessário caso o usuário possua mais do que um veículo, nesse caso, ele deverá usar o endpoint POST /secao para inicializar sua seção, logo após o login, para escolher o veículo a ser usado no contexto.
GET /veiculos
Desenvolver a funcionalidade de registrar os estabelecimentos onde se deseja abastecer, especificando:
Nome Fantasia
Endereço
Bandeira
E adicionalmente, os campos opcionais:
Razão Social
CNPJ
Contato/SAC
POST /postos
Implementar endpoint que lista todos os consumos gerados pelo veículo atual na seção.
GET /consumos
Implementar um endpoint que deverá listar TODOS os custos que o veículo atual da seção já consumiu desde o seu registro no sistema e informar o valor total gasto (total, abastecimentos, manutenções e despesas)
GET /relatorios/custos
Implementar o endpoint de autenticação do usuário, que armazenará na seção o objeto após a coferência dos dados de login/senha.
POST /login
Implementar endpoint para que o usuário possa listar todos os registros de manutenção do veículo atual na seção.
GET /manutencoes
Implementar a funcionalidade de gerar e salvar um registro de consumo a cada vez que o usuário registrar um novo abastecimento.
O usuário deve indicar que também deseja registrar o consumo além do abastecimento (pois ele também pode optar por registrar somente o abastecimento sem gerar dados de consumo. - Ex: ele não encheu o tanque ou teve problemas mecânicos/elétricos - ).
PREMISSAS:
O usuário precisa ter COMPLETADO o tanque de combustível do veículo neste abastecimento atual e ter registrado corretamente o abastecimento anterior ao atual.
DADOS PROCESSADOS:
Será necessário obter os dados do ULTIMO ABASTECIMENTO imediatamente anterior ao que está sendo registrado atualmente. (quilometragem, posto, combustível, veiculo, tipo de trajeto e tipo de uso do ar)
MÉTODO:
Implementar endpoint para listar todos os abastecimentos do veículo atual da seção.
GET /abastecimentos
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.