O MiuBank é mais que uma API bancária: é uma jornada financeira gamificada com propósito educativo. Aqui, usuários aprendem a lidar com dinheiro por meio de ações reais (depósitos, transferências, investimentos) enquanto evoluem um Pet virtual que reage às suas conquistas.
Gerencie suas finanças, cuide do seu Pet e alcance metas com diversão e disciplina. 🎯
- 🔄 API Render (Deploy Backend): orangemiubank.onrender.com
- 📄 Swagger (Documentação): orangemiubank.onrender.com/api-docs
- 💻 Deploy Frontend (GitHub Pages): etuarda.github.io/orangeMiubank-Front
- 📁 Repositório Frontend: github.com/Etuarda/orangeMiubank-Front
- Linguagem: JavaScript (ES6+)
- Runtime: Node.js
- Framework Web: Express.js
- Banco de Dados: PostgreSQL
- ORM: Prisma
- Documentação: Swagger UI + JSDoc
- Autenticação: JWT + bcryptjs
- Validação: Zod
- Tarefas Agendadas: node-cron
- Outros: dotenv, cors
miubank/
├── prisma/ # Migrations, seed e schema
├── src/
│ ├── config/ # Conexão com o DB, variáveis de ambiente
│ ├── controllers/ # Controle das rotas
│ ├── services/ # Regras de negócio
│ ├── middlewares/ # Autenticação e erros
│ ├── routes/ # Definição de endpoints
│ ├── jobs/ # Tarefas automáticas (ex: simulação do mercado)
│ └── index.js # Ponto de entrada da API
├── swagger/ # Arquivo swagger.json gerado por JSDoc
├── assets/ # Mocks e dados de exemplo
├── regradenegocio.md # Documento de regras de negócio
└── README.md- Registro:
POST /auth/register - Login:
POST /auth/login - Token JWT: deve ser enviado como
Bearer <token>no headerAuthorization. - Middleware: protege rotas sensíveis e disponibiliza
req.user.
| Operação | Descrição |
|---|---|
POST /accounts/deposit |
Depósito em Conta Corrente |
POST /accounts/withdraw |
Saque da Conta Corrente com validação de saldo |
POST /accounts/transfer/internal |
Transferência entre Conta Corrente e Conta Investimento |
POST /accounts/transfer/external |
Transferência entre usuários (taxa de 0.5%) |
POST /market/buy |
Compra de ativos com taxa de corretagem (ações) |
POST /market/sell |
Venda de ativos com cálculo de IR sobre lucro |
GET /reports |
Relatórios filtráveis: extratos, investimentos e imposto consolidado |
POST /financial-goals |
Criação de metas financeiras |
- Atualiza os preços a cada 5 minutos (via cron).
- Simula variações em ações e rentabilidade de renda fixa.
- Garante valores coerentes com o mercado real.
| Recurso | Impacto |
|---|---|
| Pet Virtual | Humor do pet muda com base nas ações financeiras do usuário |
| Sistema de Pontos | Usuários ganham pontos ao criar metas ou investir |
| Metas Financeiras | Planejamento visual e progressivo de conquistas pessoais |
Acesse a documentação interativa em:
https://orangemiubank.onrender.com/api-docs
Inclui:
- Métodos, rotas, parâmetros e respostas
- Modelos de entidades
- Esquemas de autenticação
| Entidade | Função Principal |
|---|---|
User |
Dados pessoais + pontuação do Pet |
Account |
Conta Corrente ou Investimento (saldo separado) |
Asset |
Ações, CDBs, Tesouro Direto |
Investment |
Registros de ativos comprados |
Movement |
Histórico de movimentações |
Pet |
Estados emocionais gamificados |
FinancialGoal |
Metas financeiras do usuário |
FinancialTip |
Dicas financeiras rotativas |
- ✅ Testes automatizados com Jest
- 📣 Sistema de notificações por eventos financeiros
- 📈 Simulação de cenários de investimento
- 🏅 Gamificação extra: badges e rankings
- 🧾 Reestruturação avançada da lógica de ordens de ativos
- Clone o repositório:
git clone https://github.com/seu-usuario/miubank-backend.git
cd miubank-backend- Instale as dependências:
npm install- Configure o
.env:
DATABASE_URL=postgresql://usuario:senha@localhost:5432/miubank
JWT_SECRET=sua_chave_secreta- Rode as migrations e o seed:
npx prisma migrate dev --name init
node prisma/seed.js- Inicie o servidor:
npm run devEste projeto está licenciado sob a MIT License. Sinta-se livre para usar, modificar e distribuir com os devidos créditos.
Contribuições são bem-vindas! Se desejar propor melhorias ou sugerir novas funcionalidades, abra uma issue ou pull request.
Desenvolvido por Eduarda Silva Santos com foco em educação financeira acessível e experiência de usuário gamificada. Projeto submetido ao Orange Hackathon.