Gestor de Consultas para el jefe de Carrera:

Integrantes:

-        Darael Badilla                                  201821046-3

-        Manuel Torres                                 201921009-2

-        Florencia Norambuena                 201921005-K

Descripción del problema:

Actualmente, para reservar una cita con el jefe de carrera de electrónica, los estudiantes deben acudir presencialmente a la secretaría o utilizar medios informales como WhatsApp. Para formalizar y optimizar el proceso de gestión de citas, se propone el desarrollo del programa "Gestor de Consultas para el jefe de Carrera", el cual permitirá a los alumnos reservar citas de manera semanal en los horarios disponibles, mientras que el jefe de carrera podrá visualizar las citas agendadas para su gestión respectiva.

Análisis del problema:

Se busca realizar una interfaz sencilla y fácil de usar. Se trata de dar a opción de que la persona que acceda a este programa pueda elegir si es el “Jefe de Carrera” o si es que desea “Solicitar Horario”. Si es que la persona desea solicitar horario, entonces se abre una nueva interfaz, la cual se mostrarán los días y horarios. De acuerdo al día que se desea seleccionar se podrá observar los horarios disponibles. Cuando se elija el horario deseado habiendo ya escrito su nombre y rut, el sistema debe de ser capaz de admitir la solicitud solamente si el horario se encuentra disponible, en caso contrario, el sistema informará al usuario que no se pudo guardar la hora.

Por otro lado, si es que se selecciona el botón “Jefe de Carrera” tendrá una interfaz similar, la cual se puede seleccionar los días y se puede ver los datos de las personas que pidieron la hora para evitar usurpación. El sistema debe de tener la opción de poder reiniciar todo el sistema para una nueva semana citas.

Requerimientos:

o   Caso 1:

1.     Nombre: Registrar hora(s) en la plataforma.

2.     Propósito: Asignar un espacio en la agenda del jefe de carrera para atender consultas.

3.     Actor: Estudiante.

Estudiante

Sistema

1. Se ejecuta la aplicación.

 

 

2. Se abre la ventana principal.

3. Ingresa a la sección de Inscripción de citas apretando el botón de “Solicitar Hora”.

 

 

4. El sistema abre la ventana de Inscripciones

5. Se selecciona un día de la semana

 

 

6. Aparece la disponibilidad de cada hora correspondiente al día seleccionado, mostrando Ocupado o Libre según corresponda.

7. Se selecciona un horario y se ingresa Nombre y Rut en las casillas respectivas.

8. Queda seleccionado el horario respectivo

9. Se oprime el botón de enviar.

 

 

10. Si el día seleccionado está libre aparece una ventana de aviso de acción satisfactoria y se actualiza la lista de disponibilidad mostrando como “Ocupado” el día seleccionado y se almacena el nombre y Rut del estudiante. Si el día está ocupado aparece una ventana de advertencia diciendo que no está disponible el horario seleccionado.

11. Se presiona botón de “OK” de la ventana de avisos que aparece.

 

 

12. Desaparece la ventana de aviso emergente.

13. Se repite el proceso o se cierran las ventanas.

 

 

14. Si se repite el proceso el sistema reacciona de la misma manera que al inicio. Si se cierra el programa se detiene.

 

o   Caso 2:

1.     Nombre: Visualizar horas agendadas.

2.     Propósito: Que el jefe de carrera pueda visualizar correctamente los datos de los estudiantes asignados a sus citas.

3.     Actor: Jefe de carrera.

 

Jefe de carrera

Sistema

1. Se ejecuta la aplicación.

 

 

2. Se abre la ventana principal.

3. Ingresa a la sección de visualización de citas apretando el botón de “Jefe de carrera”.

 

 

4. El sistema abre la ventana de registro de horas.

5. Se selecciona un día de la semana.

 

 

6. Aparecen los nombres y Rut o Libre en los horarios que estén ocupados o libres respectivamente.

7. Se continúa con el proceso de visualización de citas asignadas o se cierran las ventanas.

 

 

8. Si se continúa, el sistema responde de la misma forma. Si se cierran las ventanas, el programa se detiene.

 

o   Caso 3:

1.     Nombre: Borrar registro de citas.

2.     Propósito: Poder reutilizar el programa para otra semana de citas.

3.     Actor: Jefe de carrera.

Jefe de carrera

Sistema

1. Se ejecuta la aplicación.

 

 

2. Se abre la ventana principal.

3. Ingresa a la sección de visualización de citas apretando el botón de “Jefe de carrera”.

 

 

4. El sistema abre la ventana de registro de horas.

5. Se presiona el botón de limpiar semana.

 

 

6. Se borra todo el registro de la semana.

7. Se repite el proceso de borrado de citas asignadas o se cierran las ventanas.

 

 

8. Si se repite, el sistema responde de la misma forma. Si se cierran las ventanas, el programa se detiene.

 

Diseño:

-        Diagrama de clases:

A black background with white text

Description automatically generated

En la imagen anterior se puede observar que la complejidad que respecta a las clases no es compleja, ya que posee 3 clases sin considerar el main. Widget tiene como objetos a Ventana_Consulta y Jefe_Carrera. Por otro lado, tanto Ventana_Consulta y Jefe_Carrera tienen una relación de dependencia con Widget ya que estas ventanas se abren desde la ventana de Widget. Además, cabe destacar que las clases Ventana_Consulta y Jefe_Carrera pueden modificar atributos de la clase Widget, es por esto que Widget también genera dependencia de estas clases.

-        Diagrama de secuencia:

-        Se propone el diagrama de secuencia para el caso de uso en el que el usuario aprieta el botón enviar. En este caso el botón está conectado con la función enviarDatos, la cual modifica los ítems respectivos de las listas en Widget. Por otro lado, enviarDatos también invoca el método mostrarTextos la cual agrega los datos de widget en las QListWidget que son parte del objeto Ventana_Consulta.

Pruebas:

-        Resultados:

·       Caso 1: Registrar hora(s) en la plataforma.

Se ejecuta la aplicación mostrando la ventana principal

A white rectangular object with black text

Description automatically generated

Se muestra la ventana de Inscripciones

Title: Insertando imagen...

Se muestra la disponibilidad horaria para el día seleccionado

Title: Insertando imagen...

Se selecciona un horario y se ingresan los datos Nombre y Rut

Se oprime botón “Enviar” en un día libre

A screenshot of a computer

Description automatically generated

Se oprime botón “Enviar” en un día ocupado

A screenshot of a computer

Description automatically generated

Se presiona botón “Ok” y desaparece ventana emergente

A screenshot of a computer

Description automatically generated

·       Caso 3: Registrar hora(s) en la plataforma.

Se ejecuta la aplicación mostrando la ventana principal

A white rectangular object with black text

Description automatically generated

Se muestra la ventana de registro de horas

A screenshot of a computer

Description automatically generated

Se borra el registro de toda la semana

A screenshot of a computer

Description automatically generated

 

-        Dificultades:

1)     No poder usar un calendario mensual: Dada la falta de familiarización con el sistema, no se pudo negar la selección de los días Martes, Jueves, Sábado y Domingo. Por lo que se optó simplificar el sistema y usar la clase QListWidget, la cual trabaja con ítems y de esta forma poder enlazar los ítems seleccionados con los días respectivos.

 

Archivos del proyecto:

A continuación, se adjunta el link que posee todos los archivos correspondientes al proyecto:

 https://drive.google.com/file/d/147T-ZeYzf1Q0O3ytifpItETBpCq9e-uC/view?usp=sharing