Nexora es una red social universitaria para estudiantes de la UTP, inspirada en la experiencia de Twitter. Este repositorio contiene el backend core de la aplicación.
El backend de Nexora gestiona la autenticación institucional, la persistencia de perfiles y la orquestación de datos mediante una arquitectura robusta en Spring Boot.
- Lenguaje: Java 21
- Framework: Spring Boot 3.x+
- Seguridad: Spring Security + JWT + Autenticación Supabase
- Persistencia: Spring Data JPA + PostgreSQL
- API: REST & GraphQL (Spring GraphQL)
- Testing: JUnit 5 + Mockito
Un perfil de usuario se considera "Completo" (isComplete) únicamente si cumple con los siguientes requisitos:
- Nombre de Usuario (
username) definido. - Nombre Completo (
fullName) definido. - Carrera Académica seleccionada.
- Al menos un Interés Académico registrado.
Referencia: AuthService.java -> isProfileComplete
Debido a las reglas institucionales de la UTP:
- Los correos
@utp.edu.pedeben ser tratados con la parte local (ID de estudiante/docente) en MAYÚSCULAS para garantizar la compatibilidad con los sistemas de autenticación.
src/main/java/com/nexora/core
auth/ - Lógica de autenticación y registro
common/ - Entidades y utilidades base
graphql/ - Resolvers y esquemas
security/ - Configuración de filtros y JWT
user/ - Gestión de perfiles y relaciones
Configura estas variables en tu archivo .env o plataforma de despliegue:
DB_URL=jdbc:postgresql://localhost:5432/nexora
DB_USERNAME=postgres
DB_PASSWORD=postgres
JWT_SECRET=[Tu-Secret-Key]
JWT_REFRESH_SECRET=[Tu-Refresh-Key]
SUPABASE_URL=[URL-Proyecto]
SUPABASE_KEY=[Anon-Key]./mvnw.cmd clean spring-boot:runLa API inicia por defecto en http://localhost:8080.
./mvnw.cmd test- @Crismar12
- @kath144 (Katherine Salas)
- @KennySth
Proyecto académico para la UTP. Uso educativo.