How My App Won the 2nd Place in the WWCode App Deploy Hackathon

Eevis - Dec 14 '23 - - Dev Community

A few weeks ago, I participated in my first mobile hackathon; it was so much fun! This hackathon was also the first more traditional (so, just over the weekend) for me and the second in general. The first was the Github Actions hackathon in 2020, organized by Dev.to, and it spanned throughout weeks.

The hackathon I participated in was App Deploy Hackathon from Women Who Code, and the goal was to build an Android app and use any of the Google APIs available. WWCode organized the hackathon in partnership with Google Play.

I can already share that I won second place in the hackathon! You can read more from Women Who Code's Winner announcement blog post.

I'll share my journey from planning to submission in this blog post. You'll also find links to the code and a video demonstrating the app. I haven't yet published the app in Google Play because there was not enough time to jump through all the hoops, but I will probably release it sometime at the beginning of next year.

Planning for the Hackathon

I registered for the hackathon about two weeks before the event. Those two weeks were hectic, but I had some time to think about the hackathon app idea. I spent quite a bit of time with the Google API Explorer and tried to come up with some ideas.

I came up with two more concrete ideas: a menstruation-tracking app with the features I'd love to have with Google Health Connect, or an app for documenting accomplishments and wins at work and generating a text for a performance review cycle from those items. That second one would use the PaLM API (or so I thought).

When the start of the hackathon came closer, I decided to go with the second idea. I researched and had my building plan (or the general lines) ready for action.

The Story Behind the App Idea

The app idea was something that had been on my mind for a long, long time. Someone shared Julia Evans' blog post "Get your work recognized: write a brag document" a long time ago, and I loved the idea. I have often started writing my brag documents, but I have always forgotten about them because they have been in forms I don't use that much, like Google Docs or other similar solutions.

So, I wanted to build an app for that - maybe I'll remember it better if I see the application icon on my home screen. That remains to be seen, but now I have an app I can use.

Building the App

Finally, the hackathon started. I live in Finland (UTC+2), and the event times were in Eastern Time (UTC-5), so for me, the building started only on Saturday morning.

I'm an Android developer and had a good idea of what architecture components I'm using, so I got the basis of the app built and running relatively quickly. Then, it was time to start implementing the actual things that the app does. Everything went smoothly until I was about to integrate the PaLM API into my app.

Need to Switch the API

As I mentioned, I had already planned to use the PaLM API and Vertex AI in the app. I started integrating it, had everything I needed for it to work, and... I got an error that it's not yet available in Finland. I had forgotten to check its availability - like, it's available in many countries, so Finland must surely be one of them. Well, it was not.

My solution relied on some sort of text generation, and the hackathon rules also said that I'd need to use a Google API as part of the app. I didn't have time to start over, so I had to come up with a solution.

I went for a walk to clear my head and returned to my computer with a plan. I'd use Open AI's Chat Completions API for text generation and Firebase Crashlytics as the Google API.

After trial and error, and some prompting, I integrated the Chat Completions API into my app. I felt so great the first time I got the generated text on my screen - a moment I'll definitely store in my memory and my BragDoc app.

Integrating Crashlytics

The other thing I needed to add was Crashlytics. I was surprised at how easy it was - I usually encounter some problems when following instructions, but everything went smoothly this time.

It might have something to do with the fact that I've added Firebase Notifications to an app before, and back then, I had a lot of problems. Nothing seemed to work. That was until I realized that I had added the google-services.json to the wrong folder as I had added it manually. This time, I used the helper in Android Studio, and let me tell you, that went smoothly.

The MVP of the App

The idea of the application is simple: There is a screen where you can add your wins and accomplishments throughout the year. You can see them listed on that screen and delete them if needed - meaning there is no edit option.

There is also another screen for generating a summary of your accomplishments. It takes all the achievements not part of a summary yet and generates a short-ish summary from them with the help of OpenAI's Chat Completions API. You can see all the generated summaries on the same screen.

Here's a video of the app:

Submission

The deadline for submission was on Monday (or, in my time, early Tuesday morning). As I had to work on Monday, I had to get the submission as ready as possible before I started working. That was a busy morning - I had to quickly create all the assets I'd need, the video for the submission, and decide if I wanted to add a possibility to download the app.

At this phase, all the skills I have with Figma and the VN video editor came in handy - without some prior knowledge, I'm not sure if I would have been able to submit everything in time. I'm still slightly unsatisfied with the video, but it is what it is.

I wanted to get the app to the Play Store, but if you've ever submitted anything there, you know it requires time. There are so many questions to answer and checks to complete. I had to rule that option out, and I started wondering what I could do.

Luckily, I was logged in to the Firebase console and noticed a link, "App distribution." I started reading about it and realized that this is exactly what I need. A few moments later, I had the app available through there and could add a link to it to my hackathon submission.

I got it in in time and was so happy and proud. I had started developing something and had made the MVP out of it. It's not perfect, and I could improve many things, but I finished it in time.

Winner Announcement

On the morning of December 7th, I opened my email and found a message from Women Who Code congratulating me on being one of the hackathon's winners. I was so happy and honored!

I also want to congratulate the other winners - Marissa Campa with RecipeApp — A Recipe Finder, and Melike Altin, Arzu Caner, Ezgi Efe, and Yagmur Baran Karakus with Travel Brew!

Final Thoughts and Link to Code

I'm proud of myself for completing this MVP of the hackathon app and being one of the winners. I also did well with the scoping of the app. It's so easy to start building an app that's too big for the time constraints of the hackathon and get lost in different features. A weekend is a short time (especially when you're making something alone), so it needs to be scoped well if the goal is to get something done.

If you want to see the application code, you can find it in my BragDoc-repository in Github. I will improve and publish the app in the Play Store later, so stay tuned! I will share about it on my socials, so if you want to get your hands on it, follow me on LinkedIn (Eeva-Jonna Panula) or Mastodon (@eevis@mas.to).

Links in the Blog Post

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .