/gostack-fundamentos-nodejs

Desafio 05 do bootcamp GoStack: Primeior projeto Node.js

Primary LanguageJavaScriptMIT LicenseMIT

GoStack

Desafio 05: Primeiro projeto Node.js

“Para quem fica melhor a cada dia, ficar pronto é utopia”!

Made by Valdir Mendes License Stargazers

Sobre o desafio   |    Licença

🚀 Sobre o desafio

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)

Objetivo da aplicação

Uma aplicação para armazenar transações financeiras de entrada e saída, que deve permitir o cadastro e a listagem dessas transações.

Rotas da aplicação

Aplicação construída tem as seguintes rotas:

  • POST /transactions: A rota recebe title, value e type dentro do corpo da requisição, sendo type o tipo da transação, que deve ser income para entradas (depósitos) e outcome para saídas (retiradas). O value 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
  }
}

🏃 Rodando a aplicação

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

📝 Licença

Esse projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.