Backend para o hackathon da Orange Juice, com o desafio de criar um mini banco de investimentos.
O OrangeBank API é o backend de um banco digital de investimentos, desenvolvido com NestJS, Prisma e PostgreSQL. A aplicação oferece funcionalidades essenciais para gerenciamento de contas, transações financeiras e autenticação de usuários.
- 🔐 Autenticação: Registro e login de usuários com JWT.
- 🏦 Gerenciamento de Contas: Criação, listagem, ativação e desativação de contas.
- 💰 Transações Financeiras: Depósitos, saques e transferências entre contas.
- 📈 Investimentos: Gestão de ações e títulos de renda fixa.
- 📄 Histórico: Consulta de extrato de transações.
- NestJS
- Prisma
- PostgreSQL
- TypeScript
- JWT (JSON Web Token)
- Swagger para documentação
A maneira mais simples de configurar e rodar o projeto é utilizando o nosso script de utilidades.
- Node.js (versão >= 22.0.0)
- Docker e Docker Compose
- Permissão de execução para o script:
chmod +x ./scripts/dev-utils.sh
-
Clone o repositório
git clone https://github.com/luskas8/orangebank-api.git cd orangebank-api
-
Instale as dependências
npm install
-
Configure e inicie o ambiente O script
dev-utils.sh
irá criar o arquivo.env
e iniciar os containers Docker../scripts/dev-utils.sh setup ./scripts/dev-utils.sh run
-
Execute as migrações e popule o banco
npx prisma migrate dev npm run prisma:seed # Opcional
A API estará disponível em http://localhost:3000
. Para parar os serviços, utilize ./scripts/dev-utils.sh down
.
Caso prefira, siga os passos manuais:
- Clone e instale: Siga os passos 1 e 2 da configuração rápida.
- Variáveis de Ambiente: Crie um arquivo
.env
na raiz do projeto e adicione as variáveis de ambiente necessárias. Você pode usar o comando./scripts/dev-utils.sh setup
. - Banco de Dados: Inicie o container do PostgreSQL.
docker-compose up -d
- Migrações e Seed: Execute os passos 4 e 5 da configuração rápida.
- Iniciar a Aplicação: Execute o passo 5 da configuração rápida.
# Testes unitários
npm run test
# Testes e2e
npm run test:e2e
# Cobertura de testes
npm run test:cov
A documentação completa dos endpoints, com exemplos de requisições e respostas, está disponível via Swagger UI.
Acesse em: http://localhost:3000/docs
POST /auth/login
: Login de usuário.POST /auth/register
: Registro de novo usuário.
POST /account/create
: Criar nova conta.GET /account/get
: Listar contas do usuário.GET /account/get/:id
: Buscar conta específica.
POST /account/deposit
: Depósito em conta.POST /account/withdraw
: Saque da conta.POST /account/transfer
: Transferência entre contas.GET /account/transactions/:id
: Histórico de transações.