mutual-funds-personal
Rastreador local de cartera de fondos mutuos para inversores indios que extrae CAS de CAMS vía Gmail, calcula XIRR/LTCG y ofrece dashboard en Streamlit con autenticación multi-usuario y cifrado de datos.
Ficha actualizada 25 sept 2026, 7:24 · upstream 25 sept 2026, 7:15 · release sin release detectada
Qué es mutual-funds-personal
Descripción editorial construida a partir del repositorio, su documentación y sus señales de mantenimiento.
mutual-funds-personal es una aplicación auto-hospedada diseñada específicamente para inversores indios que desean gestionar sus carteras de fondos mutuos sin exponer datos a servicios en la nube. El sistema automatiza la extracción del CAS (Consolidated Account Statement) desde CAMS mediante un flujo basado en Gmail, parsea el PDF y calcula métricas financieras clave como XIRR por esquema y cartera combinada, así como el seguimiento de ganancias capitalistas a largo plazo (LTCG) con cálculo de exenciones fiscales por ejercicio fiscal.
La arquitectura combina FastAPI para la gestión de autenticación y proxying seguro con Streamlit para el frontend del dashboard. Soporta múltiples usuarios mediante invitación por token, donde cada usuario puede vincular cuentas CAS propias o ajenas (cónyuge, padres), con todo los datos cifrados bajo contraseñas locales derivadas con Argon2id. El sistema incluye calculadoras de redención per-esquema con desglose FIFO por lotes y visualización de asignación de activos mediante gráficos donut.
El despliegue es flexible: se puede ejecutar localmente con Python 3.9+ (requiere Playwright/Chromium para el scraping) o mediante Docker Compose que empaqueta todo el entorno. La licencia PolyForm Noncommercial restringe su uso a contextos personales, educativos o sin ánimo de lucro, prohibiendo cualquier integración en productos comerciales.
- Seguimiento personal y familiar de carteras de fondos mutuos indios con visualización de holdings, ganancias no realizadas y asignación por clase de activo
- Cálculo preciso de XIRR combinado y per-esquema para evaluar el rendimiento histórico ajustado al tiempo
- Gestión fiscal LTCG/STCG con seguimiento FIFO por lotes y cálculo de exenciones de ₹1.25L por ejercicio fiscal
- Gestión multi-usuario segura para parejas o familias que comparten carteras en diferentes folios CAMS
- Extracción automática de CAS desde CAMS vía Gmail con cifrado de datos en reposo bajo contraseñas locales
- Dashboard en Streamlit con módulos dedicados: asignación donut, detalles por esquema, calculadora de redención y seguimiento SIP/STP
- Autenticación robusta con FastAPI, cookies firmadas y proxying seguro hacia el backend Streamlit
- Soporte nativo para Docker Compose que empaqueta Python, Chromium y volúmenes de datos persistentes
- Dependencia crítica de Gmail: requiere App Password y acceso a bandeja de entrada para recibir CAS
- Flujo de scraping de CAMS incluye reCAPTCHA que Playwright debe resolver (puede fallar en redes con filtros estrictos)
- Licencia PolyForm Noncommercial prohíbe uso comercial o integración en productos/servicios con ánimo de lucro
- Requiere ejecución simultánea de dos procesos (Streamlit + FastAPI) a menos que se use Docker Compose
Perfil de infraestructura
Estimación inicial derivada del repositorio y de los servicios detectados.
Despliegue detectado
Qué señales reales de instalación hemos encontrado.
Despliegue local: Python 3.9+, `pip install -r requirements.txt`, `playwright install chromium`. Configurar `config.yaml` con `admin_email` y App Password de Gmail. Ejecutar dos terminales: `streamlit run ui/app.py` (puerto 8501) y `uvicorn auth_server.main:app --port 8000`. Alternativa Docker: `docker compose up --build` con montajes de volúmenes para `data/` y `debug/`. Acceso vía http://localhost:8000. No acceder directamente a :8501.
Stack y dependencias
Componentes inferidos a partir de manifests, configuración y documentación.
Puede sustituir a
Relaciones detectadas por el análisis del repositorio y su categoría.
Experiencia real de la comunidad
Ayuda a contrastar la estimación automática con instalaciones reales.
Todavía no hay datos comunitarios para este proyecto.