Base de capacitación técnica para Python y Data Science orientada a clases reales, laboratorios guiados y despliegue progresivo en contexto educativo.
No es solo un repo de materiales. Reúne curriculum modular, laboratorio interactivo local, portal del alumno, presentación institucional, app de escritorio nativa para Windows, app Android y una familia documental que separa producto, operación, seguridad y audiencias.
Versión: v1.0.0 — primera versión operativa
Superficies públicas: portal del alumno + vista institucional en GitHub Pages
App de escritorio: ventana nativa Windows con Edge WebView2 (sin navegador)
Laboratorio: 13 clases, 6 notebooks interactivos, ejecución Python en tiempo real
Postura de despliegue: local-first, no internet abierta sin capas adicionales
| Perfil | Documento de entrada | Qué mirar primero |
|---|---|---|
| Institución / evaluador | docs/GUIA_EVALUACION.md | valor, evidencia y límites reales |
| Reclutador técnico | RECRUITER.md | evidencia técnica rápida en 5 minutos |
| Stakeholder técnico | docs/ARQUITECTURA_PRODUCTO.md | capas, flujos y fronteras |
| Producto / maintainer | docs/CATALOGO_PRODUCTO.md | superficies, artefactos y reglas de comunicación |
| Docente | docs/herramientas-pedagogicas-de-aula.md | mediación, problemas de aula y ritmo |
| Alumno | docs/student-guide.md | uso del curso y expectativas |
| Operación | RUNBOOK.md | arranque, smoke checks y apagado |
| Seguridad | SECURITY.md | postura actual y riesgos aceptados |
Si no sabes por donde entrar, usa docs/INDEX.md.
| Tiempo | Secuencia recomendada | Resultado esperado |
|---|---|---|
| 5 minutos | README → RECRUITER.md |
evidencia rápida de qué funciona hoy |
| 15 minutos | README → docs/GUIA_EVALUACION.md → docs/CATALOGO_PRODUCTO.md |
entender superficies, arquitectura y criterio de operación |
| 30 minutos | secuencia anterior + docs/implementacion-v1-skillnest-san-nicolas.md + docs/ARQUITECTURA_PRODUCTO.md |
ver cómo aterriza en colegio, con límites y growth path |
La documentación está pensada como sistema, no como inventario de archivos.
| Superficie | Rol | Estado |
|---|---|---|
Laboratorio interactivo (app/) |
entorno local de clase — notebooks, runner, ejecución Python | operativo |
Portal del alumno (site/) |
punto de entrada oficial para estudiantes | operativo |
Vista institucional (site/product/) |
presentación visual del producto | operativa |
Curriculum modular (classes/) |
clase 0 diagnóstica + 12 clases con notebooks, ejercicios, slides, tareas y soluciones | operativo |
App de escritorio Windows (launcher.py + bootcamp.spec + installer/) |
ventana nativa con Edge WebView2 — sin navegador, sin Python en el PC del alumno | v1.0.0 publicada |
App Android (mobile/) |
Expo/React Native con contenido embebido + integración Google Colab | v1.0.0 publicada |
PDFs (docs/pdfs/) |
apoyo para reunión, evaluación, estudio e impresión | operativo |
Presentaciones (docs/presentaciones/) |
decks .pptx listos para exposición por clase |
operativo |
La fuente de verdad de esta taxonomía vive en docs/CATALOGO_PRODUCTO.md.
Estos archivos se generan desde el contenido real de cada carpeta en classes/ y quedan accesibles desde el entorno local de clase y desde este README.
PDFs listos para imprimir o compartir en contexto de entrevista, evaluación o preparación docente. Viven en docs/pdfs/ y son independientes del flujo de clases.
PDFs canónicos de entrevista
| Documento | Descripción |
|---|---|
| muestra-producto-para-skillnest.pdf | Muestra imprimible del producto para contexto de institución o reunión comercial |
| guia-estudio-repositorio.pdf | Ruta de lectura rápida del repo para evaluador técnico o reclutador |
Guía ampliada de estudio
| Documento | Descripción |
|---|---|
| guia-total-python-data-science.pdf | Guía de estudio extendida para el docente o alumno avanzado: Python, pandas, visualización y ML |
graph LR
INST["Institución"] --> PRODUCT["site/product/\nVista institucional"]
ALUM["Alumno"] --> PORTAL["site/\nPortal del alumno"]
ALUM --> MOBILE["mobile/\nApp Android"]
DOC["Docente"] --> LAB["app/\nLaboratorio Flask"]
DOC --> WIN["BootcampPythonDS.exe\nApp de escritorio Windows"]
PRODUCT --> DOCS["docs/\nDocumentación canónica"]
PORTAL --> DOCS
MOBILE --> CLASSES["classes/\nClase 0 + 12 clases"]
MOBILE --> COLAB["Google Colab\n(ejecución de código)"]
LAB --> CLASSES
LAB --> DATA["datasets/\n5 CSV sintéticos"]
LAB --> NOTEBOOKS["app/notebooks/\n6 labs interactivos"]
LAB --> SAVED["app/saved_notebooks/\nTrabajo del alumno"]
WIN --> LAB
La arquitectura completa, con flujos y fronteras, está en docs/ARQUITECTURA_PRODUCTO.md.
- clase 0 diagnóstica (quiz de 30 preguntas) + 12 clases modulares;
teoria.md,slides.md,ejercicios.md,homework.mdpor clase;- notebooks Jupyter para el alumno + soluciones para el instructor;
- 5 datasets sintéticos para práctica;
- guías de instructor, metodología y criterios de evaluación;
- ruta inicial acotada documentada para contexto escolar.
- app Flask con visualización de las 13 clases;
- 6 notebooks interactivos precargados (básicos → ML → pipelines);
- ejecución de código Python por celdas con persistencia de sesión;
- captura de gráficos matplotlib como PNG inline;
- guardado de notebooks en JSON;
- endpoints
GET /healthyGET /readypara healthchecks.
- ventana nativa con Edge WebView2 — sin abrir el navegador;
- Flask corre internamente en un puerto libre elegido automáticamente;
- pantalla de carga animada mientras el entorno inicia;
- portable (ZIP) + instalador (Inno Setup) disponibles;
- sin dependencias en el PC del usuario final.
- landing pública para alumnos en GitHub Pages;
- vista institucional HTML con narrativa de producto;
- PDFs listos para preparación personal y muestra del producto;
- guía de evaluación rápida para entrevista o revisión externa.
Descarga BootcampPythonDS_windows_portable_v1.0.0.zip desde Releases, descomprime y ejecuta BootcampPythonDS.exe.
Requiere: Edge WebView2 Runtime (preinstalado en Windows 10 v2004+ y Windows 11).
python -m venv .venv
.venv\Scripts\activate # Windows
# source .venv/bin/activate # macOS / Linux
pip install -r requirements.txt
python run_bootcamp.pyAbre automáticamente http://127.0.0.1:8000 en el navegador.
docker compose up --builddocker compose -f docker-compose.prod.yml up -d --build# Instala dependencias de build
pip install pywebview pyinstaller
# Genera bundle + ZIP portable + instalador (requiere Inno Setup 6)
build_windows.batVer docs/BUILD_INSTALLER.md para instrucciones completas.
pytest # suite completa
ruff check . # lint
python -m bandit -r app # seguridad estáticaWorkflows activos:
| Workflow | Qué cubre |
|---|---|
| ci.yml | tests, lint, build de contenedor |
| security.yml | auditoría de dependencias, SAST |
| deploy-pages.yml | despliegue de site/ a GitHub Pages |
Protecciones activas:
- validación de slugs e identificadores (regex, evita path traversal);
- límite de payload por request (1 MB);
- límite de longitud de código (20 KB);
- timeout de ejecución por celda (30 s) + reinicio de sesión;
- eviction de sesiones antiguas (100 sesiones máx, TTL 1 hora);
- CSP estricto sin dependencias CDN externas;
- defaults de arranque a
127.0.0.1; - nosec justificado para falsos positivos de Bandit en polling loops.
Límites conocidos:
- no hay autenticación integrada;
- no hay sandbox fuerte para código no confiable;
- no hay rate limiting de red;
- no hay TLS nativo;
- el runner es para uso local en aula, no para internet abierta.
Ver SECURITY.md para detalle completo.
| Documento | Rol |
|---|---|
| RECRUITER.md | evidencia técnica rápida para evaluadores |
| CHANGELOG.md | historial de cambios por versión |
| CONTRIBUTING.md | cómo contribuir al proyecto |
| ROADMAP.md | dirección futura del producto |
| RUNBOOK.md | operación diaria |
| SECURITY.md | postura de seguridad y límites |
| docs/INDEX.md | índice completo por audiencia y objetivo |
| docs/CATALOGO_PRODUCTO.md | fuente de verdad de superficies y artefactos |
| docs/ARQUITECTURA_PRODUCTO.md | arquitectura funcional con diagramas |
| docs/GUIA_EVALUACION.md | ruta ejecutiva de 10 minutos |
| docs/BUILD_INSTALLER.md | cómo generar el instalador Windows |
| docs/MOBILE_APP.md | cómo construir y distribuir la app Android |
| docs/entorno-interactivo.md | el laboratorio Flask y su funcionamiento |
| docs/metodologia-docente.md | marco pedagógico del producto |
| docs/instructor-guide.md | playbook de ejecución docente |
| docs/student-guide.md | guía de onboarding del alumno |
| docs/despliegue-seguro-y-operacion.md | CI/CD, Docker y hardening |
Los documentos de preparación para entrevista y las notas internas del maintainer viven en
docs/entrevista/ydocs/maintainer/respectivamente.
- una base seria de capacitación técnica en Python y Data Science;
- un sistema que integra contenido, práctica interactiva y presentación;
- una app de escritorio nativa para distribución en aula sin configuración;
- una muestra de criterio pedagógico, operacional y de seguridad;
- una propuesta que puede empezar acotada y crecer sin rehacerse.
- una plataforma multiusuario endurecida para internet abierta;
- una app móvil ya en producción (el APK es versión debug v1.0.0);
- una promesa de personalización infinita antes de cerrar condiciones;
- profundidad total en todas las direcciones desde la primera versión.
El valor de este proyecto no depende de competir contra una tecnología puntual. Su valor está en traducir herramientas a aprendizaje real, con secuencia pedagógica, criterio docente, operación responsable y una base documental que permite evaluarlo como producto.