Ctrl K
ComunidadGuías…
GITHUB · ANALIZADO

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

Ver códigoProblemas y ayudaRepositorio ↗
00

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.

CASOS DE USO
  • 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
PUNTOS DESTACADOS
  • 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
PRECAUCIONES
  • 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
01

Perfil de infraestructura

Estimación inicial derivada del repositorio y de los servicios detectados.

CPU2 vCPUrecomendación inicial
MEMORIA2 GBRAM estimada
DISCO10 GBalmacenamiento base
COMPLEJIDADmediumnivel de operación
02

Despliegue detectado

Qué señales reales de instalación hemos encontrado.

Listo para automatizar

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.

✓Dockerfile
✓Compose
✓One-click
03

Stack y dependencias

Componentes inferidos a partir de manifests, configuración y documentación.

FRAMEWORKS
FastAPIPython
SERVICIOS
No detectados
BASES DE DATOS
No detectadas
PUERTOS
80008501
05

Puede sustituir a

Relaciones detectadas por el análisis del repositorio y su categoría.

06

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.