anti-gambling-trader-tw
무료 오픈소스 투자 사기 방지·거래 통계·자동매매 도구, 기본 PaperBroker와 14개 증권사 옵션 제공, 로컬 분석
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗App de homebanking estilo fintech, construida con Node.js + Express (backend), HTML/CSS/JS vanilla (frontend) y Supabase (Auth + PostgreSQL).
| Capa | Tecnología |
|---|---|
| Backend | Node.js + Express |
| Frontend | HTML, CSS, JS vanilla (sin frameworks) |
| Auth | Supabase Auth |
| Base de datos | Supabase PostgreSQL (pg pool) |
| Banco Central | https://centralbank.brocoly.cc/api — siempre x-environment: test |
| Cotizaciones | https://dolarapi.com/v1/dolares |
homebanking/
├── backend/
│ ├── src/
│ │ ├── app.js # Express app + rutas
│ │ ├── server.js # Entrypoint
│ │ ├── config/
│ │ │ └── db.js # Pool pg + initDb (crea tablas)
│ │ ├── middleware/
│ │ │ └── authMiddleware.js # Valida JWT Supabase
│ │ ├── controllers/
│ │ │ ├── authController.js
│ │ │ ├── cuentaController.js
│ │ │ ├── movimientoController.js
│ │ │ ├── transferenciaController.js
│ │ │ ├── reservaController.js
│ │ │ ├── prestamoController.js # ← Módulo Préstamos
│ │ │ ├── chatController.js
│ │ │ ├── cardController.js
│ │ │ └── mercadoController.js
│ │ ├── routes/
│ │ │ ├── authRoutes.js
│ │ │ ├── cuentaRoutes.js
│ │ │ ├── movimientoRoutes.js
│ │ │ ├── transferenciaRoutes.js
│ │ │ ├── reservaRoutes.js
│ │ │ ├── prestamoRoutes.js # ← Módulo Préstamos
│ │ │ ├── chatRoutes.js
│ │ │ ├── cardRoutes.js
│ │ │ └── mercadoRoutes.js
│ │ └── services/
│ │ └── bancoCentralService.js # Cliente BC API (siempre test)
│ ├── .env # Variables de entorno (no commitear)
│ └── package.json
└── frontend/
├── login.html
├── dashboard.html
├── app.js
└── styles.css
# Desde backend/
npm install
node server.js
# → http://localhost:3000
El servidor sirve el frontend como archivos estáticos. GET / redirige a /login.html.
DATABASE_URL=postgresql://... # URL de conexión Supabase
SUPABASE_URL=https://...
SUPABASE_SERVICE_KEY=...
BANCO_ENV=test # SIEMPRE test, nunca prod
Las tablas se crean automáticamente en initDb() al arrancar. No hay migraciones manuales.
| Tabla | Descripción |
|---|---|
cuentas | Cuentas ARS y USD de cada usuario |
movimientos | Historial de transacciones por cuenta |
transferencias | Transferencias inter-cuenta |
reservas | Metas de ahorro con fecha de vencimiento |
prestamos | Préstamos solicitados (amortización francesa) |
cards | Tarjetas Visa Débito virtuales |
prestamosid SERIAL PRIMARY KEY
usuario_id UUID → auth.users(id)
cuenta_acreditada_id INTEGER → cuentas(id)
monto NUMERIC(14,2)
cuotas INTEGER CHECK (IN (3, 6, 12, 24, 36))
tna NUMERIC(6,4)
cuota_mensual NUMERIC(14,2)
estado VARCHAR(20) DEFAULT 'activo' CHECK (IN ('activo','cancelado','saldado'))
fecha_solicitud TIMESTAMP DEFAULT NOW()
| Método | Ruta | Descripción |
|---|---|---|
| POST | /api/auth/register | Registro de usuario |
| POST | /api/auth/login | Login, devuelve JWT |
| POST | /api/auth/logout | Cierre de sesión |
| Método | Ruta | Descripción |
|---|---|---|
| GET | /api/cuentas | Lista cuentas del usuario |
| GET | /api/cuentas/saldo | Saldo de cada cuenta |
| POST | /api/cuentas/depositar | Depósito en cuenta ARS |
| POST | /api/cuentas/abrir | Abre cuenta USD (vía BC API) |
| POST | /api/cuentas/convertir | Conversión ARS ↔ USD |
| GET | /api/cuentas/buscar-usd/:valor | Busca cuenta USD por CBU o alias (local) |
| PUT | /api/cuentas/alias-usd | Cambia alias de cuenta USD |
| POST | /api/cuentas/transferir-usd | Transferencia USD (inter-banco vía BC) |
| Método | Ruta | Descripción |
|---|---|---|
| GET | /api/movimientos | Historial de movimientos |
| Método | Ruta | Descripción |
|---|---|---|
| POST | /api/transferencias | Transferencia ARS entre cuentas |
| GET | /api/transferencias/buscar/:cbu | Busca titular por CBU (BC API) |
| GET | /api/transferencias/alias/:alias | Busca titular por alias (BC API) |
| GET | /api/transferencias/sincronizar | Sincroniza transferencias recibidas desde BC |
| Método | Ruta | Descripción |
|---|---|---|
| GET | /api/prestamos | Lista préstamos del usuario |
| POST | /api/prestamos/solicitar | Solicita préstamo (acredita en ARS) |
| PUT | /api/prestamos/:id/cancelar | Cancela un préstamo activo |
Parámetros de POST /api/prestamos/solicitar:
{ "monto": 200000, "cuotas": 12 }
monto: entre $10.000 y $5.000.000cuotas: 3, 6, 12, 24 o 36Sistema de amortización: Francés (cuotas fijas). TNA = 95%, IVA sobre intereses = 21%.
Solo se permite un préstamo activo por usuario a la vez.
| Método | Ruta | Descripción |
|---|---|---|
| GET | /api/reservas | Lista reservas del usuario |
| POST | /api/reservas | Crea una reserva |
| DELETE | /api/reservas/:id | Elimina una reserva |
| Método | Ruta | Descripción |
|---|---|---|
| POST | /api/chat | Chat con asistente IA integrado |
| Método | Ruta | Descripción |
|---|---|---|
| GET | /api/cards | Obtiene tarjeta virtual del usuario |
| POST | /api/cards/emitir | Emite tarjeta Visa Débito virtual |
| POST | /api/cards/bloquear | Bloquea/desbloquea tarjeta |
| Método | Ruta | Descripción |
|---|---|---|
| GET | /api/mercado/cotizaciones | Cotizaciones del dólar (DolarAPI) |
Base URL: https://centralbank.brocoly.cc/api
Ambiente: siempre x-environment: test — nunca usar prod
Endpoints usados:
POST /accounts — crear cuenta USDPUT /persons/{cbu}/alias — asignar alias (limitación: falla para CBUs USD)POST /transactions — transferencia (funciona con CBUs USD aunque GET /persons los devuelva 404)GET /persons/{cbu} y GET /persons/alias/{alias} — lookup de titularEl simulador en dashboard.html permite:
pool.on('error') evita que el proceso crashee.BANCO_ENV=test debe estar siempre presente en .env.localStorage para caché del avatar de usuario (clave por user.id)._dolares global y se refrescan cada 5 minutos.