- Se hara una copia o se 'cachearan' los datos a la base de datos que se este usando para el realtime y seran:
- Leccion que se tomara
- Preguntas del paralelo
- Paralelo
- Estudiantes de este paralelo
- Profesor del paralelo
- Peers del paralelo
- Grupos del paralelo
La analogia de toda esta parte es un grupo de chat
Cada paralelo es un grupo de chat. En donde el moderador es el profesor que en este caso sera mas general y solo lo llamaremos moderador
Tenemos dos tipos de usuarios: Moderador y estudiante
Moderador
Realiza las acciones de la leccion, como son: comenzar-leccion, cancelar-leccion, terminar-leccion, aumentar-tiempo-leccion, pausar-leccion, continuar-leccion. Ademas que recibe las respuestas de los estudiantes
Estudiante
Las acciones son: enviar-respuesta
Socketio usa dos metodos, que son los on y los emit. Los on solo escuchan lo que los clientes envien y los emit que envian datos al cliente
Inicia la leccion y comienza a enviar en tiempo a todos los estudiantes que esten en el paralelo
recibe
{
"leccionId"
"paraleloId"
"fechaInicioTomada" // string, en formato isoTime
"tiempoEstimado" // number, en segundos
"usuarioId"
}recibe
recibe
recibe
recibe
recibe
recibe
recibe
recibe
database
Porque en parlelo y no en eleccion emit in(paraleloId)
- Posible: Si un estudiante desconoce su paralelo
envio
terminado leccion = terminada-leccion
envio
envio
envio
estados leccion pendiente, sin-empezar, tomando, pausado, terminado, calificado
estados estudiante leccion ingresando-codigo, esperando-empiece-leccion, dando-leccion