Uploaded by carryoncsgo

Informe Final copia compartida (con comentarios)

advertisement
Í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
Download