udistrital / polux_cliente

Cliente angular del proyecto Polux
0 stars 0 forks source link

Analisis y cambio a estructura de base de datos #592

Closed diagutierrezro closed 1 month ago

diagutierrezro commented 1 month ago

Se requiere realizar el analisis y posteriormente los cambios en la base de datos para poder asociar un docente evaluador bien sea con un proyecto curricular o con un estudiante, esto para preveer el registro de notas en el flujo final de la modalidad.

Sub Tareas

Criterios de aceptación

Requerimientos

No aplica

Definition of Ready - DoR

Definition of Done - DoD - Desarrollo

CrisEs2506 commented 1 month ago

SubTarea N°1: Realizar analisis de cambios a realizar en la base de datos.

  1. Al momento de crear la solicitud inicial de un Trabajo de Grado se ejecuta una petición llamada 'Registrar' la cual se encarga de verificar los requisitos del estudiante actual y ver sí es posible que realice dicha modalidad de grado:

image

image

Allí se puede observar como el response trae un campo llamado 'Carrera' con el respectivo código del proyecto curricular del estudiante, allí haremos enfasis para que cuando se agregue el segundo estudiante se compare dichos códigos y en caso de ser diferentes se realice una lógica diferente para el momento de enviar las solicitudes a los dos coordinadores de los dos proyectos curriculares.

PD: Lo anterior comentado es equivalente a la solicitud '3' que se ejecuta al agregar el código del segundo estudiante en el formulario de solicitud inicial:

image
  1. Después de que se crea la solicitud inicial por parte de uno de los estudiantes, en la tabla llamada 'respuesta_solicitud' se crea un registro donde se indica el ente responsable y es a partir de allí, que el sistema permite listar la solicitud al Docente Director (mediante su número de cédula):
image

De este mismo modo se realizaría la lógica para el momento en que aprueba la solicitud el director interno, se creen dos registros a la tabla 'respuesta_solicitud' dando como entes responsables a los dos coordinadores de los dos proyectos curriculares.

  1. Cuando un Coordinador aprueba la solicitud inicial, se crea en la tabla 'trabajo_grado' un registro con un ID que se le dará a dicho trabajo de grado como se ve en la siguiente imagen:
image

Posteriormente, se realizan las vinculaciones al trabajo de grado en la tabla que como su nombre lo indica se llama 'vinculacion_trabajo_grado' añadiendo en este caso al docente director y al docente evaluador:

image

image

En este punto cada proyecto curricular debe añadir su respectivo docente evaluador y estos se verán reflejados en la tabla 'vinculacion_trabajo_grado' (es decir, habrá un registro más).

diagutierrezro commented 1 month ago

Aún no se realizará implementación ya que se debe realizar reunión con el usuario para confirmar que se continúa con el cambio, se mantiene issue abierta y según lo acordado con el usuario se implementa o se cierra el issue.

CrisEs2506 commented 1 month ago

SubTarea N°1: Realizar analisis de cambios a realizar en la base de datos.

Opción 1

Para el tema de que un Docente Evaluador pueda calificar a su Estudiante de Proyecto Curricular únicamente, propongo que se duplique el trabajo de grado para que se califique por aparte pero que se trabaje en conjunto, en este orden de ideas:

  1. Crear duplicado de datos para la tabla 'detalle_solicitud' con diferente id de llave foranea 'solicitud_trabajo_grado':
image

Se crearían dos solicitudes de trabajo de grado en la tabla 'solicitud_trabajo_grado' con el fin de que se pueda asociar ambas llaves fóraneas en la tabla 'solicitud_trabajo_grado' y dos llaves foraneas de 'trabajo_grado':

image
  1. En la tabla de 'usuario_solicitud' un estudiante se asociaría con la otra llave foranea que se creo en la tabla 'solicitud_trabajo_grado':
image
  1. De igual manera en la tabla 'respuesta_solicitud' se duplicaría la solicitud de "Radicada" con diferente 'solicitud_trabajo_grado' y adicional cada respuesta del ente responsable (sea Docente Director o Coordinadores) iría a su correspondiente solicitud.
image
  1. En el momento en que se apruebe la solicitud inicial se crearan dos trabajos de grados pero con los mismos documentos y la misma información:
image
  1. La vinculación de los entes en la tabla 'vinculacion_trabajo_grado' se haría un duplicado para el caso del docente director tan solo que a la diferente llave foranea de 'trabajo_grado' y para los coordinadores sí simplemente se asignaría al trabajo de grado de su estudiante de proyecto curricular:
image
  1. Los registros de la tabla 'estudiante_trabajo_grado' se encontraría cada estudiante asociado a su respectivo 'trabajo_grado', muy similar al registro de la tabla 'solicitud_trabajo_grado' (#2 de este comentario):
image
  1. Finalmente para el tema de la 'evaluacion_trabajo_grado' solo es cuestión de asociar todas las llaves foraneas de la tabla 'vinculacion_trabajo_grado' y colocar su respectiva nota, con la particularidad de que el Docente Director colocará la misma nota para sus dos registros:
image
CrisEs2506 commented 1 month ago

SubTarea N°1: Realizar analisis de cambios a realizar en la base de datos.

Opción 2

  1. Todo el flujo se realiza como se comentó al comienzo, sin embargo, al momento de que se aprueba la Solicitud Inicial, en la tabla 'vinculacion_trabajo_grado' se añadirá un nuevo registro con el docente evaluador adicional y se creará una nueva columna llamada 'estudiante' donde solo para este caso (estudiantes de diferentes proyectos curriculares) se agregue el código del respectivo estudiante, logrando coincidir la 'Carrera' del estudiante y del docente evaluador. Esto con el fin de que en la tabla 'evaluacion_trabajo_grado' se asocien los 3 campos de 'vinculacion_trabajo_grado' y que cada docente evaluador pueda calificar a su respectivo estudiante:

Imagen de WhatsApp 2024-07-08 a las 13 28 15_c66c25d3

diagutierrezro commented 1 month ago

Despues de hablar con el usuario se define que los trabajos de grado que tengan estudiantes de diferentes proyectos curriculares realizarán la solicitud por separado por lo que este cambio ya no es necesario, se cierra el issue.