“Para quem fica melhor a cada dia, ficar pronto é utopia”!
Nesse desafio, foi proposto que criássemos uma aplicação para treinarmos os conceitos do Node.js junto ao TypeScript, utilizando o conceito de models, repositories e services! (Arquitetura DDD)
Uma aplicação para armazenar transações financeiras de entrada e saída, que deve permitir o cadastro e a listagem dessas transações.
Aplicação construída tem as seguintes rotas:
POST /transactions
: A rota recebetitle
,value
etype
dentro do corpo da requisição, sendotype
o tipo da transação, que deve serincome
para entradas (depósitos) eoutcome
para saídas (retiradas). Ovalue
deve possuir um valor numérico. Depois que a transação for cadastrada, o usuário receberá como resposta um objeto conforme o modelo abaixo:
{
"id": "uuid",
"title": "Salário",
"value": 3000,
"type": "income"
}
GET /transactions
: Essa rota retorna uma listagem com todas as transações que você cadastrou até agora, junto com o valor de soma de entradas, retiradas e total de crédito. Essa rota retornará um objeto conforme o formato a seguir:
{
"transactions": [
{
"id": "uuid",
"title": "Salário",
"value": 4000,
"type": "income"
},
{
"id": "uuid",
"title": "Freela",
"value": 2000,
"type": "income"
},
{
"id": "uuid",
"title": "Pagamento da fatura",
"value": 4000,
"type": "outcome"
},
{
"id": "uuid",
"title": "Cadeira Gamer",
"value": 1200,
"type": "outcome"
}
],
"balance": {
"income": 6000,
"outcome": 5200,
"total": 800
}
}
Para executar a aplicação, clone este repositório, entre na pasta do projeto e instale as dependências com o seguinte comando no terminal:
yarn
Para rodar a aplicação, execute o seguinte comando no terminal:
yarn dev:server
Para rodar os testes automatizados, execute o seguinte comando no terminal:
yarn test
Neste projeto estamos utilizando o TypeScript então é possível gerar o build do projeto para distribuição. Para isso, rode o seguinte comando:
yarn build
Esse projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.