Skip to content

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.

License

Notifications You must be signed in to change notification settings

LucioFex/UDEMA-backend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

UDEMA (Backend)

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.

Diagrama de clases

Preparación de la base de datos

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

Endpoints y Autenticación

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.

Registro de Cuenta

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).

Adicional:

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).

Ejemplo de creación de un alumno y profesor

Alumno

image

Profesor

image

Endpoint: POST /api/auth/professor/login

Login de Estudiante:

Endpoint: POST /api/auth/student/login

Request body:

{
  "username": "student_username",
  "password": "student_password"
}

Response

{
  "token": "...jwt_token..."
}

Login de Profesor:

Endpoint: POST /api/auth/professor/login

Request body:

{
  "username": "professor_username",
  "password": "professor_password"
}

Ejemplo

Response

{
  "token": "...jwt_token..."
}

Ejemplo

image

Paso posterior al login

El token recibido debe ser incluido en el header Authorization como Bearer token para acceder a los endpoints protegidos.

Ejemplo

image

Reinicialización de la Base de Datos

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).

Documentación de endpoints

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

image

About

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.

Topics

Resources

License

Stars

Watchers

Forks

Languages