Este es un proyecto propuesto por Roadmap.sh para el backend URL:https://roadmap.sh/projects/movie-reservation-system
- Lenguajes de Programación: Java, JavaScript, HTML, CSS
- Frameworks: Spring Boot
- Bases de Datos: PostgreSQL
- Herramientas de Construcción: Maven
- Control de Versiones: Git
- Plataforma de Hospedaje: GitHub
- Otras tecnologías: JWT
Autenticación y Autorización de Usuarios Para la autenticación, los usuarios pueden registrarse e iniciar sesión utilizando credenciales de nombre de usuario y contraseña, las cuales se encriptan con bcrypt, una funcionalidad proporcionada por Spring Security. Se implementaron dos roles principales: USER y ADMIN. Cuando una persona se registra por defecto tiene el rol de USER
RUTA PARA LOGIN: POST '/auth/login' INTERFAZ
RUTA PARA REGISTER POST '/auth/register' INTERFAZ
POSTMAN
En el login y en el registro la API generará un token, en la imagen se le añadió el username y el Rol que adquiere por defecto.
Cuando es añadido a la base de datos, la contraseña ya está encriptada.
#Usuarios regulares (User)
Pueden acceder a funciones básicas como ver películas, sus horarios y realizar reservas.
RUTA PARA MOSTRAR TODAS LAS PELÍCULAS GET '/user/movie'
RUTA PARA VER UNA PELÍCULA GET '/user/movie/{id}'
POSTMAN
INTERFAZ
La interfaz solo necesita extraer el "id" y el "posterImage" para crear los cards El id de movies será usado después para las reservaciones.
CABE ACLARAR QUE FALTO LA INTERFAZ PARA MOSTRAR LAS HORARIOS PERO POR MOMENTO LAS RUTAS EN EL CONTROLADOR ESTÁN HABILITADAS
RUTA PARA VER LOS HORARIOS GET '/admin/horario' Por el momento es una función de usuario ADMIN
RUTA PARA VER LAS RESERVACIONES GET '/user/reservation'
RUTA PARA HACER UNA RESERVACIÓN POST '/{horarioid}/add-seats' Cada horario está compuesto de una película, un horario y una sala de cine y se creo la entidad reservations para administrar los asientos para cada película.
RUTA PARA HACER UNA RESERVACIÓN GET '/{horarioid}/occupied-seats'
Se pensaba mejorar el sistema de facturación pero por falta de tiempo se quedó así, pero los asientos quedan reservados y bloqueados por lo tanto no pueden volverse a seleccionar Utiliza horarioId para tener un espacio exclusivo para cada función de Cine.
TODOS LAS RESERVACIONES SE AÑADIERON EXISTOSAMENTE
#Administradores (Admin)
Tienen acceso a funciones avanzadas como la gestión de películas y horarios, así como la administración de usuarios y generación de reportes.
AHORA SI ALGUIEN INICIA SESIÓN CON UN USUARIO ADMIN
Tiene una serie de rutas las cuales puede usar para manipular los registros de la base de datos, tanto de los usuarios, películas, horarios y salas de cine. El admin tiene todos los permisos puede GET, POST, DELETE y buscar registros por el ID.
RUTAS ADMIN