O Urubu Banking System é uma aplicação de demonstração de um sistema bancário básico desenvolvido com o framework NestJS. Ele segue a lógica do "Urubu do PIX", permitindo que os usuários realizem operações como depósito, saque, transferência e verifiquem o histórico de transações. O sistema também inclui uma função de atualização diária dos saldos das contas com uma rentabilidade diaria de 8,5%.
- Realizar depósitos em contas de usuário.
- Realizar saques de contas de usuário.
- Transferir dinheiro entre contas.
- Verificar o saldo de uma conta.
- Verificar o histórico de transações de uma conta.
- Atualização diária automática dos saldos das contas.
##Executando o aplicativo
Usando Docker Certifique-se de ter o Docker instalado em seu sistema. Na raiz do projeto, execute o seguinte comando para iniciar o aplicativo usando o Docker Compose:
$ docker-compose up
O aplicativo estará disponível em http://localhost:3000.
- Clone o repositório para o seu ambiente local.
- Navegue até o diretório do projeto e instale as dependências usando o comando:
$ pnpm install
- Crie um arquivo
.env
na raiz do projeto e defina as variáveis de ambiente necessárias, como as configurações do banco de dados. - Execute o servidor de desenvolvimento com o comando:
# development
$ pnpm run start
# watch mode
$ pnpm run start:dev
# production mode
$ pnpm run start:prod
- Certifique-se de ter definido as configurações de banco de dados corretamente no arquivo
.env
. - Execute as migrações do Prisma para criar o esquema do banco de dados com o comando:
#prisma migrate
npx prisma migrate dev
# unit tests
$ pnpm run test
# e2e tests
$ pnpm run test:e2e
# test coverage
$ pnpm run test:cov
- GET /user/list-users: Lista todos os usuários cadastrados.
- POST /user/create-user: Cria um novo usuário.
- POST /urubu/deposit: Realiza um depósito em uma conta.
- POST /urubu/withdraw: Realiza um saque de uma conta.
- POST /urubu/transfer: Realiza uma transferência entre contas.
- GET /urubu/balance/:username: Obtém o saldo de uma conta.
- GET /urubu/transaction-history/:username: Obtém o histórico de transações de uma conta.
Contribuições são bem-vindas! Se você quiser melhorar este projeto, sinta-se à vontade para enviar um pull request.
- Author - Edson Costa
Nest is MIT licensed.