We've been looking into the Google Firebase and GeoFire services recently, which makes versatile database storage easy and makes it very easy to track and store location. We wanted to find a way to use that technology to help people in our college community, as well as other college campuses. We really think that coming up with projects that let us use new technologies and do good at the same time are the best ones for a hackathon.

What it does

In its simplest terms, Walk With Me allows users to post onto the app that they're interested in walking somewhere. However from this there are a bunch of uses that we see, the main one centered around safety on campus. If students are out late studying or at a friend's apartment, they may feel unsafe walking back to their dorm. This is especially the case on larger state college campuses. With Walk With Me, students can say they're interested in walking, and indicate about where they're going. This information is available anonymously only to other students with the same .edu email. If another student is interested in joining them for that walk, most likely because they're going in the same direction, they can respond through the app easily, and then the app will help them coordinate a meetup. After accepting the walk, both students are given the name and profile picture of the other student so they feel safe about who they are walking with. While walking, the students location is known the whole time so they don't have to worry about disappearing anywhere without a trace.

We see many other uses for the app as well, along with campus safety. It can be simple things, like being stuck without an umbrella on a rainy day and needing someone to help you get back dry. It can also be as simple as just helping students connect on campus and break out of the social bubbles students tend to get trapped in. Outside of campus, we see it being useful for the elderly, as someone could respond to their walk request and help them get to the grocery store or hardware store. We believe it really has the power to bring together any community, not just a college campus.

How we built it

We wrote our app across both the web and Android platforms. For Android, we used the design support library to implement material design throughout the Android framework for the easiest user experience. On Android we also used a wide range of Google services and APIs, such as Google's reverse geocoding API, as well as many other Google maps services. The web front end was written utilizing the Materialize framework, which we think helps to give the cleanest user experience. The web app also makes use of many Google services to interact with the map and location services. The backend that ties it all together is built on Google Firebase and GeoFire, which allowed for quick and efficient development and deployment. The biggest advantage to using Firebase was its realtime database, which allows for quick data syncing across all devices, which was important for us since we developed a multiplatform application. We wanted users to be able to smoothly move from web to mobile, and Firebase was what made that possible. GeoFire was essential for tracking location and storing location information in the Firebase database. Besides those services, the rest of the code is just a combination of HTML, CSS, and jQuery on the web app and Java on the Android app.

Challenges we ran into

The biggest challenge that we had to deal with would be concurrency issues. While Firebase is great for storing and accessing data across devices, it makes for some tricky concurrency issues that were a challenge to debug. In the end though we all agree that it's what we learned the most from, since we had to change our style of programming to account for concurrency issues, and to make sure each piece of data was available when it was needed. Another challenge we ran into was the switching between a social app with all the interested walkers involved in the app to a more personal app that just focuses on you and the person you're walking with. It meant having multiple states of the app and properly transitioning between those states. Finally the last big challenge was implementing all the features we wanted to in time. This is one that we exceeded our expectation on, but still didn't manage to get in everything we would have liked. However, having to pick and choose which functionality was most important and the most efficient use of our time was definitely a learning experience and will only make us better and time management in the future.

Accomplishments that we're proud of

Overcoming concurrency challenges is definitely what we're all most proud of. Dealing with those challenges is what made us feel like we really learned something at this hackathon, and will definitely translate into our systems programming class we're all in right now (which coincidentally has a concurrency program due next week). Along with overcoming the challenges we faced, we're really proud of how well we worked together. Everyone had a say in the design and felt like we were a part of the final product. Each of us performed a vital role in the development of the app - one Android developer, one web developer, and one backend developer coming together to use our strengths. Even when tensions ran high and sleep ran low we never fought or argued, and we think that's why we were able to be so productive.

What we learned

Overcoming concurrency challenges made us learn to approach development in a different way, having to think about each element of the data we needed and how it affected later pieces of data. Along with that we all became more comfortable with familiar technologies as well as new ones, and strengthened our programming skills. Outside of the programming, having to think about the flow of the user experience helped us to learn more about design, and we think we'll be able to better design user-friendly apps in the future.

What's next for Walk With Me

It's hard to say. We have another large project that we've been working on for over a year that takes most of our spare programming time, but given the widely positive response to Walk With Me there's a good chance we'll revisit this hackathon project. With some more time and effort, we think this app could help a lot of people and do a lot of good on college campuses.

Share this project: