Skip to content

Feature/quizz #20

Open
DonSitiho wants to merge 3 commits into
developfrom
feature/quizz-osiris
Open

Feature/quizz #20
DonSitiho wants to merge 3 commits into
developfrom
feature/quizz-osiris

Conversation

@DonSitiho
Copy link
Copy Markdown
Contributor

Esta Pull Request (PR) introduce la funcionalidad completa para crear, gestionar, enviar y calificar quizzes en la plataforma. Se ha implementado la lógica en la capa de servicio.

✨ Cambios principales
Se ha implementado una nueva arquitectura en capas para la funcionalidad de quizzes, incluyendo los siguientes componentes:

Controller: Maneja las peticiones HTTP para crear, obtener, actualizar, eliminar y enviar quizzes.

Service: Contiene la lógica para la gestión de quizzes, incluyendo la calificación de respuestas.

Repository: Interactúa con la base de datos para las operaciones CRUD.

Entities & DTOs: Modelos de datos y objetos de transferencia para la comunicación entre capas.

Mapper: Interfaz para la conversión de datos entre DTOs y entidades, utilizando MapStruct.

New Feature Java/Spring
Gem personalizado
Claro, aquí tienes una descripción completa y bien estructurada para una Pull Request de GitHub, basada en el "feature/quizz" que hemos desarrollado juntos. Esta descripción te ayudará a comunicar de forma clara los cambios realizados, el problema que resuelven y cómo se pueden probar.

Título de la Pull Request
feat: Implementa la funcionalidad completa de gestión y calificación de quizzes
Descripción de la Pull Request
🚀 Resumen
Esta Pull Request (PR) introduce la funcionalidad completa para crear, gestionar, enviar y calificar quizzes en la plataforma. Se ha implementado la lógica en la capa de servicio y se han corregido los errores de compilación y de lógica encontrados durante el desarrollo.

✨ Cambios principales
Se ha implementado una nueva arquitectura en capas para la funcionalidad de quizzes, incluyendo los siguientes componentes:

Controller: Maneja las peticiones HTTP para crear, obtener, actualizar, eliminar y enviar quizzes.

Service: Contiene la lógica para la gestión de quizzes, incluyendo la calificación de respuestas.

Repository: Interactúa con la base de datos para las operaciones CRUD.

Entities & DTOs: Modelos de datos y objetos de transferencia para la comunicación entre capas.

Mapper: Interfaz para la conversión de datos entre DTOs y entidades, utilizando MapStruct.

✅ Errores y mejoras corregidas
Error de ambigüedad en MapStruct: Se eliminó el método redundante toQuizResponseWithQuestions en el QuizMapper para resolver un conflicto de compilación.

Método faltante en el servicio: Se implementó el método getQuizByLesson en QuizServiceImpl para que la clase cumpla con la interfaz QuizService.

Lógica de calificación: Se corrigió el método submitQuiz en QuizServiceImpl para asegurar que la puntuación se calcula correctamente basándose en las respuestas del usuario y las respuestas correctas guardadas.

Validación de inscripción: Se agregó una validación en el método submitQuiz para evitar que un usuario no inscrito en un curso pueda enviar un quiz de ese curso.

🧪 Pruebas
Se ha creado un conjunto completo de pruebas unitarias para la clase QuizServiceImpl, cubriendo los siguientes escenarios:

Creación exitosa de un quiz.

Manejo de errores al crear un quiz con un curso que no existe.

Obtención de un quiz por ID (éxito y error).

Envío de un quiz con respuestas correctas e incorrectas, verificando la puntuación.

Manejo de errores al intentar enviar un quiz si el usuario no está inscrito.

Eliminación exitosa de un quiz y manejo de errores si no existe.

📋 Cómo probar los cambios
Clonar la rama feature/quizz y ejecutar el proyecto.

Probar los endpoints de la API para quizzes. Puedes usar una herramienta como Postman o Insomnia.

Crear un quiz: POST /api/quizzes (envía un cuerpo con title, description, courseId y una lista de questions).

Obtener un quiz: GET /api/quizzes/{quizId}.

Enviar un quiz: POST /api/quizzes/{quizId}/submit (asegúrate de que el usuario esté autenticado y enrollado en el curso).

Ejecutar las pruebas unitarias para QuizServiceImplTest para verificar la lógica.

@Morfeo95 Morfeo95 self-requested a review September 11, 2025 19:42
@Morfeo95
Copy link
Copy Markdown
Contributor

La mandaste a main no a develop, ojo con eso.

@DonSitiho DonSitiho changed the base branch from main to develop September 11, 2025 19:45
@Morfeo95
Copy link
Copy Markdown
Contributor

No hay persistencia, no funciona con las modificaciones solicitadas por lesson y la taba quizzes no tiene todos los campos de quiz

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants