Modernización, desacoplamiento de cargas analíticas en 4 capas y modelos predictivos sobre el ecosistema SOFI para la empresa APM Inversiones S.A.C.
Replicación R=3 en 3 DataNodes con tolerancia a fallas de disco.
Staging desacoplado de eventos Discord sin saturar PostgreSQL.
Inferencia de deserción en tiempo real y dashboards ejecutivos.
Modelo formativo 100% remoto que audita asistencia, telemetría Git y evaluaciones modulares.
Consultas analíticas pesadas sobre 7,111 filas degradan inserciones de marcación en PostgreSQL.
Auditar a un practicante exige cruzar 5 tablas relacionales con latencias críticas en producción.
Picos sincrónicos de eventos desde Discord (salas a las 9:00 AM) saturan la base sin colas.
Maestro de practicantes, convenios, sedes, asistencias y solicitudes de recuperación.
Eventos de check-in/out, horas en salas de voz (9:00 AM) y alertas de inactividad.
Horas efectivas de estudio por módulo, estados de avance (planned/finished) y notas.
Volumen de commits, diffs de líneas agregadas/eliminadas, ramas activas y PRs.
Validación de DNI único, verificación de nombres oficiales y saneamiento de duplicados.
Calendario oficial de días no laborables para evitar penalizaciones erróneas en horas.
hdfs:///data/sofi/| Rol | Nombre del Campo | Tipo en Machine Learning | Descripción y Dominio |
|---|---|---|---|
| Y | riesgo_incumplimiento | Cualitativa Binaria | Target: 1 = Deuda Crítica / Default, 0 = Cumple |
| X₁ | total_horas_adeudadas | Cuantitativa Continua | Saldo neto acumulado por inasistencias (ej. 42.5 hrs) |
| X₂ | cantidad_faltas_injustificadas | Cuantitativa Discreta | Conteo entero de inasistencias sin justificar (ej. 4) |
| X₃ | tipo_convenio | Cualitativa Nominal | Preprofesional (36h/sem) / Profesional (48h/sem) / Voluntario |
| X₄ | tiene_plan_recuperacion | Cualitativa Binaria | 1 = Plan activo en curso, 0 = Sin solicitud activa |
| Rol | Nombre del Campo | Tipo en Machine Learning | Descripción y Dominio |
|---|---|---|---|
| Y | estado_bloqueado | Cualitativa Binaria | Target: 1 = Bloqueado / Requiere rescate, 0 = Normal |
| X₁ | tiempo_modulo_horas | Cuantitativa Continua | Horas acumuladas dedicadas al módulo actual (ej. 18.5 hrs) |
| X₂ | dias_sin_commits | Cuantitativa Discreta | Días laborables consecutivos sin actividad Git (ej. 3 días) |
| X₃ | curso_tecnologico | Cualitativa Nominal | Ruta formativa (SpringBoot, React, TypeScript, Git) |
| X₄ | solicito_ayuda_mentor | Cualitativa Binaria | 1 = Solicitó ticket en SOFI ayuda_puntos, 0 = No solicitó |
| Nombre del Campo | Tipo | Descripción Corta | Origen |
|---|---|---|---|
| practicante_id | Integer | Identificador único del practicante en SOFI | PostgreSQL (usuarios) |
| periodo_mes | Varchar | Mes y año del balance analizado (ej. "2026-08") | PostgreSQL (asistencias) |
| horas_requeridas | Float | Meta mensual de convenio (144h / 36h sem) | PostgreSQL (convenios) |
| horas_asistidas_reales | Float | Horas netas registradas en conexión y formación | Bot Discord / Logs |
| total_tardanzas | Integer | Registros con ingreso posterior a la tolerancia | PostgreSQL (asistencias) |
| total_inasistencias | Integer | Días laborables sin registro ni justificación | PostgreSQL (asistencias) |
| horas_recuperadas | Float | Horas compensadas en turnos extraordinarios | PostgreSQL (recuperaciones) |
| balance_horas | Float | Saldo neto (reales + recuperadas - requeridas) | Cálculo OLAP ETL |
| estado_laboral | Varchar | Cumplimiento formativo (Regular / Alerta / Observado) | Regla de Negocio |
| Nombre del Campo | Tipo | Descripción Corta | Origen |
|---|---|---|---|
| practicante_id | Integer | Identificador único del practicante evaluado | PostgreSQL (usuarios) |
| curso_nombre | Varchar | Denominación de la ruta técnica (SpringBoot, Git) | LMS / cursos |
| modulo_tema_actual | Varchar | Módulo formativo en desarrollo actualmente | LMS / modulos |
| estado_progreso | Varchar | Situación curricular (finished, in_progress, planned) | Telemetría LMS |
| nota_evaluacion_mentor | Float | Calificación en rúbrica técnica (escala 0 - 20) | Rúbricas Mentor SOFI |
| tuvo_reevaluacion | Boolean | Indica si requirió segundo intento tras reprobación | Rúbricas Mentor SOFI |
| commits_totales | Integer | Cantidad de commits registrados en el módulo | API GitHub |
| lineas_codigo_agregadas | Integer | Volumen neto de líneas añadidas en repositorios | API GitHub |
| pull_requests_aprobados | Integer | PRs revisados, aprobados y fusionados | API GitHub |
| tiempo_estudio_horas | Float | Horas invertidas en plataforma formativa | Telemetría LMS |
| nivel_dominio_tecnico | Varchar | Segmentación analítica (Básico, Intermedio, Avanzado) | Clasificación OLAP |
Filtra perfiles de software activos (Backend y Frontend).