Facilitates platform for parents to encourage kids to safely bike using an interactive map and leaderboard challenges
The Specialized Foundation is heavily invested in increasing accessibility to cycling to aid youth in personal development and education. While they specifically research the effect of cycling with kids who have ADHD, they believe that riding a bike can positively impact anyone's brain.
Thus, it was our goal to create a platform that would encourage kids to ride their bike as a way to develop healthy habits and have fun. SPO specifically creates a cycling relationship between a parent and their child, in which the parent can set bounds on where the child rides, keep track of their location and motivate them to play outdoors.
The child portal in the app provides limited information (proximity and direction) about where local "waypoints" are - bike-centric places that a kid seeks as a way to complete a challenge. Either individually or with a group, kids can use the app to plan their routes to waypoints and earn badges when they arrive at the location.
Parents have the ability to set a home location around which their child's travel radius is centered. They also have the ability to modify the size of the travel radius. The travel radius works as a fixed location parameter in which the parent is alerted if the child leaves the circle as a safety measure. The parent also has primary control of the child's waypoints, so they are able to lead their child to certain places such as an ice cream shop, bike trail, or park.
We wanted this app to be available across all platforms, so we used Flutter, which utilizes Dart, as a way to develop our app. However, none of our team members were experienced with any kind of app development, and only one had played with Flutter before.
The learning curve for Dart and Flutter was extremely steep and were the cause of the majority of challenges. The Android studio and SDK proved difficult to install, and one teammate wasn't able to utilize the Android Debug Bridge for a couple of hours. We also had to convert map coordinates to bearings in order to get the direction and distance from our given waypoints. This proved challenging in finding the correct equations for the conversion. We also discovered a documentation error in one of the Flutter libraries that prevented us from using the location library, so we rewrote the function onLocationChanged with the correct parameters.
As riders ourselves, we understand that learning new skills and excelling at them is one of the most fun parts of riding bikes. We would love to encourage kids to learn new tricks like riding with no hands, learning to wheelie, or riding pump tracks. In the future, we would incorporate accelerometers, gyroscopes, and pressure sensors and preset positional changes that indicate if the rider is doing a specific trick. Riders could earn points for doing certain tricks for a certain amount of time, or other gaming-style acts such as reaching a certain speed.