Our website (mentioned in the video) can be found at https://lprader-rackcity.herokuapp.com/
Motivation:
There are tens of millions of bicyclists in the U.S. Within this large, diverse population, how can we support and promote biking communities in enhancing the overall social aspects of the biking experience?
Our Solution:
With RackCity, bikers are connected to their bikes and friends with a simple, powerful, and useful smartphone app. The app interfaces with a location-tracking chip attached to their bike in order to give the biker real-time information at their fingertips.
Features include:
- Easy-to-navigate app with critical information displayed on home screen
- Ability to add and remove friends
- Map of your bike location and your friends' locations
- One touch lock and unlock feature
- Support saving for descriptions for multiple bikes
- Text alerts in case bike is stolen or chip is disabled
- Light and alarm control from app and settings to automatically activate in case of theft
- Emails with prefilled missing bike reports to friends
Implementation:
Implementation challenges and solutions included the following:
- Integrating Google Maps without Inline Frames: Kinoma JS offered limited support for IFrames and therefore some interactive elements of Google Maps were not able to be integrated. Because of this we had to use the Google Maps static API. In order to provide the user with an interactive map experience, we manually added zooming buttons to allow for the map to be modified without using IFrames.
- Support for adding friends and their locations: Friends were stored on an online server with their location information. The app interacted with the server in order to pull real-time data and display it in the app.
- Texting and email features: The Twilio API was used in order to send text messages and the Mailgun API to send emails from the app. Because only the trial version of Twilio was available, the number of phone numbers was limited so for demo purposes, a designated phone was used to show this feature.
Future Steps and Improvement:
Features that RackCity has in store for future iterations include:
- Crash detection -- With accelerometers and GPS built into the chip, we plan developing the ability to detect crashes and give users the option to notify friends or easily call for help. This would enhance the social community aspect of biking, as well as provide an extra layer of safety and security for bikers.
- Ride tracking and statistics -- Another feature that would improve the app would be adding ride tracking so that users can plan, save, and share routes with friends. This would be accomplished using the existing GPS location data that the chip is already providing, combined with the friend network that is currently implemented.
- Directly reporting missing bikes to police department -- With coordination from local police departments, the missing bike report feature could be adjusted to fit the format of existing missing bike reports and directly sent to participating police stations.
README:
Instructions to build and run the application are as follows:
1) Ensure that you have an active and relatively fast internet connection. The app relies on the internet in order to make calls to the server and run some features of the app.
2) Extract both files from the zip folder and import them both into Kinoma
3) In the RackCityPhone main.js file, find lines 300-395 and fill in the appropriate Twilio and Mailgun credentials specified in the comments. You will need to create a trial Twilio (https://www.twilio.com/try-twilio) account and a Mailgun (https://mailgun.com/signup) account to do so. Any phone numbers you plan to text using the Twilio trial account must be verified first.
4) Run the simulator for RackCityDevice on the Kinoma Create
5) Run the simulator for RackCityPhone on the Nexus One (Go ahead and log in. You should see a popup stating that the device has been paired)
6) In order to use the report feature, add a bike in the "My Bikes" section and save it
7) Explore the app!
Extra notes: If you want to see a text representation of the users in the database, go to http://lprader-rackcity.herokuapp.com/db
This displays the username, longitude, latitude, and a boolean that states whether that user has ride sharing on.
A new user is created whenever you press "Create account" on the main screen of the app, unless you enter a username that already exists. In that case, it "logs you in" as that user and lets you change the ride sharing permission, add friends, etc.
Comments