Loading Likes...

Corría el mes de febrero y desde habitissimo llevábamos un tiempo queriendo organizar un evento de programación con estudiantes de la UIB: cuando desde la EPS nos propusieron organizar una hackatón para combatir la invasión de la avispa asiática no nos lo pensamos dos veces y nos pusimos manos a la obra. Así fue como decidimos organizar una maratón informática, hackatón, para crear una App en tiempo récord.

Idea inicial de la plataforma

Desde el departamento de biología de la UIB querían lanzar una aplicación móvil para reportar avistamientos de avispas asiáticas o de sus nidos. Esta especie invasora mata las abejas autóctonas afectando gravemente al ecosistema. La aplicación tenía que estar lista para el comienzo del verano que es cuando las avispas despiertan de la hibernación.

Avispa asiática junto a avispas y abejas autóctonas
Avispa asiática junto a avispas y abejas autóctonas

Faltaban pocos meses para el comienzo del verano y todo lo que tenían era una idea. Desde la EPS quisieron contar con nuestra experiencia en tecnología y desarrollo ágil para construir la aplicación.

Organización y tecnologías

Somos ambiciosos y no nos conformamos con una APP.  Cuando nos plantearon el proyecto y supimos que podíamos contar con todos los alumnos interesados quisimos apuntar alto y construir desde el principio una plataforma completa. La plataforma incluiría:

  • Una API REST para listar y reportar avistamientos
  • Una plataforma web desde la que los expertos en biología pudieran moderar los avistamientos
  • Una interfaz web desde la que informarse y reportar avistamientos
  • Una APP Android para informarse y reportar avistamientos
  • Integraciones para reportar avistamientos desde redes sociales: Twitter y Telegram

Además queríamos tener un producto terminado al finalizar la hackatón y tener la aplicación desplegada y lista para usarse.

En otras hackatones se plantea el mismo problema a todos los equipos y todos compiten por ser el mejor. Nosotros sabíamos que habíamos puesto el listón muy alto y que, si queríamos alcanzarlo, teníamos que trabajar todos en equipo para alcanzar los objetivos. Organizamos cuatro equipos cada uno liderado con un experto de habitissimo en ese ámbito y con distintas responsabilidades:

  1. Equipo API: encargados de definir e implementar la API a la
  2. Equipo Web: implementación del panel de administración de expertos y de la interfaz web de la plataforma
  3. Equipo Android: desarrollo de la APP que, atacando a la API, listaría el contenido y permitiría reportar avistamientos
  4. Equipo Integraciones: encargados de conectar la API de avistamientos con Twitter y Telegram

Además contamos con una quinta persona de habitissimo ejerciendo el rol de DevOps y encargándose del despliegue de las distintas partes de la plataforma.

La elección de tecnologías fue sencilla, nos apoyamos en tecnologías libres que conocemos bien en habitissimo. Para la API utilizamos python, postgreSQL, django y django REST framework. Para ahorrar tiempo y no realizar implementaciones adicionales con la API decidimos que el Equipo Web y el Equipo API trabajasen sobre la misma aplicación de django. Eso conllevaría algunos esfuerzos adicionales en coordinación y comunicación entre equipos pero, al usar git como sistema de control de versiones, no sería complicado trabajar en paralelo.

Para las integraciones utilizamos python con requests para realizar las peticiones a la API. Para las integraciones con Twitter y Telegram utilizamos tweepy y telegram-bot.

En la aplicación Android, decidimos usar Retrofit para realizar las llamadas a la API y Butterknife para rellenar las vistas con los datos devueltos por el servidor. Como vimos que la API podría bloquear el desarrollo de la APP creamos respuestas predefinidas que imitaban una llamada real al servidor mediante el uso de interfaces y stubs.

Desarrollo de la hackatón

Quisimos que los estudiantes experimentasen como es trabajar con metodologías ágiles. Nosotros habíamos hecho una pequeña preparación de los equipos y seleccionamos algunas tecnologías pero queríamos que fuesen los equipos los que tomasen el grueso de las decisiones del desarrollo. Para lograr esto iniciamos la jornada con una exposición del problema por parte de Mar Leza, doctora en biología.

Mar Leza exponiendo las necesidades de la plataforma a los participantes
Mar Leza exponiendo las necesidades de la plataforma a los participantes

Tras la explicación de Mar los equipos se reunieron para hacer un análisis del problema, plantear la solución y hacer la planificación de los próximos tres días. Las primeras horas fueron intensas: mientras algunos definían el modelo y la especificación de la API REST, otros buscaban librerías para distintas partes de la aplicación y configuraban sus portátiles para instalar el entorno de desarrollo.

Estudiantes y desarrolladores de habitissimo en pleno proceso creativo
Estudiantes y desarrolladores de habitissimo en pleno proceso creativo

El final del primer día cayó como un jarro de agua fría. El equipo de integraciones iba a toda velocidad pero la API y la web estaban muy atrasadas. Se había trabajado mucho pero parecía difícil llegar al objetivo: se consumió mucho tiempo planificando y preparando los entornos y todavía no había nada palpable.

La mañana del segundo día empezó a notarse el desánimo entre los equipos pero entonces algo hizo clic. A mediodía conseguimos por fin integrar la primera versión de la API con la interfaz web. Al ver que la plataforma tomaba forma la energía volvió y los alumnos vivieron plenamente la satisfacción de trabajar en equipo en un proyecto único: cualquier cambio o fallo de la API debía ser comunicado. Los propios alumnos colaboraban entre ellos y ejercían de mentores cuando podían ayudar a otro desarollador a solucionar un error o desbloquear una situación.

Pasaron las 18:00, la hora de cerrar la oficina, pero nadie se movía de su sitio. Había mucho trabajo que hacer y todos queríamos terminar la aplicación a tiempo. Al ver la situación acordamos alargar el cierre hasta las 23:00, finalmente terminamos cerrando la oficina pasada la una de la madrugada.

Reponiendo fuerzas tras 12 horas seguidas programando
Reponiendo fuerzas tras 12 horas seguidas programando

Resultado final

Llegó el último día y, a pesar de las pocas horas de sueño, todo el mundo estuvo a las 9:00 en la oficina. Quedaban cuatro horas de desarrollo antes de la presentación del resultado final pero todavía faltaban muchos detalles por finalizar. Los nervios se hicieron presentes pero todos los equipos vencieron al reloj y la presentación de la plataforma fue un éxito.

Habíamos conseguido desarrollar y desplegar una plataforma completa para la detección de la avispa asiática en tres días. Los estudiantes de cada uno de los equipos explicaron lo desarrollado e hicieron la demostración del envío de los reportes de avistamientos desde las distintas fuentes. Los representates de la universidad quedaron encantados con lo desarrollado y, gracias a ello, se consiguió financiación para continuar con el proyecto. Tres de los participantes en la hackaton continuaron el desarrollo de la aplicación que ya se está usando para detectar la avispa asiática y proteger nuestro entorno.

Nos sentimos muy orgullosos de esta experiencia, no solo por haber contribuido al desarrollo de esta aplicación, sino también por la gran experiencia que fue compartir nuestros conocimientos y aprender junto a los estudiantes. Fue realmente satisfactorio trabajar en equipo con la próxima generación de desarrolladores y ver que todos comparten nuestra pasión por la tecnología.

Recursos

Loading Likes...

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *