When taking part in virtual hackathons, the one thing I missed most was pizza. That got me thinking about how to make virtual events more engaging, and unfortunately I couldn't figure out how to send pizza across networks (and drone delivery isn't original enough!) so I had to settle for the next best thing: achievements!

What it does

Through the website control panel, event organisers can create a new event and select challenges they'd like to be included. The current options are Scavenger Hunt (using image recognition) and Step Challenge (using the pedometer to encourage attendees to stay active!) The attendees use the app to view and complete the challenges, gaining achievements along the way.

How I built it

The app is built using React Native through Expo and (attempts to) connects to the Google Vision API. Photo uploads are (actually successfully!) stored in Firebase storage (in preparation to send to Google Cloud). The web app uses HTML, CSS and JavaScript and is linked to Firebase Hosting, as well as Cloud Firestore. Unfortunately I didn't have time to connect the app to Firestore as well, which was my plan for connecting both parts of my project.

Challenges I ran into

The Google Vision API has some recognised reliability issues, so after several hours of struggling to make it work I resigned myself to leaving the functionality as almost working so I could get the other parts of the project completed.

I also pushed myself to use entirely new languages and frameworks, so I had the usual challenges of "what even is an async?" and "how do you write an if statement in JavaScript again?"

Finally, in classic hackathon style, Expo broke just as it was time to demo, so I wasn't able to record any evidence of it mostly working :(

Accomplishments that I'm proud of

When I started this project, I honestly didn't expect to be able to come up with anything worth showing in the end, so the fact I have a semi-working project (the pedometer actually counts steps! Amazing!) is something I'm proud of. I'm also proud that I managed to use technologies which were entirely new to me and come up with an idea that could actually be pretty cool when completed.

What I learned

This is my first time using Expo properly, and integrating both a website and an app to Firebase. (I've never been able to connect something to Firebase successfully before!)

What's next for Badger

Adding more challenge types, such as: *Location based - e.g. travel to a specific location *AR - e.g. play an AR minigame Also: *Actual Firebase security rules

Share this project: