We were inspired to create this after our experiences on TJ's cross country and track teams. Especially when running in the winter, most of our time running was spent in near complete darkness, as many of the small streets and sidewalks near our school were not well lit. This caused us, and many other members of our team, many injuries due to small things like a multitude of potholes on the sidewalk, all the way to one of our team members nearly being hit by a vehicle when crossing an intersection with a dangerous blind spot. This sparked our minds to create a cross platform mobile app that would crowdsource data from runners, walkers, bikers, etc, to create a network database of locations that would pose danger to them in any way.
What it does
We aggregate data from users about various points on roads or sidewalks, through the Report function of our app, where users can choose to report any kind of danger from a pothole to a more major cause of harm. They can choose the general type, select an intensity based on how bad the danger is, and record the location. Users can also use the Navigation mode to choose the least dangerous running route based on this data, and the Free Run mode to locate dangers in a user's surrounding area.
How we built it
Our server side functionality was implemented by using Python3 and a variety of different route ranking selections to select the least dangerous route based on a user's specifications. We used a Firebase database to store all of the dangers in an easy to access cloud database. Our client side applications were built using React Native, which allowed us to deploy the app on both the Android and iOS platforms, without any loss of functionality. We also used the Google Maps Geocoding, Distance, and Directions APIs to find the best route based on our danger node data. We implemented Machine Learning to filter out spam and troll-based submissions to our Report system.
Challenges we ran into
We had a hard time getting MapBox set up at first, because we wanted to have more customizable maps, but it was not compatible with our version of React Native, and changing it would've required a major overhaul of our design systems. We eventually switched our mapping system over to Google Maps, as they provided better documentation and compatibility with our existing systems.
Accomplishments that we're proud of
Being able to setup a full system relying on multiple servers and ensuring compatibility with clients across two vastly different platforms. We were also proud of our persistence all throughout the 24 hours as this was our first ever hackathon, a very fun one! :)
What we learned
We learned how to set up a Python web server, and how to create a Web API to get and send data from our client end applications to our server. We also learned how to use Firebase, as it was all of our first times using a framework like it. This project also allowed us to gain a better understanding about the vectors and nodes behind map movement and creation.
What's next for Atala
We plan to integrate a user system that would allow us to track the Reports by each user, and create a mini-social system between them. We also are planning to allow for fitness tracker integration such as with Apple Watch and FitBit. We want to use a live location tracker for more accurate user navigation data, and more convenient consumer use.
Created by Charlie Wu, Stephen Huan, Andy He, 9th graders from TJHSST (Group Table 102)