Feature/quizz #20
Open
DonSitiho wants to merge 3 commits into
Open
Conversation
Contributor
|
La mandaste a main no a develop, ojo con eso. |
Contributor
|
No hay persistencia, no funciona con las modificaciones solicitadas por lesson y la taba quizzes no tiene todos los campos de quiz |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.