
Este repositorio contiene el backend de la aplicación UDEMA, una API realizada con Java Spring Boot pensada para administrar datos en plataformas educativas como webcampus, permitiendo a estudiantes y profesores interactuar con cursos, clases y comunidades.
A continuación se detallarán los pasos para correr la aplicación.

Si es la primera vez que se intenta ejecutar la aplicación, se debe realizar lo siguiente.
Creación de la base de datos, usuario y asignación de permisos desde root.
CREATE DATABASE udema;
CREATE USER udema_user WITH PASSWORD 'severus_123';
GRANT ALL ON SCHEMA public TO udema_user;
GRANT ALL PRIVILEGES ON DATABASE udema TO udema_user;
-- Conexión local de ejemplo con el usuario a la base de datos:
psql -h localhost -p 5432 -U udema_user udema
-- En caso de tener un error al iniciar la base de datos, revisar los clusters con:
pg_lsclusters
-- Y en caso de que se encuentren incativos, activarlos con:
sudo pg_ctlcluster X main start
-- (Siendo "X" el número de la versión indicada por el cluster).
Una vez descargado el proyecto, utilizar los siguiente comandos para levantar el backend:
mvn compile
mvn spring-boot:run
La autenticación se realiza mediante JWT (JSON Web Tokens). Para acceder a los endpoints protegidos, es necesario crear una cuenta y luego loggearse.
Desde la API se pueden registrar personas con dos posibles role:
- Estudiante
- Profesor.
Para realizar el registro se puede utilizar cualquiera de los siguientes endpoints:
POST http://localhost:8080/api/students
(para agregar a un usuario con el rol de estudiante).POST http://localhost:8080/api/professors
(para agregar a un usuario con el rol de estudiante).
En el ticket se encuentra adjunto un archivo JSON para importar en Insomnia, para tener ya listo un juego de APIs de la aplicación (Insomnia_2025-02-17.json
).
Alumno
Profesor
{
"username": "student_username",
"password": "student_password"
}
{
"token": "...jwt_token..."
}
{
"username": "professor_username",
"password": "professor_password"
}
{
"token": "...jwt_token..."
}
El token recibido debe ser incluido en el header Authorization como Bearer token para acceder a los endpoints protegidos.
Cada vez que se levanta el backend, la base de datos se reinicia automáticamente para mantener un estado consistente en desarrollo y pruebas (create-drop
habilitado).
Es posible revisar el listado de endpoints disponibles utilizando Swagger. El endpoint para acceder al mismo es el siguiente:
http://localhost:8080/swagger-ui/index.html