Plataforma de Evaluación de CVs
ASOMMMN
Periodo: Jun. 2026 – Presente
Plataforma full-stack en producción que digitaliza la evaluación de CVs de una asociación nacional de oficiales de la marina mercante: autenticación JWT, control de acceso por roles y backend con REST API.
Galería
// Problema
- La asociación evaluaba los CVs de sus aspirantes de forma completamente manual: documentos dispersos, revisión uno a uno y sin un registro central del estado de cada solicitud.
- Se necesitaba una plataforma donde los aspirantes subieran su información y los evaluadores la revisaran desde un solo lugar, con acceso controlado a datos sensibles.
// Mi rol
- Desarrollador full-stack único del proyecto (servicio social): arquitectura, frontend, backend, API, base de datos y despliegue.
- Diseño de la lógica de negocio para usuarios, currículums y evaluaciones.
// Arquitectura
- Cliente: React SPA (Postulante · Evaluador · Admin)
- Servicios: Netlify (Hosting del frontend + CDN)
- Servicios: REST API · Node.js (Auth JWT + middleware de roles)
- Datos: MongoDB (Usuarios, CVs, evaluaciones)
- Datos: Asistente IA ([COMPLETAR: proveedor / modelo])
- React SPA → Netlify: HTTPS
- React SPA → REST API · Node.js: REST + Bearer JWT
- REST API · Node.js → MongoDB: consultas
- REST API · Node.js → Asistente IA: revisión de documentos
// Decisiones técnicas y trade-offs
JWT sin estado en lugar de sesiones en servidor
La API no guarda sesiones: cada petición se valida con el token, lo que simplifica el despliegue del backend por separado del frontend. Trade-off: revocar un token antes de que expire requiere expiración corta o lista de revocación.
Control de acceso por roles en el backend
Los permisos de postulante, evaluador y administrador se validan en la API, no solo ocultando botones en la interfaz: el frontend no es una frontera de seguridad.
MongoDB para expedientes de forma variable
Cada CV y evaluación es un documento con campos que pueden variar entre aspirantes; el modelo de documentos evita migraciones rígidas mientras el proceso se ajusta con la institución. Trade-off: la integridad entre colecciones se valida en la capa de aplicación.
// Seguridad
- Autenticación con JWT y manejo seguro de sesiones.
- Autorización por rol en cada endpoint de la API.
- Datos sensibles de aspirantes y evaluadores accesibles solo para roles autorizados.
- [COMPLETAR: hash de contraseñas (¿bcrypt/argon2?), expiración de tokens y validación de archivos subidos]
// Resultado e impacto
- El proceso de evaluación de CVs pasó de completamente manual a digital, en producción y usado por evaluadores reales.
- [COMPLETAR: número de aspirantes / evaluaciones procesadas o tiempo de revisión antes vs. después]
// Stack
- React
- Node.js
- MongoDB
- JWT
- REST API