carritos

July 11, 2023 · View on GitHub

Logo Reportlab Logo Python + Qt Logo SQLite

Logo de la aplicación

carritos

Gestión de carritos de portátiles para IES de la Junta de Andalucía

Descripción

Carritos es una aplicación para la gestión de carritos de portátiles en institutos de educación secundaria (IES) de la Junta de Andalucía. Permite llevar un registro de reservas, incidencias y generar informes relacionados con el uso de los portátiles.

Instalación

carritos es multiplataforma, desarrollada y probada en sistemas Linux Ubuntu y en Windows 10. Para Windows 11 hay un problema gráfico de escalado del propio SSOO, y los componentes gráficos cambian de tamaño y posición.

Es necesario tener instalado pip. Descarga de la carpeta carritos-1.0.0.tar.gz y ejecutas en el Terminal o Consola de Comandos:

    pip install carritos-1.0.0.tar.gz

Para instalar carritos en modo de desarrollo, sigue estos pasos:

  1. Clona el repositorio desde GitHub:

     git clone https://github.com/angeloide78/carritos.git
    
  2. Accede al directorio del proyecto:

     cd carritos
    
  3. Instala las dependencias utilizando Pipenv:

     pipenv install
    

NOTA: Si te da error de la versión de Python, edita el PipFile, y cambia la versión. Esta aplicación está desarrollada en Python 3.8. Cualquier versión superior debe ser válida.

  1. Ejecuta la aplicación:

     pipenv run python __main__.py
    

Uso

La aplicación se compone de diferentes pantallas y funcionalidades:

  • Planificación y Reservas: Permite gestionar las reservas de carritos en un centro, por fecha, franja horaria y profesor que hace la reserva.

  • Gestión de Incidencias: Permite registrar y gestionar las incidencias relacionadas con los portátiles.

  • Informes: Genera informes detallados sobre el uso de los portátiles y las incidencias registradas.

Para obtener más información sobre cómo utilizar cada funcionalidad, consulta la documentación incluida en el repositorio.

Contribución

Si deseas contribuir al proyecto, sigue estos pasos:

  1. Crea un fork del repositorio.

  2. Realiza tus cambios en una rama separada.

  3. Envía un pull request describiendo los cambios realizados.

Agradecemos todas las contribuciones y comentarios constructivos.

Licencia

Este proyecto está licenciado bajo la licencia GNU GPL 3

Roadmap del Proyecto

Mejoras que podrían realizarse en futuras versiones

  • En Planificación y Reservas, si un día tiene las franjas de 1,2,3,4,5 y 6 reservadas (sin contar el recreo), el día en el calendario debe de pintarse de rojo.

  • En Planificación y Reservas, al hacer click en un botón de franja horaria, su caja de texto de reserva debe de cambiar de color, para identificar la franja horaria que se está modificando.

[10-07-2023]

  • Manual de funcionamiento.
  • Pruebas de usuario (que las hago yo mismo... en fin... que puede salir mal...)

[09-07-2023]

  • Configuración de instalación mediante setup.py en Windows y Linux.

[08-07-2023]

  • Ajustes en el Modelo E-R final:

Modelo E-R final

  • En Incidencias, implementar opción de visualizar todas las incidencias o solo las abiertas.

  • En Incidencias, implementar opción de visualizar todas las incidencias o solo las incidencias de del curso escolar (de septiembre a junio).

  • En Incidencias, al crear una incidencia se debe de identificar en el titulo de la ventana. Si es una modificación se debe de indicar en el título de la ventana.

  • En Informes, implementar informes para consultas de:

    • Incidencias abiertas, por curso escolar actual.
    • Incidencias cerradas, por curso escolar actual.
    • Planificación de reservas de portátiles, por curso escolar actual.
    • Todo el profesorado.
    • Todos los portátiles.
    • Todos los carritos.

Informes de la aplicación

Informe de reservas de carritos

[07-07-2023]

  • Se finaliza la opción de importar.

[06-07-2023]

  • Se replantea el sistema de configuración.
    • Se guardará en un fichero de inicialización JSON datos como el nombre del IES, curso escolar y elementos de logos de la aplicación.
    • Se implementa opción de EXPORTAR e IMPORTAR base de datos.
    • Si el fichero de BBDD no está la aplicación lo generará vacío, de nuevo, y mostrará un mensaje de dicha operación.
    • Si no se puede generar el fichero de BBDD la aplicación aborta, y no puede continuar.

Configuración general de la aplicación

  • No se implementan Tooltips, se deja para versiones posteriores.
  • No se crean módulos de testing, el código de algunos módulos simplemente se comenta.
  • Franjas horarias pasarlas a datos hardcodeados. No tiene sentido guardarlas en la base de datos. --> Se mantienen en la BBDD, pero no se modifican. Están hardcodeadas.
  • En Configuración, implementar lógica a las ventanas de configuración.
  • En Planificación y Reservas, rellenar "Información", con información de los carritos.

[05-07-2023]

  • Separar clases de controlador en ficheros.

  • Crear un sistema de configuración, que contenga:

    • Nombre del IES
    • Curso escolar: Septiembre - Junio , Curso
    • BBDD de prueba, para ver la DEMO.
    • Limpiar la BBDD. --> Operación peligrosa.
    • Crear backup de la BBDD.
    • Restaurar backup de la BBDD.
    • Crear BBDD limpia. Esta configuración se guardará en JSON.

Configuración general de la aplicación

[04-07-2023]

  • Cambio de diseño en tabla "portatil". El id (primary key) se cambia a INTEGER AUTOINCREMENT y se crea un nuevo campo "nserie", de tipo unique not null, que contendrá el número de serie del portátil.

    Tablas afectadas: portatil, incidencia

    Vistas afectadas: v_portatil, v_incidencias

  • Se elimina la tabla "horario", ya que los tramos horarios estarán hardcodeados. No es efectivo mantener una tabla que nunca va a variar. Tablas afectadas: horario, reserva, incidencia Vistas afectadas: v_horario (se elimina), v_incidencia, v_reserva

  • Los cambios en la BBDD afectan a como se recogen los datos de las columnas. Se hace necesario revisar el código que accede a estas entidades.

  • Se diseña la ventana de "Acerca de":

"Acerca de" de la aplicación

  • Se implementa la funcionalidad de las ventanas de configuración del aplicativo:
    • Portátiles
    • Datos del IES
  • Iconos de la aplicación.
  • Rellenar datos de información para Carritos.
  • Se configuran imágenes de inicio de la aplicación:

Ventana principal de la aplicación

[02-07-2023]

  • Se planifican los items mínimos para terminar la aplicación, con una funcionalidad aceptable.
  • Se implementa la funcionalidad de las ventanas de configuración del aplicativo:
    • Profesorado
    • Plantas
    • Carritos
    • Portátiles
    • Datos del IES

[28-06-2023]

Implementación de informes:

  • Reportlab para creación de informes en PDF. Se visualizará por pantalla a partir de la llamada a la aplicación por defecto para abrir PDF's, tanto en Windows como en Linux.
  • Exportación a CSV.

[21-06-2023]

  • Se diseñan pantallas de configuración.

Configuración de profesorado y plantas

Configuración de carritos

Configuración de carritos

[19-06-2023]

  • Gestión de incidencias.
    • Se diseña por completo la gestión de incidencias. Se realizan pruebas y casos de uso. Todo correcto.

Planificación y Reservas

Incidencias

 Hacer click en botón "GESTIONAR INCIDENCIA" o doble click en alguna 
 incidencia, se visualiza el gestor de indicencias.

Gestión de incidencias

[13-06-2023]

  • Prototipo de incidencias.
  • Determinar los estados de las incidencias: ABIERTA / CERRADA
  • Cambios de color en los estados: ABIERTA -> Color Verde, CERRADA -> Color Rojo
  • Incluir planta, carrito y portátil, para definir la incidencia (en combos)

Planificación y Reservas

[12-06-2023]

  • Arquitectura del controlador.
  • Carga de combos Planta y Carrito.
  • Manejador de eventos para selección de fechas y creación de reserva.
    • Asignacón de nombre de profesor/a.

Planificación y Reservas

[09-06-2023]

  • Diseño de pantalla de configuración del aplicativo.

Prototipo de reserva de carritos

[08-06-2023]

  • Se renombra clase Base a Conexion, que hereda de clases Log y Bd.
  • Se crea clase DMLCarrito, que contiene los métodos genéricos para actualizar, borrar, crear y visualizar entidades (tablas).
  • Se plantea en este punto el usar SQLAlchemy, pero dado lo pequeño del proyecto, se descarta.
  • Clases profesor, planta, horario y carrito heredan ahora de DMLCarrito. Implica que cada clase tiene funcionalidad extra de gestión de su entidad asociada en la base de datos.
  • Se crea clase portatil, reserva e incidencia, que heredan de DMLCarrito.

[07-06-2023]

  • Módulo bd
    • Clase Bd, que interacciona con una base de datos SQLite.
  • Módulo log
    • Clase Log, que genera texto en ficheros de registros de eventos .log.
  • Módulo base
    • Clase Base, heredada de Bd y Log, que será la clase padre de las clases que interaccionen con la base de datos.
  • Se diseñan clases profesor, planta, horario y carrito.

[06-06-2023]

  • Ficheros UI generados con Qt Designer.
    • Prototipos de la interfaz gráfica del proyecto.

Prototipo de reserva de carritos

[05-06-2023]

  • Se planifica la gestión de carritos de portátiles de un Instituto de Educación Secundaria (IES de aquí en adelante) de la Junta de Andalucía.
  • La gestión se realizará mediante un aplicativo informático multiplataforma, que pueda ejecutarse en entornos Windows y Linux.
  • La gestión de carritos se lleva actualmente en papel, tanto las reservas como la gestión de incidencias. Esto hace que no siempre se solucionen todas las incidencias de todos los carritos del IES. Además, no hay un control exhaustivo de quien utiliza los carritos, ni se pueden sacar informes de uso de los mismos.
  • La trazabilidad del uso de portátiles no queda plasmada, y es por ende que se necesita normalizar el uso de los mismos, informatizando dicha gestión.

¿Qué se quiere conseguir?

  1. Poder llevar una gestión de partes de incidencias de los portátiles de los carritos del IES.

  2. Realizar informes de roturas de portátiles.

  3. Informes de quien utiliza los portátiles.

  4. Sistema de planificación y reserva de portátiles.

Diagrama de Entidad - Relación

Diagrama de Entidad - Relación

Carritos y portátiles

Conjunto de carritos de portátiles

Carritos del IES

Identificadores de carritos de portátiles

Nomenclatura de carritos

Portátiles

Portátiles