Índice Introducción...............................................................................................................1 Desarrollo................................................................................................................... 2 Solución propuesta..................................................................................................... 2 Requisitos para el sistema.......................................................................................... 3 Contacto y primer diseño........................................................................................... 4 Mockups..................................................................................................................... 6 Implementación y tecnologías..................................................................................14 Conclusiones............................................................................................................ 15 Anexos..................................................................................................................... 16 Anexo 1..................................................................................................................... 16 Anexo 2..................................................................................................................... 16 1 Introducción El siguiente informe presenta un proyecto de extensión universitaria desarrollado por un grupo de estudiantes de la Universidad Nacional de San Antonio de Areco (UNSAdA). Este proyecto se lleva a cabo en el marco de la materia de "Proyecto de Desarrollo" bajo la guía de los profesores Leonardo Esnaola y Gustavo Gnazzo. El enfoque de esta iniciativa es la creación de un sistema de software destinado a los aeroclubes de la Argentina, con el propósito de modernizar y optimizar sus operaciones diarias, cuyas actividades abarcan desde la formación de pilotos hasta el mantenimiento de aeronaves y la promoción del espíritu aeronáutico. Los aeroclubes enfrentan desafíos únicos en su funcionamiento diario. La coordinación de vuelos, la gestión de aeronaves y la administración de socios son tareas cruciales que imponen una cantidad significativa de recursos y tiempo. El objetivo principal de este sistema de software es la informatización, automatización y facilitación de gran parte de esas actividades administrativas de los aeroclubes. El sistema facilitará la interacción entre los miembros y ofrecerá una plataforma para el registro de sus vuelos, generar recibos de ellos, el pedido de turnos y la administración de estos datos. Incluyendo, también, la promoción del factor social de los aeroclubes como pilar fundamental del sistema. Este facilitará la interacción entre los miembros y ofrecerá una plataforma en la que los usuarios puedan intercambiar experiencias con otros usuarios. El sistema permitirá a todos los miembros de los aeroclubes llevar a cabo diversas acciones, como solicitar turnos de vuelo, ver el estado de las aeronaves, la gestión de miembros y administrar su información personal y perfiles, todo ello de manera ágil y eficiente a través de dispositivos móviles o computadoras. 1 Desarrollo Solución propuesta La solución que planteamos al problema de gestión y funcionamiento del aeroclub es la de la creación de una página web donde todos sus miembros puedan entrar. En esta, podrán ver información relevante para realizar vuelos, contactar con otros usuarios, pedir y habilitar turnos, y gestionar la información de las entidades del aeroclub. Esta página web se conectará con una API propietaria donde se realizarán distintas comprobaciones lógicas y de seguridad para, entonces, poder obtener información de la base de datos creada para las necesidades del aeroclub. Tanto para poder organizar correctamente la información relevante para cada usuario, como para habilitar y limitar sus capacidades de ver y modificar información, se planteó que la página web tendrá 6 roles que podrán tener los usuarios: 1. Invitado: para permitir que los interesados en asociarse al club se creen una cuenta que luego puede ser habilitada en el aeroclub. 2. Asociado: para todas las personas asociadas al aeroclub 3. Instructores: para todos los instructores que instruyan clases en el aeroclub 4. Mecánicos: para todos los mecánicos que realicen reparaciones a las aeronaves del aeroclub 5. Gestores: para los miembros de la comisión directiva que se encarguen de la administración de la información y los usuarios. 6. Administradores: Rol reservado para la configuración completa del sistema y la administración completa de información. Se separa este rol del de Gestores para asegurar seguridad y consistencia de datos en el sistema. Con esto, se planteó que todos los usuarios del sistema tendrán uno o más roles que le permitirán diferentes capacidades dentro del aeroclub. Dentro de la página, se plantea que, todos los usuarios, tendrán 2 secciones principales: un panel de control y un perfil de usuario. El perfil de usuario es una implementación similar al perfil personal que reciben las personas al crearse una cuenta en una red social como Facebook o Instagram; una página donde puedan mostrar cierta información personal y fotos. Esta funcionalidad está destinada a promover el factor social del aeroclub, permitiendo a los usuarios a 2 compartir datos personales selectos, contactar con otros asociados y compartir experiencias vividas en el aeroclub. La otra sección es el panel de usuario. El principal objetivo de este panel es el de proveer a los diferentes usuarios toda la información -y ciertas capacidades de administración- que le permitan y promuevan su actuación en el club. El panel mostrará información y permitirá modificarla según el rol del usuario. Esto es, por ejemplo, permitir a los asociados ver sus turnos, ver si le debe dinero al aeroclub, ver si hay buen clima para volar, etc. En todas estas páginas el usuario tendrá la posibilidad de, a través del menú en la parte superior, acceder a todas las capacidades que le brinde su rol. Si el usuario es un mecánico podrá acceder a las pestañas de aeronaves, donde podrá cambiar datos y generar registros de mantenimiento. Si el usuario es un gestor, podrá acceder a la pestaña de asociados, aeronaves o instructores a dar usuarios de baja, alta o modificarlos. Por último, la página tendrá en su esquina superior derecha, un menú desplegable donde permitirá a los usuarios que tengan varios roles y cambiar entre ellos, para ver distinta información del sistema y sus páginas. Requisitos para el sistema ● El sistema debe ser intuitivo y cómodo para facilitar la migración de los usuarios a él. Así como también para facilitarles realizar sus actividades en el aeroclub. ● El sistema debe permitir la gestión de los asociados del aeroclub ● El sistema debe permitir la gestión de los instructores del aeroclub ● El sistema debe permitir la gestión de los mecánicos del aeroclub ● El sistema debe permitir la gestión de los productos que maneja el aeroclub ● El sistema debe permitir la gestión de las aeronaves del aeroclub, así como también registrar sus mantenimientos. ● El sistema debe permitir llevar registro de los vuelos realizados con sus aeronaves. Incluyendo información detallada de los itinerarios y tarifas por esos vuelos ● El sistema debe permitir la creación de recibos de vuelos 3 ● El sistema debe permitir a los usuarios acceder a él a través de una cuenta de google ● El diseño de la página debe estar adaptado a todos los dispositivos Contacto y primer diseño El desarrollo del proyecto comenzó por la comunicación con Hernán y Fabio, los actuales directores del Aeroclub de Lincoln en esa localidad para discutir las principales funciones que el software debería ser capaz de realizar. Estas funcionalidades se dividieron en dos categorías fundamentales: la administración de vuelos, aeronaves, recibos y asociados, y la mejora en el cumplimiento de la misión del club; la formación de pilotos y alumnos. Con este relevamiento inicial se comenzó a plantear cómo debería ser el sistema para proveer estas funciones. Para esto, se llegó a la conclusión de que debía desarrollarse una página web, donde los diferentes miembros del aeroclub se distinguieran en roles, y con estos pudieran acceder y ver información relevante para ese rol. Mientras se diseñaban estos roles, el equipo se centró en la creación de diversos prototipos de la página web en la herramienta online Figma para poder visualizar y discutir entre todos tanto la justificación de cada rol como también sus capacidades de ver y administrar información. Otra herramienta online que se comenzó a utilizar en esta etapa fue Trello, que se utilizó para empezar a organizar los equipos y dividir las tareas. También se utilizó google drive y sus documentos de textos compartidos para compartir archivos entre los miembros del equipo y poder escribir de manera colaborativa documentos. Para tecnologías para el desarrollo, una de las consideraciones tomadas fue la flexibilidad de cada una. Se buscaba encontrar tecnologías que nos permitieran a nosotros, y a los diferentes aeroclubes que quieran implementar el software, modificarlo, ampliarlo o reducirlo sin mucho problema. Para la Base de Datos, se investigó la tecnología MongoDB, una base de datos NoSQL que, con su uso de colecciones, nos podría dar la modularidad necesaria para cumplir la necesidad de cualquier aeroclub. Pero, debido a la nula experiencia del grupo no sólo con esta tecnología, sino con el propio concepto de NoSQL, se decidió optar por la tecnología 4 MySQL con la que el equipo estaba más familiarizado para diseñar e implementar la base de datos. El trabajo en el proyecto hasta este punto podría considerarse como una primera etapa, donde recogimos los requerimientos del sistema, planteamos posibles mejoras y nuevas implementaciones, se investigó qué tecnologías podrían utilizarse para el desarrollo de cada una de ellas y se plantearon prototipos para probar su función. El trabajo en esta etapa no fue del todo ordenado. Siendo un grupo numeroso de 8 personas, se tornó complicado mantener a todos al mismo nivel de información, transmitir correctamente las decisiones y razonamientos y dividir las tareas. En retrospectiva, para mejorar la coordinación del equipo se podría haber planteado: 1. Comenzar separando el grupo en diferentes equipos por área 2. Asignar a una persona de cada equipo para delegar tareas y mantener a todos los miembros informados sobre los avances y decisiones 3. Realizar más prototipos y pruebas para estar seguros de que el diseño de las distintas partes fuera correcto Para terminar con esta etapa, se contactó con el aeroclub y se realizó una conferencia con Hernán y Fabio. En esta, apoyándose en una presentación en Canva, se les mostró cómo es que estábamos planteando el sistema y las consideraciones tomadas. Durante la reunión, de parte de Hernán y Fabio, hubo un constante intercambio de ideas y consideraciones a tomar en cuenta para las distintas partes del proyecto que íbamos discutiendo. Estas consideraciones nos ayudaron a reafirmar algunas partes que habíamos planteado del sistema, como también reconsiderar y ampliar otras. 5 Mockups Figura 1: Página de bienvenida al sistema 6 Figura 2: Panel de control de asociados 7 Figura 3: Panel de control de instructores 8 Figura 4: Panel de control de mecánicos 9 Figura 5: Panel de control de Gestores 10 Figura 6: Página de información de aeronaves 11 Figura 7: Página de información de aeronaves 12 Figura 8: Página de información de usuarios para gestores 13 Implementación y tecnologías Una vez terminado el planteo de cómo sería el sistema y su página web y mostrada esta idea al cliente, se comenzó a implementar las distintas partes. Para la implementación de la propia página web, se utilizaron las tecnologías HTML5, CSS, JavaScript, React, Material y Bootstrap.Para el diseño de la interfaz que comunicará la página web con la Base de Datos y realizará lógica, se utilizó el lenguaje de programación Python, junto con la librería Flask. Para la Base de Datos, se utilizó tanto Python como MySQL: MySQL para la implementación y almacenamiento de datos, y luego Python con la librería SQLAlchemy para facilitar la abstracción y consulta de datos directamente desde código. El trabajo en esta etapa comenzó a ser mucho más ordenado. Decidimos la organización de reuniones virtuales un día a la semana donde, al menos un integrante de cada grupo (FrontEnd, API o BDD) estuviera presente para ayudar a decidir qué actividades eran necesarias realizar en cada sector cada semana, dividiendo las tareas de cada área y asignándolas utilizando Trello. A partir de este punto, el equipo comenzó a trabajar de forma más ordenada y directa: todos sabían exactamente qué tenían que hacer y tenían la información suficiente para realizarla. Con lo que se empezó a ver que, semana a semana, se presentaban los avances de cada área para discutirlos entre todos los miembros del equipo como también con el profesor Esnaola, detectando constantemente las áreas débiles de los diferentes diseños y mejorando iterativamente. 14 Conclusiones Aunque incompleto, estamos contentos con el trabajo realizado. Nuestro mayor desafío fue la de definir una buena base para trabajar, tanto para organizarnos entre los 8 integrantes, como también para realizar una toma de requisitos correcta y bien entendida por todos los miembros. Estamos contentos de participar en un proyecto así no sólo por la oportunidad de utilizar herramientas nuevas y aprender a gestionar un equipo, sino también por la oportunidad de mejorar la situación en las entidades de los aeroclubes que están extendidos por toda Argentina. 15 Anexos Anexo 1 Primeros requisitos del sistema con los que se empezó a diseñar: Las necesidades de las instituciones aeronáuticas, como los aeroclubes, abarcan la gestión de turnos para instrucción de pilotos, registro de datos de vuelos, generación de recibos de tarifas por hora de vuelo, actualización automática de tarifas basadas en costos de aeronaves, registro de compras y ventas de insumos como combustible y lubricantes, seguimiento de horas de vuelo con notificaciones para mantenimiento, acceso a información para pilotos y alumnos sobre cumplimiento de horas de vuelo, acceso para instructores para registrar instrucción y observaciones, notificaciones anticipadas de vencimiento de Certificado Médico Aeronáutico (CMA), y control de cuotas sociales para los pilotos y alumnos que utilizan las instalaciones del aeroclub. Anexo 2 Minuta de la reunión del 18/9 con los clientes luego del primer diseño: El cliente busca implementar un reglamento interno de uso de aeronaves y asegurar que los usuarios acepten y conozcan este convenio al registrarse. Se debe tomar en cuenta el control de adaptación de los pilotos a las aeronaves: un piloto debe volar cada 30 días en una aeronave para no perder su adaptación a ella. Se debe tomar en cuenta la posibilidad de permitir a los pilotos adelantar dinero para horas de vuelo. Sugerencia del cliente para permitir que los pilotos puedan registrar el inicio y final de sus vuelos en el sistema, con opciones para ajustar manualmente los tiempos si es necesario. Se menciona la importancia de llevar un registro preciso de las horas de vuelo, especialmente para los pilotos que necesitan cumplir con ciertos requisitos para obtener licencias. Se plantea la posibilidad de ajustar los precios de las horas de vuelo en función de 16 cambios en el costo de la nafta. 17