Skip to content

rafaelAmora/API-BankSim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🏦 BankSim API

Uma API REST de simulação bancária desenvolvida com Node.js, TypeScript, Express e PostgreSQL via Knex.js.

⚠️ Projeto em andamento — a gestão de contas bancárias (accounts) ainda está sendo implementada.


🚀 Tecnologias


⚙️ Configuração

Pré-requisitos

  • Node.js 18+
  • PostgreSQL rodando localmente ou em nuvem

1. Clone o repositório

git clone https://github.com/rafaelAmora/banksim-api.git
cd banksim-api

2. Instale as dependências

npm install

3. Configure as variáveis de ambiente

Crie um arquivo .env na raiz do projeto:

DB_HOST=localhost
DB_PORT=5432
DB_USER=seu_usuario
DB_PASSWORD=sua_senha
DB_NAME=banksim

4. Execute as migrations

npm run knex migrate:latest

5. Inicie o servidor

npm run dev

O servidor irá rodar em http://localhost:3333.


📌 Endpoints

Usuários

Método Rota Descrição
POST /users Cria um novo usuário
GET /users Lista todos os usuários
PUT /users/:id Atualiza dados de um usuário

POST /users — Criar usuário

Body:

{
  "name": "João Silva",
  "email": "joao@email.com",
  "password_hash": "minhasenha123"
}

Resposta de sucesso (200):

"user created successfully!"

Erros possíveis:

  • 400 — E-mail já cadastrado
  • 400 — Dados inválidos (Zod)

GET /users — Listar usuários

Resposta de sucesso (200):

[
  {
    "id": 1,
    "name": "João Silva",
    "email": "joao@email.com",
    "password_hash": "$2b$10$...",
    "created_at": "2025-03-19T00:00:00.000Z",
    "updated_at": "2025-03-19T00:00:00.000Z"
  }
]

PUT /users/:id — Atualizar usuário

Body:

{
  "password_hash": "senhaAtual123",
  "name": "João Atualizado",
  "email": "novo@email.com",
  "password_new": "novaSenha456"
}

O campo password_hash é obrigatório para validar a identidade do usuário. Os demais campos são opcionais.

Resposta de sucesso (200): sem corpo

Erros possíveis:

  • 400 — Usuário não encontrado
  • 400 — Senha incorreta
  • 400 — Dados inválidos (Zod)

🛡️ Tratamento de erros

A API conta com um middleware global de erros que trata:

  • AppError — erros de negócio com status HTTP customizável
  • ZodError — erros de validação de dados com detalhes dos campos
  • Erros genéricos — retorna 500 com a mensagem do erro

🗺️ Roadmap

  • CRUD de usuários
  • Hash de senhas com bcrypt
  • Validação com Zod
  • Tratamento centralizado de erros
  • CRUD de contas bancárias (accounts)
  • Associação entre usuários e contas
  • Operações bancárias (depósito, saque, transferência)
  • Autenticação com JWT

👨‍💻 Autor

Feito com dedicação como primeiro projeto de API REST independente.

About

Uma API REST de simulação bancária desenvolvida com **Node.js**, **TypeScript**, **Express** e **PostgreSQL** via Knex.js.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors