## Inspiration

Ubisoft's challenge (a matter of time) + VR gaming + Epic anime protagonists

## What it does

It entertains (and it's good at it too!)

## How we built it

Unity, C#, Oculus SDK

## Challenges we ran into

Time crunch, limited assets, sleep debt

## Accomplishments that we're proud of

Playable game made with only 2 naps and 1 meal

## What we learned

36 hrs is a lot less than 48 hrs

## What's next for One in the Chamber

Oculus Start?? :pray:
## Inspiration

What inspired us to build this application was spreading mental health awareness in relationship with the ongoing COVID-19 pandemic around the world. While it is easy to brush off signs of fatigue and emotional stress as just "being tired", often times, there is a deeper problem at the root of it. We designed this application to be as approachable and user-friendly as possible and allowed it to scale and rapidly change based on user trends.

## What it does

The project takes a scan of a face using a video stream and interprets that data by using machine learning and specially-trained models for emotion recognition. Receiving the facial data, the model is then able to process it and output the probability of a user's current emotion. After clicking the "Recommend Videos" button, the probability data is exported as an array and is processed internally, in order to determine the right query to send to the YouTube API. Once the query is sent and a response is received, the response is validated and the videos are served to the user. This process is scalable and the videos do change as newer ones get released and the YouTube algorithm serves new content. In short, this project is able to identify your emotions using face detection and suggest you videos based on how you feel.

## How we built it

The project was built as a react app leveraging face-api.js to detect the emotions and youtube-music-api for the music recommendations. The UI was designed using Material UI.

The project was built using the [REACT](https://reactjs.org/) framework, powered by [NodeJS](https://nodejs.org/en/). While it is possible to simply link the `package.json` file, the core libraries that were used were the following

* **[Redux](https://react-redux.js.org/)**
* **[Face-API](https://justadudewhohacks.github.io/face-api.js/docs/index.html)**
* **[GoogleAPIs](https://www.npmjs.com/package/googleapis)**
* **[MUI](https://mui.com/)**
* The rest were sub-dependencies that were installed automagically using [npm](https://www.npmjs.com/)

## Challenges we ran into

We faced many challenges throughout this Hackathon, including both programming and logistical ones, most of them involved dealing with React and its handling of objects and props. Here are some of the most harder challenges that we encountered with React while working on the project:

* Integration of `face-api.js`, as initially figuring out how to map the user's face and adding a canvas on top of the video stream proved to be a challenge, given how none of us really worked with that library before.
* Integration of `googleapis`' YouTube API v3, as the documentation was not very obvious and it was difficult to not only get the API key required to access the API itself, but also finding the correct URL in order to properly formulate our search query. Another challenge with this library is that it does not properly communicate its rate limiting. In this case, we did not know we could only do a maximum of 100 requests per day, and so we quickly reached our API limit and had to get a new key. Beware!
* Correctly set the camera refresh interval so that the canvas can update and be displayed to the user. Finding the correct timing and making sure that the camera would be disabled when the recommendations are displayed as well as when switching pages was a big challenge, as there was no real good documentation or solution for what we were trying to do. We ended up implementing it, but the entire process was filled with hurdles and challenges!
* Finding the right theme. It was very important to us from the very start to make it presentable and easy to use to the user. Because of that, we took a lot of time to carefully select a color palette that the users would (hopefully) be pleased by. However, this required many hours of trial-and-error, and so it took us quite some time to figure out what colors to use, all while working on completing the project we had set out to do at the start of the Hackathon.

## Accomplishments that we're proud of

While we did face many challenges and setbacks as we've outlined above, the results we something that we can really be proud of. Going into specifics, here are some of our best and satisfying moments throughout the challenge:

* Building a well-functioning app with a nice design. This was the initial goal. We did it. We're super proud of the work that we put in, the amount of hours we've spent debugging and fixing issues and it filled us with confidence knowing that we were able to plan everything out and implement everything that we wanted, given the amount of time that we had. An unforgettable experience to say the least.
* Solving the API integration issues which plagued us since the start. We knew, once we set out to develop this project, that meddling with APIs was never going to be an easy task. We were very unprepared for the amount of pain we were about to go through with the YouTube API. Part of that is mostly because of us: we chose libraries and packages that we were not very familiar with, and so, not only did we have to learn how to use them, but we also had to adapt them to our codebase to integrate them into our product. That was quite a challenge, but finally seeing it work after all the long hours we put in is absolutely worth it, and we're really glad it turned out this way.

## What we learned

To keep this section short, here are some of the things we learned throughout the Hackathon:

* How to work with new APIs
* How to debug UI issues use components to build our applications
* Understand and fully utilize React's suite of packages and libraries, as well as other styling tools such as MaterialUI (MUI)
* Rely on each other strengths
* And much, much more, but if we kept talking, the list would go on forever!

## What's next for MoodChanger

Well, given how the name **is** *Moodchanger*, there is one thing that we all wish we could change next. The world!

PS: Maybe add file support one day? :pensive:
PPS: Pst! The project is accessible on [GitHub](https://github.com/mike1572/face)!
## Inspiration

1.7 billion people today have cell phones but no Internet connectivity. A large portion of this demographic further faces socioeconomic challenges such as low incomes, illiteracy, and poor hygienic conditions, leaving them vulnerable to unhealthy lifestyles and malady as they lack information. Several of our team members have been in such environments where a lack of awareness and stigmatisation of mental and sexual health have led to depression and suicides, discrimination (particularly against women), and the continuation of poverty cycles. We built IEve to tackle this issue.

## What it does

IEve is a virtual assistant available on phone providing critical information even when users cannot connect to the Internet. A user can call an IEve number and ask a question, particularly for topics of which they lack awareness and/or that may be taboo in their communities. IEve then automatically generates a response to their query using crowd-sourced information that is peer-reviewed and verified by experts. IEve then reads out the answer over the phone so that it is accessible to any type of user.

IEve always ensures high confidence in its answers. If it is not confident, it admits so and automatically opens the question to experts on Einstein. An unanswered question is posted to IEve’s web forums, where users such as doctors, NGOs, and other experts can write responses. Once a response is written, it is peer-reviewed as other experts upvote or downvote it. Once it passes a certain threshold, the response is then sent to selected expert moderators who can then finalise its validity. It is then automatically added to the knowledge base on which IEve’s automated model is trained.

As of now, IEve is specialised in topics on mental and sexual health, which are particularly taboo in countries like India and other parts of the developing world. However, IEve is set up for scalability and will be able to handle any requests as more crowdsourced data is generated.

## How we built it

Our system has multiple components mentioned below:

Voice assistant on phone - We use Twilio to provide a way for users to talk with IEve. Twilio handles incoming calls from the user and, as defined by a Node.js script on an Azure VM server, sends the audio stream to Google Cloud’s cutting-edge speech-to-text model for real-time call transcription. The transcribed query from the user is parsed and forwarded to a Q&A server. The response from the Q&A server is then parsed, and the answer is extracted and read out and/or texted to the user using Twilio. If a user calls and an answer is not available, the question is posted to Einstein through a REST API call. The speech assistance makes IEve accessible to all users, even those who are illiterate or unfamiliar with smartphones. Cell phone integration makes critical information available without Internet access.

Q&A - Our query answering system is built using Azure’s state-of-the-art QnA maker. We generate a knowledge base by scraping verified articles and automatically extracting question answer pairs. The knowledge base is extendable by either directly adding question-answer pairs or by adding more articles to scrape information from. Over time the community efforts on Einstein will organically grow a rich knowledge base.

Einstein - The admin panel is built using the MERN stack (MongoDb, ExpressJS, ReactJS, and NodeJS). We followed a microservice based architecture and deployed our front-end application and backend API using Heroku. The QnA model scrapes the approved page on a daily basis to add to the knowledge base.

## Challenges we ran into

Our main challenge was integrating all our systems so that all of our applications could seamlessly communicate with each other. We used various APIs including Twilio and Node.js frameworks such as WebSockets and MongoDB as intermediaries that handled communication between systems. We were also challenged initially by the non-robustness of our Azure QnA model, which we addressed through question generation and additional data collection.

## Accomplishments that we're proud of

We are quite proud of how we integrated all our systems so that we could leverage the strengths of Azure, Google Cloud, and the Twilio APIs. Our whole application is entirely automatic! Our application is very scalable, and as we hope to help people with information, we are proud that this should increase our scope for impact with time. We are happy that we learned so much in such a short time.

## What we learned

We learned a lot about using Azure, Google Cloud, and Twilio and about web development, NLP, and application design.

## What's next for IEve: An Organically Improving Voice Assistant for All Information for Everyone

Going forward, we will continue to develop IEve to handle more topics more robustly and aim to promote Einstein and begin crowdsourcing with improved automatic knowledge extraction and updates.

## Try it out

Call +1 (205) 579-8843 to see IEve in action
Check out Einstein at: <https://oosharma.github.io/einstein/>