UB Hackathon : On remporte la 2nd place

Résumé

Mon ami Julien et moi avons participé au Hackathon organisé par l'University de Buffalo. Le thème était Alice au Pays des Merveilles, et l'évènement comptait 300 inscrits répartis en 90 groupes. C'était ma première participation à une compétition de programmation et je suis vraiment heureux que nous ayons atteint le podium.

Le code source : https://github.com/sammyub/ubwondermap
Les projets des autres participants : UB Hacking Fall 2024.


Projet

L'idée

Pour le projet, Julien et moi voulions adhérer au thème donc nous avons brainstormé sur des idées d'application qui pourrait être utile et amusante qui pourraient aider les étudiants. Initiallement, nous voulions créer une chasse au trésor en cachant des chocolats sur le campus et développer une IA inspirée d'Alice capable de localiser en répondant à des questions. Mais, dès lors que les chocolats auraient été trouvés, nous aurions perdu la rejouabilité. Du coup, nous avons opté pour des énigmes à résoudre en discutant avec Alice en intégrant une map 3D du campus qui aiderait les étudiants à se localiser.

La Tech Stack

Il fallait que le périmètre fonctionnel soit suffisamment simple pour finir le projet en ;oins de 24h. Nous avons utilisé Flask pour le backend. Le fichier app,py ne fait que 100 lignes et n'est composé que d'un seul point d'entrée acceptant les messages de l'utilisateur et communique avec le service Amazon Lex.

L'application repose sur trois services externes : AWS Lex, Google Directions et Mapbox. L'outil le moins simple était Lex, peut-être du fait que le service soit relativement nouveau et la documentation était obselète pour certaines fonctions. Mais nous n'avions pas besoin de quelque chose de trop poussé, donc Julien a réussi à ajuster Lex pour nos besoins. Ayant déjà utilisé Mapbox et Google API, leur configuration fu assez simple et nous avons passer le plus clair du temps à faire en sorte que l'application soit visuellement belle et moderne.


Alice dans une orbe
Alice dans une orbe.

Nous avons trouvé l'orbe sur Lottie, l'objectif était de se rapprocher de l'orbe sur Siri et mettre Alice dedans; ça match ave le côté wonderland du thème. Pour faciliter l'utilisation de l'app, on a eu l'idée d'intégrer un boutton "Generate Prompt", pour que les utilisateurs aient une idée des possibilités d'Alice AI.

Pour le déploiement, on voulait utiliser Docker et lancer sur AWS Lightsail mais ça n'a pas fonctionné, on s'est demandé si ça valait le coup de prendre un EC2 mais il ne restait plus beaucoup de temps donc on a finit par utiliser Heroku en connectant directement le repo GitHub. Ça a fait l'affaire, Heroku est toujours aussi simple à utiliser. Voici un schéma de la techno utilisée :


Technology used for Alice AI
Technologie utilisée pour UB Wonder Map.

Réflexion

Le plus difficile pendant ce projet était de maintenir un périmètre réaliste pendant que les nouvelles idées et les potentielles digressions apparaissaient. Aussi, lorsqu'un souci technique se présentait, nous avons tenté de faire des compromis plutôt que de s'entêter.

L'évènement était vraiment cool; on a passé la nuit à coder, designer une app en mangeant du Halal Guys. C'était mon premier hackathon, et ça me fait plaisir que les juges aient apprécié le concept et récompensé de la seconde place. J'essaierai de participer à de nouveaux hackathons dans le futur.


UB Hacking Certificate of Achievement
UB Hacking Certificate of Achievement.