## 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
Demo: <https://youtu.be/cTh3Q6a2OIM?t=2401>

## Inspiration

Fun Mobile AR Experiences such as Pokemon Go

## What it does

First, a single player hides a virtual penguin somewhere in the room. Then, the app creates hundreds of obstacles for the other players in AR. The player that finds the penguin first wins!

## How we built it

We used AWS and Node JS to create a server to handle realtime communication between all players. We also used Socket IO so that we could easily broadcast information to all players.

## Challenges we ran into

For the majority of the hackathon, we were aiming to use Apple's Multipeer Connectivity framework for realtime peer-to-peer communication. Although we wrote significant code using this framework, we had to switch to Socket IO due to connectivity issues.

Furthermore, shared AR experiences is a very new field with a lot of technical challenges, and it was very exciting to work through bugs in ensuring that all users have see similar obstacles throughout the room.

## Accomplishments that we're proud of

For two of us, it was our very first iOS application. We had never used Swift before, and we had a lot of fun learning to use xCode. For the entire team, we had never worked with AR or Apple's AR-Kit before.

We are proud we were able to make a fun and easy to use AR experience. We also were happy we were able to use Retro styling in our application

## What we learned

-Creating shared AR experiences is challenging but fun
-How to work with iOS's Multipeer framework
-How to use AR Kit

## What's next for ScavengAR

* Look out for an app store release soon!
## Inspiration

BThere emerged from a genuine desire to strengthen friendships by addressing the subtle challenges in understanding friends on a deeper level. The team recognized that nuanced conversations often go unnoticed, hindering meaningful support and genuine interactions. In the context of the COVID-19 pandemic, the shift to virtual communication intensified these challenges, making it harder to connect on a profound level. Lockdowns and social distancing amplified feelings of isolation, and the absence of in-person cues made understanding friends even more complex. BThere aims to use advanced technologies to overcome these obstacles, fostering stronger and more authentic connections in a world where the value of meaningful interactions has become increasingly apparent.

## What it does

BThere is a friend-assisting application that utilizes cutting-edge technologies to analyze conversations and provide insightful suggestions for users to connect with their friends on a deeper level. By recording conversations through video, the application employs Google Cloud's facial recognition and speech-to-text APIs to understand the friend's mood, likes, and dislikes. The OpenAI API generates personalized suggestions based on this analysis, offering recommendations to uplift a friend in moments of sadness or providing conversation topics and activities for neutral or happy states. The backend, powered by Python Flask, handles data storage using Firebase for authentication and data persistence. The frontend is developed using React, JavaScript, Next.js, HTML, and CSS, creating a user-friendly interface for seamless interaction.

## How we built it

BThere involves a multi-faceted approach, incorporating various technologies and platforms to achieve its goals. The recording feature utilizes WebRTC for live video streaming to the backend through sockets, but also allows users to upload videos for analysis. Google Cloud's facial recognition API identifies facial expressions, while the speech-to-text API extracts spoken content. The combination of these outputs serves as input for the OpenAI API, generating personalized suggestions. The backend, implemented in Python Flask, manages data storage in Firebase, ensuring secure authentication and persistent data access. The frontend, developed using React, JavaScript, Next.js, HTML, and CSS, delivers an intuitive user interface.

## Accomplishments that we're proud of

* Successfully integrating multiple technologies into a cohesive and functional application
* Developing a user-friendly frontend for a seamless experience
* Implementing real-time video streaming using WebRTC and sockets
* Leveraging Google Cloud and OpenAI APIs for advanced facial recognition, speech-to-text, and suggestion generation

## What's next for BThere

* Continuously optimizing the speech to text and emotion analysis model for improved accuracy with different accents, speech mannerisms, and languages
* Exploring advanced natural language processing (NLP) techniques to enhance conversational analysis
* Enhancing user experience through further personalization and more privacy features
* Conducting user feedback sessions to refine and expand the application's capabilities