Before hacking, our team was curious about methods of offline messaging. We realized that an offline Google-service provider had not been invented and we could create one by implementing the short messaging service. Our final project, OfflineAssist, is an offline SMS Google-service provider, the main service being Google Assistant.
What it does
Our program allows the user to interact with Google services without the need for online connections. The message is sent to an SMS number created with Twilio, which then sends a request to the Google APIs. The APIs' responses are then sent back to the SMS number and finally back to the user.
How we built it
Our application is coded mainly in Python and Flask and we receive our Google APIs through a Linode server.
Challenges we ran into
During the first few working hours, our frontend team tried working with Android Studio, which we believed at first was the only way to create an application for our idea. It was a grueling process - the studio itself was very slow to work with; Android development was new to most of us; and online tutorials were complex. The backend was also failing initially and our backend team had to continuously think of new ways to get API requests. Eventually, with the help of a mentor, we were able to focus on web development instead of Android development, even though we ran our application on an existing server instead of our frontend code, and solidify a method to obtain requests from APIs. Later into the hacking period, our backend team encountered several bugs, but we were able to completely solve the majority of them. We even tried implementing Python Unicode in our backend for the Google Assistant to return emojis, but that plan backfired.
Accomplishments that we're proud of
We are very proud that we were able to turn our initial idea (Google Assistant only) into a complete reality. After much testing, we managed to successfully link our application with the Google Assistant API and output the correct responses with much hacking time to spare. After finishing the backbone part of our project, we decided to implement even more Google APIs, such as the Google Maps APIs, for improved functionality of our program.
What we learned
Each of us learned a new coding concept. For instance, our frontend developers learned a bit of Android development despite its short usage in our project and our backend programmers learned more on Google Cloud Platform APIs. More importantly, our group also learned about the significance of collaboration, time-management, and brainstorming before the event. At our previous hackathon, our team did not have a solid idea to work on, which led to a massive waste of time (6 hours of thinking about ideas), and we did not communicate well with each other or use our time effectively. By implementing these improvements during JAMHacks 3, we were able to see a successful outcome and we will be able to maintain our performance for future hackathons.
What's next for OfflineAssist
As future features, we would like to integrate more APIs (not solely Google APIs) with our program and create a more refreshed user-interface for it instead of running it on an existing server.