UB Hackaton 2024: Winning 2nd place

Abstract

My friend Julien and I participated in UB Hacking's Hackathon held at the University at Buffalo. This year's theme was Alice in Wonderland, the event attracted nearly 300 participants divided into over 90 groups. It was my first experience in a programming competition and I'm really happy that we made it to the podium.

Check source code: https://github.com/sammyub/ubwondermap
Check all the contestants' projects: UB Hacking Fall 2024.


Project

The idea

For the project, Julien and I wanted to adhere to the theme so we brainstormed ideas for fun and useful apps that could help and entertain students. Initially, we planned on developing a scavenger hunt by hiding chocolate candy bars around the campus and creating an AI inspired by Alice to help student locate them. But once the candy was found, the app would lose its replayability. So, we switched ideas; we designed riddles and enigmas that student could solve by chatting with Alice. On top of that, we incorporated a 3D interactive map of the campus to help student navigate around the area by tracing the path on the map.

Tech Stack

We wanted to keep the functional scope relatively small so we could get a finished product in less than 24 hours. We've used Flask for the backend, the app.py file is only 100-ish line of codes that serve the index page and expose one endpoint to retrieve user's input and communicate with Amazon Lex service.

The application relies on three external services: AWS Lex, Google Directions API and Mapbox. The least "beginner-friendly" service might be Lex due to the fact that it's a relatively new service and the documentation we could find online was outdated to some extent. But since our chatbot didn't need to be too advanced, Julien managed to tweak it just enough to meet our requirements. I had previous experience with Google APIs and Mapbox so the setup was straightforward; to be honest we spent most of our time making the application's UX/UI visually attractive.


Alice dans une orbe
Alice in an orb.

We got the orb from Lottie, we wanted to mimick the Siri orb and put Alice inside; it just adds that wonderland feel to the app. To facilitate the use, we also had the idea of incorporating a Generate Prompt button, so people could understand the capabilities of Alice AI.

At first we wanted to dockerize the app and launch it to AWS Lightsail but for some reason it failed. We then considered using AWS EC2 to configure a server from scratch but we were running out of time so we ended up using Heroku by connecting it to our GitHub repo. It did the work and we were happy. Here is a schema of the technology used during the project:


Technology used for Alice AI
Techn used in UB Wonder Map.

Takeaways

One thing that I enjoyed during this project was that our hardest challenge was maintaining a realistic scope, as new ideas and digressions emerged during the development. Also, when we were facing technical issues, we tried to stay focus and make concession instead of being stubborn.

The event was great, we spent the night coding and designing the app while eating food ordered from Halal Guys. It was the first time we participated to a hackathon, and it does feel good that judges liked the idea and rewareded us with the second place. I think I will try to participate to other hackathon in the future.


UB Hacking Certificate of Achievement
UB Hacking Certificate of Achievement.