Organiza cuentas, movimientos, deudas y reportes personales sin perder el control de tus datos.
Producto · Arquitectura · Comenzar · Contribuir · Issues
My Fint ayuda a construir una vision completa de las finanzas personales desde el telefono. Reune la actividad diaria, la posicion financiera y los reportes de cierre en una experiencia enfocada, accesible y disponible en varios idiomas.
| Organiza | Comprende | Actua |
|---|---|---|
| Cuentas, saldos, movimientos, categorias y deudas. | Dashboard, comparaciones, tendencias y desglose por cuenta o categoria. | Registra operaciones, confirma sugerencias y exporta reportes en PDF o Excel. |
- Control financiero: ingresos, gastos, transferencias, cuentas, categorias y deudas.
- Reportes accionables: filtros temporales, comparaciones, evolucion, posicion actual y movimientos destacados.
- Exportacion portable: documentos PDF y archivos Excel generados directamente en el dispositivo.
- Importacion con IA: sube o comparte una constancia (Yape, Plin, transferencia bancaria) desde la galeria y un worker de Cloudflare Workers AI extrae monto, banco y fecha para tu revision.
- Gmail opcional: deteccion de movimientos pendientes con filtros definidos por el usuario y confirmacion obligatoria.
- Acceso seguro: sesiones administradas con Supabase Auth, con Google OAuth y Sign in with Apple en iOS.
- Experiencia localizada: interfaz disponible en espanol, ingles y portugues.
- Tema adaptable: modos claro y oscuro con un sistema visual ocean-blue.
- Notificaciones push: recordatorios de pagos proximos y avisos de movimientos pendientes detectados.
- Privacidad visual: oculta montos sensibles en pantalla con un control rapido, util en espacios compartidos.
- Centro de mejoras: tablero de sugerencias integrado (Featurebase) para reportar ideas y errores sin salir de la app.
Important
My Fint es una herramienta de organizacion financiera personal. No ofrece asesoramiento financiero, bancario, tributario ni de inversion.
flowchart LR
A[Expo mobile app] -->|Supabase session| B[Supabase Auth]
A -->|Bearer token| C[My Fint API]
C --> D[(Supabase Postgres)]
C --> E[Gmail API]
C --> F[Financial report DTO]
F --> A
A --> G[PDF and Excel exports]
A -->|Imagen de constancia| H[Cloudflare Workers AI]
H -->|Datos extraidos| A
La aplicacion movil mantiene la presentacion y las interacciones en Expo. La API privada concentra las reglas de negocio y entrega un DTO canonico que alimenta la vista de reportes y sus exportaciones. Un worker de Cloudflare independiente procesa las constancias fotografiadas o compartidas y responde con los datos ya estructurados.
| Capa | Tecnologia |
|---|---|
| Mobile | Expo SDK 55, React Native 0.83, Expo Router |
| UI | Tamagui 2, React Native SVG, Reanimated |
| Datos | TanStack Query, Zod, API HTTP privada |
| Identidad | Supabase Auth, Google OAuth, Sign in with Apple, Secure Store |
| IA | Cloudflare Workers AI (Llama 4 Scout) para extraer datos de constancias fotografiadas |
| Idiomas | i18next, espanol, ingles y portugues |
| Observabilidad | Sentry con sanitizacion de datos sensibles |
| Entrega | EAS Build, Android App Bundle y APK interno, IPA de iOS |
app/ Rutas y pantallas de Expo Router
src/analytics/ Definicion de eventos permitidos para analitica
src/api/ Cliente HTTP, contratos y mappers
src/auth/ Sesion, autenticacion y rutas iniciales
src/capture/ Importacion de constancias con IA y cola de imagenes compartidas
src/components/ Componentes reutilizables del producto
src/finance/ Reglas financieras, reportes y exportaciones
src/forms/ Validacion y utilidades de formularios
src/hooks/ Hooks compartidos de UI
src/i18n/ Configuracion y traducciones
src/monitoring/ Sanitizacion de datos sensibles para Sentry
src/notifications/ Registro y copy de notificaciones push
src/privacy/ Ocultar y mostrar montos sensibles en pantalla
src/providers/ Composicion de providers de la aplicacion
src/shared/ Utilidades compartidas entre modulos
src/support/ Diagnosticos adjuntos a los reportes de soporte
src/theme/ Tema, tipografia y preferencias visuales
src/ui/ Primitivas del sistema de interfaz
tests/unit/ Pruebas unitarias
- Bun 1.3.9
- Node.js 22 para builds EAS
- Expo y un Android Emulator, un dispositivo Android o un iPhone
- Para builds de iOS: una cuenta de Apple Developer Program y las credenciales descritas en
docs/ios-build-setup.md - Un proyecto Supabase y acceso a una instancia compatible de la API de My Fint
git clone https://github.com/maishet/Fint.git finanzas-mobilev2
cd finanzas-mobilev2
bun install --frozen-lockfileCrea .env a partir de .env.example:
EXPO_PUBLIC_API_URL=https://api.example.com
EXPO_PUBLIC_VISION_WORKER_URL=https://fint-ai-worker.your-subdomain.workers.dev
EXPO_PUBLIC_SUPABASE_URL=https://your-project.supabase.co
EXPO_PUBLIC_SUPABASE_ANON_KEY=your-anon-key
EXPO_PUBLIC_PRIVACY_POLICY_URL=https://your-domain.com/privacy
EXPO_PUBLIC_TERMS_URL=https://your-domain.com/terms
EXPO_PUBLIC_GOOGLE_WEB_CLIENT_ID=your-web-client-id.apps.googleusercontent.com
EXPO_PUBLIC_GOOGLE_IOS_CLIENT_ID=your-ios-client-id.apps.googleusercontent.comEXPO_PUBLIC_GOOGLE_IOS_CLIENT_ID es obligatorio para compilar iOS: de el se deriva el URL scheme
que devuelve el control a la app tras el consentimiento de Google. Sin ese valor,
bun run build:production:ios falla de forma explicita en lugar de generar un IPA con el login roto.
Configura finanzasmobilev2://auth/callback como URL de redireccionamiento en Supabase Auth.
Note
.env.example incluye tambien variables opcionales para el tablero de mejoras (Featurebase) y el reporte de errores (Sentry). La app funciona sin ellas: la importacion con IA se desactiva si falta EXPO_PUBLIC_VISION_WORKER_URL y Sentry queda apagado si falta EXPO_PUBLIC_SENTRY_DSN.
Caution
Las variables EXPO_PUBLIC_* se incluyen en el cliente. Nunca guardes en ellas service-role keys, tokens privados ni secretos de servidor.
| Comando | Descripcion |
|---|---|
bun run start |
Inicia Expo y limpia la cache de Metro. |
bun run android |
Compila y ejecuta la aplicacion en Android. |
bun run ios |
Compila y ejecuta la aplicacion en iOS. |
bun run typecheck |
Valida el proyecto con TypeScript. |
bun run test |
Ejecuta las pruebas unitarias. |
bun run test:coverage |
Ejecuta las pruebas unitarias con cobertura. |
bunx expo-doctor |
Revisa la compatibilidad del proyecto Expo. |
bun run build:preview:android |
Genera un APK para pruebas internas. |
bun run build:production:android |
Genera un AAB para Google Play. |
bun run build:preview:ios |
Genera un IPA ad hoc para dispositivos registrados con eas device:create. |
bun run build:production:ios |
Genera un IPA de distribucion para App Store Connect y TestFlight. |
El proyecto esta en fase pre-release: el nucleo funcional (cuentas, movimientos, deudas, reportes, Gmail opcional) esta operativo y en pulido continuo antes del lanzamiento publico. El roadmap y los pendientes se siguen en las Issues del repositorio.
Las contribuciones que mejoren la calidad, accesibilidad, privacidad o experiencia financiera de My Fint son bienvenidas. Antes de comenzar un cambio grande, abre un issue para acordar el alcance.
Lee CONTRIBUTING.md para conocer el flujo de trabajo, las validaciones requeridas y los terminos aplicables a las contribuciones.
Las contribuciones aparecen automaticamente cuando GitHub actualiza el historial publico del repositorio.
My Fint maneja informacion financiera sensible. No publiques vulnerabilidades, credenciales ni datos personales en issues abiertos. Consulta SECURITY.md para reportar un problema de forma responsable.
La integracion de Gmail es opcional y no crea movimientos de manera automatica. Toda sugerencia requiere confirmacion explicita del usuario.
El codigo de este repositorio se distribuye bajo la Apache License 2.0.
Copyright 2026 Cristhofer Moises Ventura Villanueva
Apache 2.0 permite usar, modificar y distribuir el codigo, incluye una concesion expresa de patentes y exige conservar los avisos aplicables. La licencia no concede derechos sobre los nombres, logotipos o marcas de My Fint.