01 / Contrato
Seis módulos, 96 horas y una salida concreta: una API REST con tests y entorno Docker funcionando. La currícula completa se publica antes de la inscripción.
02 / Arquitectura
A la izquierda, la entrega del módulo 1: todo en un archivo. A la derecha, la del módulo 6 después de la revisión de arquitectura. Cada anotación en monoespaciada corresponde a un criterio que se evalúa en la devolución del código.
Antes / módulo 1
app.jsrutas, SQL y validación en 240 líneasapp.get('/pedidos', ...)consulta escrita dentro del handlerSELECT * FROM pedidossin parámetros, sin límiteprocess.env.DATABASE_URLleído en cada requestcatch { res.send('error') }respuesta en texto plano, sin códigoconsole.log(req.body)credenciales en los logsDespués / módulo 6
routes/pedidos.jssolo contrato HTTP y validación de entradaservices/pedidos.jsreglas de negocio aisladas y testeablesrepositories/pedidos.jsSQL parametrizado con paginacióndb/pool.jsun pool por proceso, reutilizadoerrorHandler400, 404 y 500 con cuerpo JSONlogger.info({ requestId })sin datos sensibles en la trazaResultado verificable: GET /api/pedidos responde 200 con el JSON de referencia y los casos 400, 404 y 500 quedan cubiertos por pruebas. Ver la tabla de módulos y entregables
02 / Contrato
Cada fila del ledger es un compromiso verificable: tema, entregable y horas. La currícula completa, con prerrequisitos y criterios de aprobación, se publica antes de la inscripción en el plan completo del programa.
| Módulo | Tema | Entregable | Horas |
|---|---|---|---|
| 01 | Node.js LTS y Express: módulos ESM, middleware y manejo centralizado de errores | Servidor Express con endpoint de salud y errores tipados | 12 |
| 02 | Diseño de REST APIs: recursos, verbos, códigos de estado y versionado | Contrato de endpoints CRUD con respuestas de referencia | 18 |
| 03 | PostgreSQL 16: esquema relacional, migraciones, pool de conexiones y transacciones | Capa de persistencia con migraciones y consultas parametrizadas | 18 |
| 04 | Autenticación y seguridad: JWT, hash de contraseñas y validación de entrada | Endpoint protegido con JWT y esquema de validación | 14 |
| 05 | Arquitectura de aplicación: separación por capas, inyección de dependencias y variables de entorno | Refactor en capas con pruebas de integración | 18 |
| 06 | Entorno y despliegue: Dockerfile, compose local y automatización básica | Imagen reproducible y pipeline de despliegue | 16 |
| Total | 96 | ||
Cada módulo se evalúa contra un contrato HTTP explícito: el endpoint debe responder el JSON de referencia con los códigos de estado correctos. La constancia de finalización detalla horas y entregables y no constituye título oficial ni acreditación universitaria.
04 / Laboratorios
Cada módulo cierra con un artefacto que se puede leer: la solicitud, la respuesta, la salida de las pruebas y el diff de la migración. Si el endpoint no devuelve el JSON de referencia con el código correcto, el módulo no queda aprobado.
POST /api/pedidos con validación de payload y respuestas 201 y 422./api/cursos/backend/modulos/3{
"modulo": "M03 - API REST",
"horas": 16,
"entregable": "CRUD validado",
"estado": 200
}
suite: modulosPASS modulos/create.test.js
PASS modulos/validate.test.js
ok 422 sin email
ok 201 payload valido
Pruebas: 14 pasadas, 14 totales
003_pedidos.sqlALTER TABLE pedidos
ADD COLUMN estado varchar(24)
NOT NULL DEFAULT 'pendiente';
CREATE INDEX pedidos_estado_idx
ON pedidos (estado);
06 / Inscripción
Las inscripciones cierran el 4 de marzo o al completar el cupo. Las clases son online en vivo, dos noches por semana, y cada módulo se aprueba entregando un endpoint que responde el JSON de referencia del contrato.
El curso no enseña programación desde cero. Si dudás de tu nivel, escribinos antes de inscribirte y revisamos tu caso.