Saltar al contenido

Gradox 2

Plataforma colaborativa de apuntes para la USC, con votaciones, reputación y gobernanza distribuida.

  • Java
  • Spring Boot
  • PostgreSQL
  • S3
  • Docker
Vista de Gradox 2

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=validate en 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.

Relacionados

Vista de LockedIn

LockedIn

Gestor de contraseñas offline-first con cifrado AES-256-GCM y compartición de credenciales de extremo a extremo.

KotlinJetpack ComposeFastAPIPostgreSQL +1
Ver caso
Vista de GreenDots

GreenDots

App móvil para descubrir y valorar negocios según su impacto en los ODS.

KotlinSpring BootPostgreSQLDocker
Ver caso