Ago. 2026 – actualidad
LASCE Research Lab Platform
La plataforma web del Laboratorio de Clima Espacial de la UCR. Construí sus publicaciones de investigación, el CMS en sitio y la gestión de noticias.
Mi rolDesarrollador full-stack del equipo g02 (publicaciones, CMS en sitio, noticias, panel de administración)
Ver en GitHub ↗- componentes con pruebas
- 20+
- componentes con pruebas
LASCE es la plataforma del Laboratorio de Clima Espacial de la Universidad de Costa Rica: un monorepo con pnpm y Turborepo con una aplicación Next.js (interfaz y API) y un worker en Python que comparten una cola BullMQ, sobre PostgreSQL, Redis, InfluxDB y MinIO. Varios equipos de estudiantes la construyen juntos; yo trabajo en el equipo g02.
Publicaciones de investigación
- Diseñé un esquema research dedicado en PostgreSQL con Prisma (editoriales, registros de investigación, autores y una tabla intermedia ordenada para el orden de citación), con DOI y URL de origen únicos e índice por fecha, además de su migración y datos semilla.
- Repliqué el esquema en SQLAlchemy para el worker en Python y escribí una prueba que verifica que coincide con las tablas, columnas y llaves foráneas de Prisma, para que ambos entornos no se desincronicen.
- Reemplacé los datos de prueba de la página por un Server Component que lee de Postgres, construí los componentes PublicationsExplorer y PublicationCard y documenté el esquema.
Un CMS en sitio reutilizable
- Un modo de edición que los administradores activan desde el panel (compartido mediante un provider), un envoltorio que agrega acciones de editar y eliminar a cualquier contenido y una tarjeta para agregar elementos, para editar las páginas donde se leen.
- Un kit de interfaz compartido: modal (tres tamaños), diálogo de confirmación, campo de formulario con etiqueta, zona para soltar archivos, botón de ícono, interruptor y una variante de botón de peligro, cada uno con historias de Storybook y pruebas con Vitest.
- Escribí la guía que siguen los demás equipos para hacer editables sus propias funcionalidades.
Gestión de noticias
- Formulario de artículos, tarjetas de noticias editables y un explorador de noticias que persiste mediante la API en lugar de estado local.
- Rutas REST protegidas por permisos (POST /api/news, PATCH y DELETE /api/news/[id]), con cada control de crear, editar y eliminar en la interfaz habilitado según su propio permiso.
- Pruebas para las rutas, las funciones de datos y cada componente, además de un validador genérico compartido por los formularios.
Panel de administración y archivos
- Construí la primera versión del panel de administración (estructura, barra lateral, tarjetas de estadísticas, indicadores de estado y página de resumen) con una prueba end-to-end en Playwright.
- Corregí que las imágenes subidas no cargaran en staging, restringí los tipos de archivo aceptados al subir a MinIO y documenté los argumentos de compilación que necesita el despliegue.
Hecho con
Next.js 16TypeScriptPrismaPostgreSQLSQLAlchemyVitestStorybookPlaywrightMinIOTurborepo
Siguiente proyecto
Virtual Microscope Admin Panel →



