Gradox 2 es la modernización de Gradox, la plataforma con la que los estudiantes de la USC comparten apuntes, ejercicios y material de estudio. La versión nueva añade autenticación, votaciones ponderadas, reputación, moderación y un sistema de gobernanza distribuida.
Qué cambia respecto a la versión anterior
El objetivo no era solo reescribir la aplicación, sino convertirla en una red colaborativa que se pudiera mantener y gobernar con el tiempo. Para eso hacía falta que la calidad del contenido no dependiera de una sola persona y que los roles se pudieran promover o retirar mediante votaciones.
Cómo está construido
- API en capas con Spring Boot 3.5 y Java 21: autenticación con verificación por correo, refresh tokens, recuperación de contraseña y roles.
- PostgreSQL gestionado en Supabase, con Flyway para las migraciones y
ddl-auto=validateen producción. - Almacenamiento S3 compatible: Cloudflare R2 en producción y MinIO en desarrollo. En la base de datos solo se guarda la
object_key; los documentos se sirven con URLs prefirmadas. - Docker y OpenAPI para reproducir el entorno y documentar los endpoints.
- Votaciones, reputación y moderación como parte del modelo de datos, no como un añadido posterior.
Mi papel
Desarrollo principal junto a Manuel Pereiro Conde. El historial del repositorio registra 88 commits míos y el proyecto se publica con licencia GPL-3.0.
Estado
La base técnica y las funcionalidades principales están completas: registro, subida de documentos, votaciones, reputación, moderación y administración. El siguiente paso es el MVP con hilos de discusión, notificaciones y métricas globales.
Stack
Java 21 y Spring Boot 3.5 en el backend, PostgreSQL y Flyway para la persistencia, S3 para los archivos y Docker para el despliegue. La documentación de arquitectura, endpoints y operación está dentro del propio repositorio.