Inspiration

According to Insurance Institute for Highway Safety, you are 5 times more likely to be in a crash while using a mobile phone in contrast to using a hands free system. With distracted driving representing 27% of all car crash fatalities on BC roads, it is clear that cell phone use at the wheel needs to be curtailed. However, most hands-free system need to connect to other devices in cars, and may require your input at times while you are driving (i.e. answering/listening to messages). Ben resolves a majority of these issues by handling them for you!

What it does

Ben is your own personal driving assistant droid! From the moment you turn your car on, Ben uses pre-defined rules set up by the user to determine what kind of messages that it needs to send. For instance, if a user is leaving work and desires to send a message to their spouse/partner when they turn on the car to let them know they are on their way home, Ben will work out the estimated arrival time and send an SMS to the respective phone number. If the user encounters any external events, such as an accident or a breakdown, Ben will detect these events, review the arrival time and update the recipient with the appropriate information.

How we built it

Back-end

Our team made use of Mojio's Open Car Platform to detect our vehicle's location and status for use within preset rules. We also made use of Twilio to generate and send SMS messages to the appropriate recipients. In addition, we are also using Node.js as our backend framework to run our application.

Front-end

We used HTML/CSS with Bootstrap templates, with JavaScript making accesses to our backend when necessary. Google Maps is also used to provide users with the current location of their vehicle. AWS EC2 is used to host and store our solution, with AWS Route 53 providing our domain name redirect from Namecheap.

Challenges we ran into

AWS Elastic Beanstalk (AWS EBS) was a major challenge for our team - a decision was made early on to use it to speed up our deployment process, and avoid wasting time with issues in this particular pipeline. However, this was the biggest source of irony for us as it did the complete opposite and consumed a significant amount of development time. In the end, we reverted to a single instance of EC2, and did our deployment manually. Working with Mojio was also a good experience, especially with a platform that was very new to all of us and represented various challenges (e.g. how to communicate over a secure connection).

Accomplishments that we're proud of

Getting Mojio to work! We were very proud once we finally had it up and running after approximately 18 hours of development time! Realizing the simple solution was the best solution (see section What we learned concerning EBS, and Challenges concerning EBS)! Learning and resolving DNS issues within AWS!

What we learned

If we avoided AWS EBS, and set up deployments directly onto our EC2 instance, we would have been able to deploy a lot more quickly, and be able to test our solution much more thoroughly.

What's next for Ben The Assistant

Saved sessions would allow users to review, edit, and add new rules on when to tell Ben to send messages. As we did not have enough time, the major next step would be to also set up a relational SQL database in which we can store a user's rules. We may also choose to use it to store past crash information, for instance, in a future implementation with data mining to allow Ben to make decisions based on user preferences (e.g. avoiding crash-prone intersections if a user chooses such).

Share this project:
×

Updates