Natación APP permite a los organizadores de torneos de natación registrar competidores en cada uno de los eventos existentes, ordenarlos de forma automática, registrar sus tiempos de competición y generar rankings por evento para determinar ganadores.
El eje de la aplicación se encuentra en el ordenamiento automático de los nadadores en los eventos. Cada evento está conformado por una prueba, una categoría de edad y una categoría de género (que puede ser Varones, Mujeres o Mixto). De esta forma, se puede tener un evento que sea '100m libres - Categoría A - Mujeres' y otro distinto que sea '100m libres - Categoría A - Mixto'.
A su vez, en cada uno de estos eventos se encontrarán registrados una cantidad N de nadadores, que deben competir en una pileta de 6 carrilles o andariveles. Los competidores con un tiempo de pre-inscripción menor (tiempo obtenido en entrenamientos) deben ubicarse en los carrilles centrales. Si existen más de 6 nadadores registrados, se deben dividir en distintas piletas de forma equitativa.
Además se incluye un ordenamiento recreativo que permite ordenar a los nadadores de un evento de forma aleatoria, sin tener en cuenta su tiempo de pre-inscripción. En este modo no existe la carga de resultados, ya que no forman parte de los eventos competitivos.
La aplicación cuenta con las siguientes funciones:
En la capa de datos, se optó por utilizar SQLite, una herramienta de código abierto que facilita el almacenamiento de información en diversos dispositivos de manera sencilla, eficiente, potente y rápida. La elección de esta tecnología se basa en la simplicidad de los datos que necesitan ser registrados y en la velocidad requerida para escribir dicha información. Además, dado que la aplicación no maneja datos sensibles, no se necesita un nivel de seguridad más elevado que el proporcionado por este motor de base de datos.
La capa de negocio está definida utilizando el framework de código abierto Flask. Flask es conocido como un "microframework", lo que significa que proporciona las funcionalidades esenciales para el desarrollo web sin imponer una estructura o conjunto de herramientas rígidas.
Por último, en la capa de presentación se emplea una combinación de dos tecnologías: Bootstrap y Jinja2. Estas son tecnologías complementarias, que se utilizan en el desarrollo web para crear aplicaciones web atractivas y dinámicas. Bootstrap se encarga del diseño y la apariencia, mientras que Jinja2 se utiliza para generar contenido HTML de manera dinámica y basada en datos del servidor.