## Inspiration

How did you feel when you first sat behind the driving wheel? Scared? Excited? All of us on the team felt a similar way: nervous. Nervous that we'll drive too slow and have cars honk at us from behind. Or nervous that we'll crash into something or someone. We felt that this was something that most people encountered, and given the current technology and opportunity, this was the perfect chance to create a solution that can help inexperienced drivers.

## What it does

Drovo records average speed and composite jerk (the first derivative of acceleration with respect to time) over the course of a driver's trip. From this data, it determines a driving grade based on the results of a SVM machine learning model.

## How I built it

The technology making up Drovo can be summarized in three core components: the Android app, machine learning model, and Ford head unit. Interaction can start from either the Android app or Ford head unit. Once a trip is started, the Android app will compile data from its own accelerometer and multiple features from the Ford head unit which it will feed to a SVM machine learning model. The results of the analysis will be summarized with a single driving letter grade which will be read out to the user, surfaced to the head unit, and shown on the device.

## Challenges I ran into

Much of the hackathon was spent learning how to properly integrate our Android app and machine learning model with the Ford head unit via smart device link. This led to multiple challenges along the way such as figuring out how to properly communicate from the main Android activity to the smart device link service and from the service to the head unit via RPC.

## Accomplishments that I'm proud of

We are proud that we were able to make a fully connected user experience that enables interaction from multiple user interfaces such as the phone, Ford head unit, or voice.

## What I learned

We learned how to work with smart device link, various new Android techniques, and vehicle infotainment systems.

## What's next for Drovo

We think that Drovo should be more than just a one time measurement of driving skills. We are thinking of keeping track of your previous trips to see how your driving skills have changed over time. We would also like to return the vehicle data we analyzed to highlight specific periods of bad driving.

Beyond that, we think Drovo could be a great incentive for teenage drivers to be proud of good driving. By implementing a social leaderboard, users can see their friends' driving grades, which will in turn motivate them to increase their own driving skills.
## Inspiration

According to the National Sleep Foundation, about half of U.S. adult drivers admit to consistently getting behind the wheel while feeling drowsy. About 20% admit to falling asleep behind the wheel at some point in the past year – with more than 40% admitting this has happened at least once in their driving careers. And a study by the AAA Foundation for Traffic Safety estimated that 328,000 drowsy driving crashes occur annually.

Being drowsy behind the wheel makes a person 3x more likely to be involved in a motor vehicle accident, and driving after going more than 20 hours without sleep is the equivalent of driving with a blood-alcohol concentration of 0.08% - the legal limit.

Seeing all of this, we wanted to create a solution that would save lives, and make roads safer.

## What it does

SleepStop is a system that alerts drivers when they are falling asleep, and contacts emergency services in case of accidents.

The first system we developed is an artificial intelligence procedure that detects when a driver is falling asleep. When it detects that the driver has closed their eyes for a prolonged period, it plays a sound that prompts the driver to wake up, and pull over. The warning sounds are inspired by airplane warning sounds, which are specially designed and chosen for emergency situations. We believe the sudden loud sounds are enough to wake a driver up for long enough to allow them to pull over safely.

The second system we developed is a crash detection system. When an accident is detected, authorities are immediately contacted with the location of the crash.

## How we built it

For the sleep detection system, we used opencv to create an artificial intelligence that looks at the driver’s eyes, and times how long the driver’s eyes have been closed for. When the eyes have been closed for long enough to trigger our system, a sound is played to wake the driver up.

For the crash system, by recognizing when airbags are opened, and/or when the driver has closed their eyes for an elongated period of time, we can determine when a crash has occurred. When a crash is detected, emergency services are contacted via Twilio.

## Challenges we ran into

One of the major problems with this project was that the code ran on a raspberry pi, but almost none of our development environments had Linux installed. As a result, we had to be very careful when testing to make sure everything was cross compatible.

We ran into a challenge when creating an executable. We didn’t make it through.

We tried interacting with smart watches in order to send a vibration to the driver on top of the loud sound. Unfortunately, we had to scrap this idea as making custom interactions with a FitBit proved far too challenging.

## Accomplishments that we're proud of

We are proud that our prototype has such advanced functionality, and that we were able to produce it in a small time-frame.

We are also proud to have a working eye detection system, car crash system, sms alerting, and alarm sounding.

The thing we are most proud of is the potential of this hack to save lives.

## What we learned

While working on Sleep Stop, we learned a lot about working as a team. We had to communicate well to make sure that we weren’t writing conflicting code.

We also learned about how to structure large Python projects, using some of Python’s more advanced features.

Another thing that we had to learn to make this project was cross-platform compatibility in Python. Initially, our project would work on Linux but break on Windows.

We learned how to reliably detect facial features such as closed eyes in Python using OpenCV.

## What's next for Sleep Stop

Right now we have a prototype but in the future it would be beneficial to create a highly-integrated product.

We can also envision working with car manufacturers to make sleep-detection a built-in safety feature.

Finally, we believe stimuli other than loud sounds, such as vibrations, are desirable to ensure the driver wakes up.
## Inspiration

The inspiration for the application was simple, the truth is many people especially young people
simply don’t find saving money for their emergency fund that interesting. Incrementum aims to
change that by adding a gamification element to saving money into an emergency fund so users
are not only reminded but incentivized to invest in financial security.

## What it does

Incrementum is a web application that encourages people to support their financial security by
gamifying investing money into an emergency fund! The idea of Incrementum is simple, users
when signing up for the web application will be able to set a target goal for their emergency fund
and also how much money they have already contributed to their emergency fund. The
Incrementum application will then provide the user with weekly tasks to ensure that they are
looking into different types of savings accounts and investing regularly into their emergency
funds. Additionally, Incrementum gives a virtual dashboard with all the data a user would need
to track and review their progress in building their financial security. Here is where the
gamification element comes in, whenever the user completes the task they will be awarded their own pixelated plant to place in their own virtual money garden! This garden can be shared
with friends so multiple users can contribute to the same garden all with their unique plants. In
order to further incentivize users to complete their tasks each plant generated for the user will
always be completely unique and never repeated. How is this possible? In addition to building
the web application of Incrementum, our team has also created a machine learning and deep
learning generative adversarial network (GAN). This GAN has been trained on hundreds of
images of pixelated trees and plants and through machine learning is able to output unique
images of unique, never-before-seen pixelated plants for the user's virtual garden! This allows all
users to have a completely unique and original money garden all fitted with never-before-seen
pixelated plants generated from our machine learning model. This will incentive users to keep
following and accomplishing their weekly tasks as a way to keep collecting more plants for their
garden and in turn support building their financial security and their emergency funds in a safe
and enjoyable way!

## How we built it

In order to build the web application side of Incrementum we used React and Bootstrap in the
front end and created a Python Flask REST API as the backend. React was used due to the
useful features such as react-router and hooks while Flask was used in order to ensure that the
application was lightweight. When developing the machine learning model/GAN for
Incrementum Python, PyTorch, Numpy and Scikit-learn were used to create the model which
used multiple different layers in a neural network in order to generate the unique and never-before-seen plants. After this, the model was deployed to another flask backend REST API
which the React front end calls for the plants while the previously mentioned flask REST API is
used by the front end to store user information and financial progress.

## Challenges we ran into

The biggest challenges we ran into were simply learning all the machine learning tools,
frameworks and topics quickly and effectively. Only one member of our team was exposed to
machine learning before the hackathon and he had never built such a model as complex as the
one need for Incrementum. Therefore it was a challenge for our team to all work together and
understand complex topics such as neural networks and how a GAN is created. Furthermore,
learning how to use sci-kit-learn and NumPy proved to be a tough challenge that our team
persevered through. Learning such topics in a short amount of time also proved to be a very
rewarding experience however as our team learned how to delegate and prototype quickly.

## Accomplishments that we're proud of

The biggest accomplishment our team is proud of is developing a very complex and effective
machine learning and deep learning GAN model that is able to create a unique, never before
seen and high-quality pixelated plant every single iteration. The training of the model alone took
seven hours therefore it was a major accomplishment for the team when the model was working
so effectively. Additionally, being able to design and create an application that allows for the
gamification for creating an emergency fund was another major accomplishment for our team as
well.

## What we learned

Working on such a technically complex product such as Incrementum really showed our team
what we were capable of when working together. Many of us were not exposed to the
technologies and topics used with Incrementum however being able to not only create full-stack
web application with a complete React front end and Flask backend but also creating a GAN
one of the most complex neural network types in machine learning allowed our team to learn so
much about software engineering, planning and teamwork. Specifically, our team gained a
newfound competence in developing complex machine learning models and developing an
eye-catching and user-friendly front end.

## What's next for Incrementum

The goal of Incrementum moving forward is to further develop the application to handle more
investing and saving goals. We would like to add tasks that support teaching and incentivizing
students and young people to invest in various securities such as stocks and bonds and
research more into saving accounts such as retirement accounts. Using the gamification model
Incrementum uses we are certain we can make some of the less interesting elements of
building wealth and financial security much more engaging and enjoyable for all people.