Projeto desenvolvido como desafio na etapa tecnica do processo seletivo para PubFuture. O objetivo do desafio é um sistema responsável por gerenciar as finanças pessoais.
Dentre as features do projeto, posso citar:
- Projeto é divido entre receita, despesas e contas.
- Entre ambas cadastrar,listar, remover e editar.
- Em despesas e receitas possui uma filtragem de periodo e tipo.
- Em contas uma possibilidade de transferencia e verificar saldo total da conta.
Projeto realizado com:
- TypeScript e Express
- Banco MSQL
- Biblioteca TypeORM
- Projeto está preparado para usar msql.
- Arquivo de configuraçao do banco é ormconfig.js
- Dockerfile para facilitar a instalação.
- url geral: localhost:3001
- rotas: contas/despesas/receitas/transferencia/saldo
- Para obter todos os valores de um get na rota:
ex. localhost:3001/contas
- Para criar de um post na rota com os seguintes parametros:
Conta:
{
"saldo": 2000,
"tipoConta": "POUPANÇA",
"instituicaoFinanceira": "BB"
}
Receita:
{
"valor": 800,
"dataRecebimento": "2022-01-13",
"dataRecebimentoEsperado": "2022-01-13",
"descricao": "poupanca",
"conta": "104",
"tipoReceita": "sei la"
}
Despesa:
{
"valor": 800,
"dataPagamento": "2022-01-13",
"dataPagamentoEsperado": "2022-01-13",
"tipoDespesa": "Games",
"conta": "Skin CS:GO"
}
- Para atualizar, de um put na rota e escolha o campo que quer mudar:
ex.
{
"saldo": 1000000
}
- Para deletar use o delete na rota e coloque seu id:
ex. localhost:3001/contas/102
- Para filtrar por tipo, de um get na rota e coloque seu parametro: key: tipoDespesa ou tipoReceita
ex.localhost:3001/despesas?tipoDespesa=Games
- Para filtrar por periodo, de um get na rota:
Precisa da data que esta no campo dataRecebimento ou dataPagamento.
- Para fazer transferencia de um get na rota:
ex. localhost:3001/contas/transferencia
Precisa do id da conta que vai mandar, o id da conta que vai receber e o valor da transferencia no body JSON da requisiçao.
ex.
{
"origem": 101,
"destino": 103,
"valor": 100
}
- Para verificar saldo total de um get:
url: localhost:3001/contas/total