Transactions API

Transactions Api é um projeto Node.js construído para fins de estudo. Uma API HTTP Rest é implementada com Typescript, Fastify, Knex, PostgreSQL e muito mais.

Back End
NodeJs
TypeScript
Fastify
Zod
Vitest
Supertest

Carregando ...

Sobre

Transactions Api é um projeto Node.js construído para fins de estudo. Uma API HTTP Rest é implementada com Typescript, Fastify, Knex, PostgreSQL e muito mais.

Com esta API é possível criar e listar transações. Cada transação tem um título, uma quantia em dinheiro e um tipo (crédito ou débito).

O aplicativo é totalmente testado com testes E2E feitos com Vitest e Supertest.

Requisitos funcionais

O usuário deve ser capaz de criar uma nova transação
O usuário deve ser capaz de obter um resumo de sua conta
O usuário deve ser capaz de listar todas as transações já ocorridas
O usuário deve ser capaz de visualizar uma única transação

Requisitos não Funcionais

A transação pode ser do tipo crédito que vai somar no valor total, ou débito vai subtrair
Deve ser possível identificar o usuário entre as requisições
O usuário só pode visualizar as transações que ele mesmo criou

Rotas

Método HTTPEndpointDescrição
GET/transactionsRetorna uma lista das transações
POST/transactionsCria uma nova transação
GET/transactions/:idRetorna uma transação com o id fornecido
GET/summaryRetorna um resumo das transações

Tecnologias

Algumas tecnologias utilizadas para construção da aplicação.

Rodar o servidor

Clone o repositório

git clone https://github.com/manoguii/transactions-api.git

Para rodar o projeto localmente

  • Crie um arquivo .env na raiz do projeto e preencha as variáveis ambiente, o exemplo de como deve ficar esta em .env.example.

Instale as dependências

npm install

Crie o banco de dados local

docker-compose up -d

Rodar as migrations

npm run knex -- migration:latest

Iniciar servidor

npm run dev

Executando testes E2E

  • Criar arquivo .env.test baseado em .env.test.example
  • Execute npm test