WildHacks 2016 Project
By: James He, Allison Lu, and Byron Lee
Updated: November 20, 2016
Inspiration: We often hear of people leaving their car lights on for too long, people who get towed because they parked illegally, and people who leave their pets/children in the car on a super hot day. These potentially disastrous situations could all be prevented if passersby were able to alert the car owner of the situation that they're in. However, people aren't just going to post their phone numbers in their car windows for privacy purposes. We wanted to develop a solution that would allow people to alert car owners of potential problems, while still maintaining privacy.
What It Does: This is web application that aims to alert car owners that something is wrong with their vehicle (i.e. accidentally left headlights on), using entirely public information, as to preserve the privacy of the car owners.
To be a part of the Alertif community, users sign up for an account with their license plate, phone number, and email. Users need to activate their account upon first signing up as a security measure to prevent spam bots from inundating our system. The user can then input a license plate number, write a message to the owner of the car with that license plate, and hit send.
Alertif makes use of the Twilio API to send SMS messages to the car owners. The car owners will receive a text within seconds after the message is sent, notifying them that there's something wrong with their car and that they should probably do something about it.
Technologies We Used: Alertif is a Ruby on Rails application, incorporating the Twilio API for SMS messaging capabilities. The front-end is done in HTML/CSS with embedded ruby code to handle dynamic components. Rails is used to handle all databases (PostgreSQL) which stores account information as well as the instant messaging content. Through the different Ruby gems that utilizes the power of SSL, Alertif also features account activation and password-reset/remember-me characteristics, ensuring that the privacy and protection of accounts through the use of authentication tokens and different active sessions.
Challenges: One challenge that we faced was how to handle the security features of the app, in particular how to set up authentication tokens and handling login/logout procedures. With relatively little experience in Ruby and Rails, we initially had trouble with handling HTTP server requests and setting up the routes that took care of handling account procedures. Another problem that we initially faced was deciding on models, its attributes, and how they intertwined with one another. When information is inputted into the forms provided, they needed to be validated for correctness which we eventually got it functioning correctly through Rails' features as well as a bit of regex.
Accomplishments: We are proud that we made an app that is functional and aesthetically pleasing in the given time frame. With our relative inexperience working on the web application development field, creating our first functioning web app was a major accomplishment.
In the future, we plan on porting our app to mobile since this is going to be primarily a mobile app. Due to time constraints, we chose a web app since we can port the web app using frameworks such as Cordova to iOS and Android phones, saving us the time of having to learn both iOS and Android mobile development.