API backend
NestJS expone recursos académicos y administrativos. No existe frontend en este repositorio.
Backend para coordinar cursos, comunidad académica, sesiones de apoyo y progresión mediante una API REST con persistencia relacional.
Proyecto colaborativo de Computación en Internet III, desarrollado como API backend; el repositorio no incluye una interfaz web.
Modelar en un solo servicio la identidad académica, la matrícula, la interacción entre estudiantes y docentes, y la trazabilidad de sesiones e insignias.
Arquitectura modular en NestJS con controladores, servicios y repositorios TypeORM sobre PostgreSQL, autenticación JWT, validación de DTOs y documentación Swagger.
El repositorio evidencia trabajo colaborativo, pero no documenta qué piezas pertenecen individualmente a Juan Pablo. Por eso este caso presenta el resultado técnico sin reclamar autoría exclusiva.
Implementación backend amplia, con límites reales: no hay frontend; varias rutas de dominio permanecen públicas; Docker Compose solo levanta PostgreSQL; y el workflow de CI actual referencia un package-lock.json ausente.
La lectura del código, la documentación y la automatización permite separar lo implementado de lo que el repositorio todavía no demuestra.
NestJS expone recursos académicos y administrativos. No existe frontend en este repositorio.
13 entidades TypeORM sobre PostgreSQL, con relaciones explícitas para roles, permisos, cursos e insignias.
JWT y guards funcionan en administración y respuestas; otros controladores de dominio siguen sin protección.
Hay una evidencia visual del endpoint desplegado, pero el README declara el servicio apagado y no se afirma disponibilidad actual.
Scholar Sync reúne identidad, matrícula, conversación académica, tutorías y reconocimiento por participación. El objetivo técnico fue convertir esos flujos relacionados en una API modular, validada y persistente, preparada para distintos perfiles de usuario.
Usuarios, roles, permisos y sus asignaciones explícitas.
Catálogo y relación de estudiante, profesor o TA con cada curso.
Posts, respuestas anidadas, likes, validación y experiencia.
Sesiones suplementarias, asistencia e insignias por nivel.
AppModule compone cinco dominios principales. Cada recurso pasa de controladores y DTOs a servicios y repositorios TypeORM; PostgreSQL conserva el modelo relacional.
68 rutas REST y ValidationPipe global con whitelist.
Reglas CRUD, relaciones, XP, niveles y asignación de badges.
13 entidades y tablas puente modeladas como entidades propias.
Configuración local por variables o DATABASE_URL con SSL para cloud.
JWT / Passport autentica tokens; RolesGuard restringe administración y validación Professor/TA. Swagger publica el contrato en /api.
El alcance real combina administración académica, conversación y gamificación; no incluye experiencia de usuario visual ni cliente web.
Registro con hash bcrypt, login JWT y carga de roles/permisos. El logout es stateless: pide descartar el token en el cliente.
CRUD de usuarios, roles y permisos, más asignaciones usuario–rol y rol–permiso protegidas para Admin.
Foro con posts, respuestas anidadas, likes y validación de respuestas reservada a Professor o TA.
Crear posts y respuestas, recibir likes y validaciones suma XP; el nivel puede activar insignias elegibles.
Cursos, matrículas con tipo de relación, sesiones suplementarias y registros de asistencia.
Swagger, DTOs con class-validator, colección Postman y seed SQL para desarrollo y pruebas.
El repositorio contiene una base de pruebas considerable, pero su presencia no equivale a una ejecución exitosa vigente.
147 casos localizados en servicios con mocks de repositorio.
86 casos que requieren una PostgreSQL real y datos seed.
Build y unit tests para main; no ejecuta E2E ni despliega.
Docker Compose levanta únicamente PostgreSQL 16; no existe Dockerfile para la API.
El workflow usa npm ci y busca package-lock.json, pero el repositorio conserva bun.lock: la CI actual necesita alinearse con el gestor de paquetes.
La captura original acredita que el endpoint raíz respondió en Railway; no acredita frontend, salud actual ni un pipeline de CD.

Captura original incluida como “Deployment Evidence.jpeg”. Muestra el dominio de Railway y la respuesta Hello World del endpoint raíz; se conserva sin presentarla como interfaz de producto.
El código cubre el núcleo funcional, pero una lectura de producción exige observar también las brechas entre documentación, autorización y entrega.
El sistema conecta usuarios con roles, permisos, cursos, posts, respuestas, sesiones e insignias mediante entidades intermedias y relaciones bidireccionales.
Cursos, posts, badges y sesiones no aplican guards aunque el README los describe como autenticados. PermissionsGuard existe, pero ningún controlador lo usa.
Varios DTOs aceptan userId desde el body; el backend no siempre vincula la acción con el usuario autenticado, un punto importante antes de producción.
Falta alinear CI y lockfile, incorporar PostgreSQL para E2E y definir una imagen o estrategia explícita de despliegue de la API.
El README habla de módulos bajo responsabilidad del equipo, pero no nombra responsables individuales. El historial Git disponible tampoco vincula commits con Juan Pablo. Por rigor, el portafolio presenta Scholar Sync como proyecto académico colaborativo y no atribuye a Juan una implementación específica ni la autoría total del backend.
Fuentes: README, package.json, módulos, controladores, servicios, entidades, DTOs, guards, pruebas, inserts.sql, Docker Compose, workflow de GitHub Actions y evidencia de despliegue del repositorio original. No se modificó ni desplegó Scholar Sync.
¿Tienes un producto por construir o buscas a alguien para tu equipo? Conversemos.