Oracle3
Oracle3: 예측시장 거래 엔진·MCP 서버
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Sistema de gestión de gastos personales desarrollado por Bethalabs. Incluye presupuestos mensuales, gastos recurrentes automatizados y análisis estadístico.README 전문 보기 ↗
Sistema de gestión de gastos personales desarrollado por Bethalabs. Incluye presupuestos mensuales, gastos recurrentes automatizados y análisis estadístico.
# Clonar el repositorio
git clone https://github.com/elrichi31/control-gastos.git
cd control-gastos
# Instalar dependencias
npm install
# Configurar variables de entorno
cp .env.example .env.local
# Completar .env.local (cada variable indica si es obligatoria u opcional)
# Ejecutar servidor de desarrollo
npm run dev
Abre http://localhost:3000 en tu navegador.
supabase/migrations/ en el SQL Editoranon/authenticated (ver docs/CODE_REVIEW.md)Todas están en .env.example, agrupadas por bloque (Supabase, NextAuth, Google, sesiones, cron, MCP, correo Yahoo, Jev) e indicando si son obligatorias. Las mínimas para levantar la app: NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_ANON_KEY, SUPABASE_SERVICE_ROLE_KEY, NEXTAUTH_URL y NEXTAUTH_SECRET; CRON_SECRET para los cron.
El único cron de recurrentes requiere también SUPABASE_SERVICE_ROLE_KEY privada y aplicar la migración SQL en Supabase. Guardar una regla no genera un gasto inmediatamente. Ver modelo, compatibilidad y activación.
Servidor autenticado para consultar y gestionar gastos manuales propios desde ChatGPT. Configuración OAuth, migración y guía de conexión en docs/MCP.md.
Un Schedule diario de Dokploy (5 5 * * * UTC = 00:05 en Ecuador, shell sh) dentro del contenedor genera los gastos recurrentes vencidos:
wget -qO- --header="Authorization: Bearer $CRON_SECRET" http://127.0.0.1:3000/api/cron/process-recurring-expenses
Otro Schedule cada 30 min (*/30 * * * *, shell sh) trae los movimientos bancarios del correo de las últimas 2 semanas:
wget -qO- --header="Authorization: Bearer $CRON_SECRET" http://127.0.0.1:3000/api/cron/sync-email
La imagen es node:20-alpine: trae wget pero no curl. La última corrida de cada cron se ve en el sidebar (Automatizaciones).
src/
├── app/ # App Router de Next.js
│ ├── api/ # API Routes
│ ├── auth/ # Páginas de autenticación
│ ├── detalle-gastos/ # Vista detallada de gastos
│ ├── estadisticas/ # Análisis y gráficos
│ ├── form/ # Formulario de gastos
│ ├── gastos-recurrentes/ # Gestión de gastos recurrentes
│ └── presupuesto/ # Gestión de presupuestos
├── components/ # Componentes React
│ ├── ui/ # shadcn/ui y piezas genéricas
│ ├── layout/ # Sidebar, TopBar, providers y tema
│ ├── gastos/ # Formulario, lista y edición de gastos
│ ├── gastos-recurrentes/ # Formulario, lista y modales de recurrentes
│ ├── dashboard/ # Widgets del dashboard
│ ├── detalle-gastos/ # Componentes de vista detallada
│ ├── presupuesto/ # Componentes de presupuestos
│ ├── stats/ # Componentes de estadísticas
│ ├── conexiones/ # Sesiones y conexiones MCP
│ └── landing/ # Página pública
├── hooks/ # Custom React hooks
├── lib/ # Utilidades y configuración
│ ├── auth/ # Configuración de autenticación
│ ├── database/ # Cliente service-role de Supabase (solo servidor)
│ └── constants/ # Constantes globales
├── services/ # Capa de servicios/API
└── types/ # Definiciones de TypeScript
gasto con flag is_recurrent: truegeneradoEste proyecto es de código abierto bajo licencia MIT.
# Ejecutar en modo desarrollo
npm run dev
# Build de producción
npm run build
# Servidor de producción
npm run start
# Pruebas y tipos
npm test
npm run typecheck
# Linter
npm run lint
Desarrollado con ❤️ usando Next.js y Supabase