gabrielhsantos / Bank_Account_Simulation

Simulador de uma conta bancária, incluindo depósito, saque e transferência instantânea entra contas (PIX).

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Bank Account

Este microsserviço, desenvolvido em NodeJS e NestJS como framework, tem como objetivo simular as transações bancárias de uma conta. Possui as operações básicas de depósito, saque e transferência entre contas (de forma instantânea). A seguir, darei o passo a passo de como clonar o repositório, intalar as dependências e rodar o projeto localmente.

🚀 Começando

Antes de começar, você vai precisar ter instalado em sua máquina as seguintes ferramentas: Git, Node.js. Além disto, é imprescindível ter um editor para trabalhar com o código como VSCode. Optei pelo uso do PostgreSQL como banco relacional, então caso não tenha o mesmo instalado, será necessário que utilize o Docker ok?

📋 Pré-requisitos

As seguintes ferramentas foram usadas na construção do projeto:

🔧 Instalação

# Clone este repositório
$ git clone git@github.com:gabrielhsantos/Bank_Account_Simulation.git

# Acesse a pasta do projeto no terminal/cmd
$ cd Bank_Account_Simulation

# Instale as dependências
$ npm ci

🎲 Banco de dados (servidor)

Caso utilize o PostgreSQL, basta executar os seguintes comandos:

# Execute as migrations
$ npm run migration:run

Isso fará com que as tabelas accounts e transactions sejam criadas no banco de dados.

# Popule a tabela accounts
$ npm run seed:run

Com isso, serão criados dois registros de exemplo na tabela accounts.

🐋 Container

Se a opção for o uso do Docker, existe na raiz do projeto um arquivo docker-compose, que irá instalar o PostgreSQL em um conteiner. Para isso, basta rodar esse comando:

# Subir o container Docker
$ npm run infra:up

Obs: ao subir a infra, o processo de migration e seed ocorrerá automaticamente.

Para derrubar o container e os volumes gerados, basta rodar:

# Remover o container Docker e volumes
$ npm run infra:down

Execute a aplicação

$ npm start

O servidor inciará na porta:3000 (ou a porta que foi definida no arquivo .env.development).

⚙️ Executando os testes

Para rodar os testes, basta utilizar este comando via terminal/cmd:

# Irá rodar os testes de integração e unitários
$ npm t

# Irá rodar apenas os testes de integração
$ npm run test:integration

# Irá rodar apenas os testes unitários
$ npm run test:unit

Caso queira um registro com o coverage:

# Irá rodar os testes e gerar a % de cobertura
$ npm run test:cov

📦 Documentação

Um arquivo com extensão .json se encontra na pasta: src/shared/docs

O mesmo pode ser importado dentro do Postman, para facilitar o acesso aos endpoints.

A documentação com o swagger, pode ser acessada pela url /doc com o servidor rodando.

About

Simulador de uma conta bancária, incluindo depósito, saque e transferência instantânea entra contas (PIX).


Languages

Language:TypeScript 91.5%Language:JavaScript 7.9%Language:Shell 0.3%Language:Dockerfile 0.2%