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:
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
Se muestra la ventana de Inscripciones
Se muestra la disponibilidad horaria para el día seleccionado
Se selecciona un horario y se ingresan los datos Nombre y Rut
Se oprime botón “Enviar” en un día libre
Se oprime botón “Enviar” en un día ocupado
Se presiona botón “Ok” y desaparece ventana emergente
·
Caso 3: Registrar
hora(s) en la plataforma.
Se ejecuta la aplicación mostrando la ventana principal
Se muestra la ventana de registro de horas
Se borra el registro de toda la semana
-
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