## Inspiration

In large corporations, such as RBC, the help desk gets called hundreds phone calls every hour, lasting about 8 minutes on average and costing the company $15 per hour. We thought this was both a massive waste of time and resources, not to mention it being quite ineffective and inefficient. We wanted to create a product that accelerated the efficiency of a help-desk to optimize productivity. We designed a product that has the ability to wrap a custom business model and a help service together in an accessible SMS link. This is a novel innovation that is heavily needed in today's businesses.

## What it does

SMS Assist offers the ability for a business to **automate their help-desk** using SMS messages. This allows requests to be answered both online and offline, an innovating accessibility perk that many companies need. Our system has no limit to concurrent users, unlike a live help-desk. It provides assistance for exactly what you need, and this is ensured by our IBM Watson model, which trains off client data and uses Machine Learning/NLU to interpret client responses to an extremely high degree of accuracy.

**Assist** also has the ability to recieve orders from customers if the businesses so chose. The order details and client information is all stored by the Node server, so that employees can view orders in realtime.

Finally, **Assist** utilizes text Sentiment Analysis to analyse each client's tone in their texts. It then sends a report to the console so that the company can receive feedback from customers automatically, and improve their systems.

## How we built it

We used Node.js, Twilio, and IBM watson to create SMS Assist.

**IBM Watson** was used to create the actual chatbots, and we trained it on user data in order to recognize the user's intent in their SMS messages. Through several data sets, we utilized Watson's machine learning and Natural Language & Sentiment analysis to make communication with Assist hyper efficient.

**Twilio** was used for the front end- connecting an SMS client with the server. Using our Twilio number, messages can be sent and received from any number globally!

**Node.js** was used to create the server on which SMS Assist runs on. Twilio first recieves data from a user, and sends it to the server. The server feeds it into our Watson chatbot, which then interprets the data and generates a formulated response. Finally, the response is relayed back to the server and into Twilio, where the user recieves the respons via SMS.

## Challenges we ran into

There were many bugs involving the Node.js server. Since we didn't have much initial experience with Node or the IBM API, we encountered many problems, such as the SessionID not being saved and the messages not being sent via Twilio. Through hours of hard work, we persevered and solved these problems, resulting in a perfected final product.

## Accomplishments that we're proud of

We are proud that we were able to learn the new API's in such a short time period. All of us were completely new to IBM Watson and Twilio, so we had to read lots of documentation to figure things out. Overall, we learned a new useful skill and put it to good use with this project. This idea has the potential to change the workflow of any business for the better.

## What we learned

We learned how to use the IBM Watson API and Twilio to connect SMS messages to a server. We also discovered that working with said API's is quite complex, as many ID's and Auth factors need to be perfectly matched for everything to execute.

## What's next for SMS Assist

With some more development and customization for actual businesses, SMS Assist has the capability to help thousands of companies with their automated order systems and help desk features. More features can also be added
## Inspiration

Ideas for interactions from:

* <http://paperprograms.org/>
* <http://dynamicland.org/>
but I wanted to go from the existing computer down, rather from the bottom up, and make something that was a twist on the existing desktop: Web browser, Terminal, chat apps, keyboard, windows.

## What it does

Maps your Mac desktop windows onto pieces of paper + tracks a keyboard and lets you focus on whichever one is closest to the keyboard. Goal is to make something you might use day-to-day as a full computer.

## How I built it

A webcam and pico projector mounted above desk + OpenCV doing basic computer vision to find all the pieces of paper and the keyboard.

## Challenges I ran into

* Reliable tracking under different light conditions.
* Feedback effects from projected light.
* Tracking the keyboard reliably.
* Hooking into macOS to control window focus

## Accomplishments that I'm proud of

Learning some CV stuff, simplifying the pipelines I saw online by a lot and getting better performance (binary thresholds are great), getting a surprisingly usable system.

Cool emergent things like combining pieces of paper + the side ideas I mention below.

## What I learned

Some interesting side ideas here:

* Playing with the calibrated camera is fun on its own; you can render it in place and get a cool ghost effect
* Would be fun to use a deep learning thing to identify and compute with arbitrary objects

## What's next for Computertop Desk

* Pointing tool (laser pointer?)
* More robust CV pipeline? Machine learning?
* Optimizations: run stuff on GPU, cut latency down, improve throughput
* More 'multiplayer' stuff: arbitrary rotations of pages, multiple keyboards at once
## Inspiration

We like walking at night, but we don't like getting mugged. 💅🤷‍♀️We can't program personal bodyguards (yet) so preventative measures are our best bet! Accessibility and intuitiveness are 🔑in our idea.

## What it does

HelpIs allows users to contact services when they feel unsafe. 📱Location trackers integrate tech into emergency services, which tend to lag behind corporations in terms of tech advancements. 🚀🚔🚓

## How we built it

We heavily relied on the use of APIs from Twilio and MapBox to create our project. 💪Specifically, we employed Twilio Programmable Voice for calling 🗣️🗣️, Mapbox GL JS for map display and geolocation 🗺️🗺️, and Mapbox Directions API for route finding and travel time prediction 📍📍. The web app itself is built with [VanillaJS](http://vanilla-js.com/) (:p), HTML, and CSS. 🙆

## Challenges we ran into

Our original design centered on mobile connectivity through a phone app and a wider range of extendable features. Unfortunately, one of our teammates couldn't make it as scheduled 💔, and we had to make some trade-offs 💀💀. Eventually, we pulled through and are thrilled to exceed many goals we set for ourselves at the start of the hack! 💥🔥💯

🚩🚩🚩Also, Alison thought the name was HelpIs (as in like Help is coming!) but Alex (who came up with the name) assumed she could tell it was Helpls (like Help + pls = Helpls). 🐒He even wrote about it in the footnotes of his mockup. You can go read it. Embarrassing... 🚩🚩🚩

## Accomplishments that we're proud of

We are so proud of the concept behind HelpIs that we decided to make our **first ever** pitch! ⚾

Thanks Alex for redoing it like four times! 💔😅

## What we learned

Differentiating our program from existing services is important in product ideation! 🤑

Also, putting emojis into our about page is super funny 🦗🦟🦗🦟🦗🦟🦗🦟

## What's next for HelpIs

We want to make it mobile! There are a few more features that we had planned for the mobile version. Specifically, we were looking to use speech-to-text and custom "code words" to let a user contact authorities without alerting those around them, inspired by the famous [911 call disguised as pizza order](https://www.youtube.com/watch?v=ZJL_8kNFmTI)! 🤩🤩🤩