es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Estado de la asignación de Next.js/Mongodb para un estudiante individual en una plataforma de gestión del aprendizaje (LMS)

Estoy construyendo un Sistema de Gestión del Aprendizaje MERN (con Next.js). Actualmente, he construido la interfaz para las tareas que muestra una lista de las tareas para ese curso. Por ejemplo, si estoy conectado, veré todas mis tareas para el curso PHIL 204 si voy a test.com/courses/PHIL204/Assignments. Ahora, en esta tabla, hay una columna que dice “Estado” y que indica si la tarea ha comenzado, sido entregada o calificada (solo 3 valores). Mi pregunta es, ¿cómo debo almacenar/calcular este valor? Tengo estudiantes y tareas como dos colecciones (de muchas) en mi base de datos. Mi base de datos aún está en desarrollo, por lo que puedo seguir fácilmente tus sugerencias. No creo que la colección de Tareas deba tener un campo “estado” porque eso mostraría lo mismo para todos los estudiantes que tienen esa tarea. Si necesitas algún código de mi parte, puedo proporcionarlo. Estoy buscando ayuda principalmente para la lógica de qué/cómo almacenar si un estudiante ha comenzado, enviado o calificado (por el profesor) esa tarea.

Cualquier ayuda sería muy apreciada. Muchas gracias.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Existen varios métodos diferentes que podrían utilizarse para almacenar/calcular el valor de “estado” para las tareas en tu Sistema de Gestión del Aprendizaje. Aquí tienes algunas sugerencias:

    1. Agrega un nuevo campo a la colección de Estudiantes. Podrías añadir un nuevo campo a la colección de Estudiantes llamado “Tareas” o algo similar, el cual almacenaría un array con todas las tareas asignadas al estudiante. Cada objeto en el array podría tener un campo “estado” que se actualizaría a medida que el estudiante avanza en la tarea. Este método te permitiría almacenar el estado para cada estudiante individual, en lugar de para la tarea en su totalidad.
    2. Utiliza una colección separada para el estado de las tareas. Podrías crear una nueva colección llamada “Estado de Tareas” o algo similar, la cual tendría documentos para cada combinación tarea/estudiante. Cada documento podría tener campos para el ID de la tarea, el ID del estudiante y el estado. Este enfoque te permitiría almacenar el estado para cada combinación de estudiante/tarea individual, y también te permitiría realizar consultas fácilmente para todas las tareas que no se hayan iniciado, por ejemplo.

    3. Utiliza una colección separada para las entregas de los estudiantes. Otra opción sería crear una colección separada para las entregas de los estudiantes, la cual tendría documentos para cada entrega. Cada documento podría tener campos para el ID de la tarea, el ID del estudiante, el texto de la entrega y el estado (que inicialmente sería “No Iniciado” y se actualizaría a medida que el estudiante avanza en la tarea). Este método te permitiría almacenar el estado de la tarea y el texto de la entrega en la misma colección, y también te permitiría realizar consultas fácilmente para todas las tareas que no se hayan iniciado o que no se hayan entregado.

    En última instancia, el método que elijas dependerá de los requisitos específicos de tu sistema y la cantidad de complejidad que estés dispuesto a introducir. ¡Espero que estas sugerencias te ayuden a empezar!

Comments are closed.