💻
4.2 MB
Código propio
≈ 38% del repo útil
📦
6.8 MB
Terceros embebidos
23 librerías detectadas
🗑️
847 MB
Peso muerto / artefactos
node_modules, dist, .pyc, .ipch
🔄
3
Duplicados detectados
axios ×2, DateUtils ×3
⚰️
2
Módulos a deprecar
legacy ObjC + analytics v1
🏗️
2
Módulos a reconstruir
vendor Android + ml/third_party
Composición del repositorio
Código propio
4.2 MB
Terceros embebidos
6.8 MB
Artefactos / muerto
847 MB
Código propio por módulo (MB)
📁 Análisis por módulo
🔍 Hallazgos críticos
🚨 Artefactos comiteados
-
📁
backend-api/node_modules (312 MB) — comiteado en 2022, nunca eliminado del historial. Debe purgarse con
git filter-repo. -
📁
mobile-ios/Pods (386 MB) — cache CocoaPods completo en repositorio. Solo debe estar en .gitignore.
-
📁
backend-api/dist + web-dashboard/build (48 MB) — artefactos de compilación; mover a CI.
🔁 Código duplicado
-
⚠️
axios aparece copiado en
web-dashboard/lib/Y declarado enbackend-api/package.json. La copia manual tiene la versión 0.27 (antigua, CVE-2023-45857). -
⚠️
DateUtils replicado 3 veces:
mobile-android/core/utils,backend-api/src/utils,web-dashboard/src/helperscon lógica divergente. -
⚠️
lodash 4.17 copiado manualmente en
web-dashboard/liben lugar de declararlo como dependencia; versión fija sin parches de seguridad.
📦 Terceros embebidos obsoletos
-
🔴
FBCharts 3.1.0 (iOS) — 2019, sin actualizaciones. Migrar a Swift Charts (nativo iOS 16+).
-
🟡
AFNetworking 4.0 (iOS ObjC) — toda la capa de red iOS está en Objective-C legacy; candidata a migración SwiftUI.
-
🟡
OpenBLAS 0.3.23 (ml-pipeline) — versión vendored manual; actualizar a 0.3.28 (fix multithreading) vía CMake FetchContent.
💀 Módulo deprecar — mobile-ios legacy
-
📊
Solo 0.10 MB de código propio vs 1.9 MB de terceros embebidos. Ratio propio/total: 5%.
-
📊
Último commit al módulo ObjC legacy: 14 meses sin actividad. El módulo Swift nuevo en
NutriCore/ya reemplaza el 80% de funcionalidad. -
📊
386 MB de Pods que inflan el historial git y ralentizan clones en CI en ~4 min.
📚 Librerías embebidas detectadas (23 total)
📊 Composición por módulo (normalizada al 100%)
Código propio
Terceros embebidos
Build / Muerto
backend-api
88%
web-dashboard
69%
mobile-android
18%
mobile-ios
5%
ml-pipeline
44%
Porcentaje = código propio / (código propio + terceros embebidos). Los artefactos de build se representan a escala reducida para visibilidad.
🎯 Plan de acción Q3 2026
Semana 1 — URGENTE
Purgar artefactos del historial git
Ejecutar
git filter-repo --path node_modules --invert-paths y --path Pods. Añadir .gitignore completo. Reducción inmediata: ~700 MB del repositorio. Esfuerzo: 1 día · Impacto: muy alto
Semana 2-3 — PRIORITARIO
Eliminar copias manuales de librerías
Reemplazar axios/lodash copiados por dependencias declaradas. Actualizar axios a 1.7.9 (fix CVE). Unificar DateUtils en paquete compartido
@nutritrack/utils. Esfuerzo: 3 días · Impacto: alto
Semana 4 — PLANIFICAR
Deprecar módulo iOS legacy ObjC
Migrar AFNetworking a URLSession. Reemplazar FBCharts por Swift Charts. Archivar directorio Pods. El módulo NutriCore Swift ya cubre el 80% — completar migración.
Esfuerzo: 2 semanas · Impacto: alto
Sprint Q3 — RECONSTRUIR
Modernizar mobile-android vendor/
Mover todas las dependencias Android a build.gradle (Retrofit, Glide, OkHttp, Dagger). Evaluar migración de RxJava a Kotlin Coroutines. Ratio propio subirá del 18% al 70%+.
Esfuerzo: 1 sprint · Impacto: medio
Sprint Q3 — ML
CMake FetchContent para ml-pipeline
Reemplazar third_party/ vendoreado por CMake FetchContent (OpenBLAS, Eigen, pybind11). Actualizar OpenBLAS a 0.3.28. Limpiar __pycache__ y añadir a .gitignore.
Esfuerzo: 3 días · Impacto: medio
Continuo — CI/CD
Automatizar con Dependabot + SBOM
Activar Dependabot para todos los manifests (package.json, build.gradle, Podfile, requirements.txt, CMakeLists). Generar SBOM automático en cada release. Configurar Renovate para mono-repo.
Esfuerzo: 1 día · Impacto: estructural