Starpath is an offline navigation app that helps you navigate unfamiliar locations without the need for internet access. With half of rural America lacking internet, our app leverages the global reach of SMS messaging to provide accurate and accessible navigation. Built with Flutter and utilizing Twilio and Google Cloud, Starpath can guide you on your journey whether you're seeking medical treatment, traveling internationally, or hiking in remote areas.

Inspiration

Although 97% of Americans own phones, half of rural America lacks any form of internet access. As our world continues to globalize, there is an opportunity to improve the accessibility of the internet, without leaving others behind.

What it does

You could be seeking better medical treatment outside your rural community or just traveling internationally. Starpath can even support travelers hiking through deserts and mountains. Sometimes it’s tough to leave the comfort of your community, but in an increasingly globalized world, Starpath can provide an offline navigation solution for anyone.

Starpath is made up of a form where the user can choose their starting point, destination, and mode of transit. The app works entirely offline (no mobile data or wi-fi) using only SMS messaging. When the form is submitted, the server returns detailed step-by-step instructions to get from their starting point to their destination.

How we built it

Our client-side is represented by a user phone with SMS services (available globally excluding countries like North Korea). The application runs on the Flutter framework, which takes the form data and formats it into an SMS text message that is sent to the server.

We used the Twilio Communications Platform to create virtual devices with SMS capabilities. Using the Twilio API, we were able to control the sending and receiving SMS messages to our virtual phone, which was in direct communication with the user's phone. Our server-side consisted of a flask web server hosted on the Google Cloud App Engine. Using webhooks, we were able to transmit new SMS requests from the virtual phone to our server. We used the Google Directions API to query navigational data and parsed through returned JSON data. Finally, we formatted relevant data from the API chunk into a smaller JSON object and sent it (through Twilio) back to the Flutter App, which correspondingly displayed the directions in the UI.

Challenges we ran into

Although we had experience in front-end frameworks, Flutter’s hierarchical design strays pretty far from the other major frameworks. Learning to navigate this on top of learning a new programming language was difficult.

Additionally, Flutter is more difficult to customize due to built-in design standards for both Android and Apple.

Additionally, no team member was familiar with the programming languages, frameworks, and APIs that were used in this project. We learned all the technology from scratch and implemented it to make this project a reality.

Accomplishments that we're proud of

We were surprised at every teammate’s ability to learn new technology and implement it without giving up.

What we learned

Beyond a certain level of proficiency with all of the technology used in this project, we also gained some important time management skills. Additionally, we spent a long time coming up with the idea

What's next for starpath

Beyond the scope of this hackathon, we would like to be able to improve the user experience by allowing users to choose among multiple suggested locations and implement auto-correct.

Share this project:

Updates