## Inspiration

Social media today is focused on connecting users who share similar friend circles and interests. The recommendations that show up on users' feeds are geared towards their current beliefs, leading to increasingly polarized iterations of the information in the hopes of keeping them online for extended periods of time. This way of connecting users results in "echo chambers" of experiences, ideologies, and culture.

Common Grounds is fundamentally built with the purpose of connecting users who might not share the traits that traditional social media looks for in potential connections, but who could still be good friends given the opportunity.

## Additional Background Info

Traditional social media is designed around the idea of a centralized network. Users accrue an increasing number of followers and likes. In recent years this has led to the rise of influencers, people who amass large followings on social media and thus have a disproportionate influence on others despite their knowledge and credibility on any given topic. This means that a retweet or post by a prominent figure on a supposed rumor could lead to its rapid spread into a common misperception.

Common Grounds is aimed at building an egalitarian network of connections where one accrues "friends" not because they already have a large following or because they're a model, but because of the merit of their ideas. Further, because there are no followers or likes, users can focus on building meaningful connections in a stress-free environment.

## What it does

A social platform that uses OpenAI’s GPT-3 language prediction model to generate prompts designed to **spark conversation**, and to form connections between people with seemingly **differing** opinions.

* ML-generated questions and follow-up prompts
* Smart matching to pair users with differing opinions
* Video calling + option to mute/unmute
* Option to add & remove friends
* Dashboard to view weekly stats

Because there's no search feature for friends, no publicly-viewable number of followers, and therefore an absence of influencers, users build authentic relationships in an environment where there isn't pressure to increase their numbers of followers or likes.

## How we built it

Common Grounds is composed of two main components: a React frontend and a Python backend server. On the frontend, we use Firebase Auth for login, Twilio Video for video calling, and WebSockets for live, bidirectional client-server communication. Our frontend uses the NextJS React framework and is deployed to Vercel.

On the backend, we used the AIOHTTP Python library to serve HTTP and Websocket requests, Firestore for data persistence, Twilio Video for video calling, and OpenAI GPT-3 for intelligent discussion prompt generation. Our backend is deployed to Azure web apps.

## Challenges we ran into

* Designing a cohesive user experience
* Deploying the backend server and setting up SSL
* Complex state management and WebSocket connection issues on the frontend

## What's next for Common Grounds

* Closed Captioning: for increased accessibility for those who may be deaf or hearing-impaired could be extended to live language translation to increase diversity of users
* Direct Messaging: allow users to message their connections, to plan times to continue their conversations
* More Sophisticated Matching & Prompts: over time, learn what type of matches yield the most meaningful discussion based on statistics such as duration of call and friend rate
## Inspiration

There has never been a more relevant time in political history for technology to shape our discourse. Clara AI can help you understand what you're reading, giving you political classification and sentiment analysis so you understand the bias in your news.

## What it does

Clara searches for news on an inputted subject and classifies its political leaning and sentiment. She can accept voice commands through our web application, searching for political news on a given topic, and if further prompted, can give political and sentiment analysis. With 88% accuracy on our test set, Clara is nearly perfect at predicting political leaning. She was trained using random forest and many hours of manual classification. Clara gives sentiment scores with the help of IBM Watson and Google Sentiment Analysis APIs.

## How we built it

We built a fundamental technology using a plethora of Google Cloud Services on the backend, trained a classifier to identify political leanings, and then created multiple channels for users to interact with the insight generated by our algorithms.

For our backend, we used Flask + Google Firebase. Within Flask, we used the Google Search Engine API, Google Web Search API, Google Vision API, and Sklearn to conduct analysis on the news source inputted by the user.

For our web app we used React + Google Cloud Speech Recognition API (the app responds to voice commands). We also deployed a Facebook Messenger bot, as many of our users find their news on Facebook.

## Challenges we ran into

Lack of wifi was the biggest, putting together all of our APIs, training our ML algorithm, and deciding on a platform for interaction.

## Accomplishments that we're proud of

We've created something really meaningful that can actually classify news. We're proud of the work we put in and our persistence through many caffeinated hours. We can't wait to show our project to others who are interested in learning more about their news!

## What we learned

How to integrate Google APIs into our Flask backend, and how to work with speech capability.

## What's next for Clara AI

We want to improve upon the application by properly distributing it to the right channels. One of our team members is part of a group of students at UC Berkeley that builds these types of apps for fun, including BotCheck.Me and Newsbot. We plan to continue this work with them.
## Inspiration

Rizzmo was heavily inspired by our dissatisfaction for Gizmo's poor-quality science simulations.

## What it does

Rizzmo is low-poly exploration game of a thriving coral reef region. Learn about the coral reef ecosystem by exploring around in a submarine and clicking on a various marine life for their descriptions and biological fun facts.

## How we built it

The project was built with Unity, and thus C#. Some of the 3D models were made using Blender.

## Challenges we ran into

Switching from Unreal to Unity / Setting up Unity Version Control / Pulling and Checking in with Unity Workspace / Underwater rendering (no tutorial)

## Accomplishments that we're proud of

Visually appealing / Completing the project / Quickly learning Unity & Blender

## What we learned

How to use Blender / How to use Unity 3D / How to do underwater rendering / How to animate in Unity / How to power nap

## What's next for Rizzmo

Implement more STEM related simulations and make it more accessible.