## Inspiration

People's criteria for connecting with others online have up till now been predominantly superficial. We wanted to create something that proves that human connections are initiated by a lot more than just looks. We are bringing that idea into the spotlight by taking advantage of the users' birth dates. We imagine a situation where the zodiac world becomes a revolutionary idea for our modern social media reality.

## What it does

It is a chatting app that hides the chatters' personal information until after a few minutes of texting. If they want to know more about each other they can explore more about each others' personal information step by step and potentially get closer to them. The unique part of the app is that we aspire to match people by implementing an algorithm based on their zodiac signs to match them up.

## How we built it

Based on react-native we use 'react-native-router-flux','react-native-gifted-chat' to implement the UI and use JavaScript to build the zodiac matches algorithm.

## Challenges we ran into

We were all unfamiliar with app making, and we decided to build an android app from scratch. It took a lot of time until all 4 of us got the hang of the React Native. Especially the connection between different components gave us a really hard time. We kept on going, though, because the entire process was extremely simulating in terms of learning.

## Accomplishments that we're proud of

Within 36 hours we learned how to build a chat-room environment without any prior knowledge.

## What we learned

We gained familiarity with JavaScript and React-Native and very passionately experienced the "never give up" spirit. We also feel like we've built uniquely valuable teamwork skills. It is one thing to learn something on your own, and it is another to find other people (who you had never met before this hackathon) who are equally passionate about learning and do it all together. We definitely believe that these skills will follow us on our academic and professional paths.

## What's next for Who

We are planning to:
1) Make a time limit function
2) Makes the UI interface better
3) Considerably improve the matching algorithm, since the one presented is a very simplified version
4) Make the app interactive between two people.
5) Add fancy features to people's profiles that will allow even more interaction, such as first and last impressions.
6) Advertise the zodiac sign aspect of the app in a way that it sounds funny, enjoyable and surprisingly accurate.
## Inspiration

During these trying times, the pandemic impacted many people by isolating them in their homes. People are not able to socialize like they used to and find people they can relate with.
For example, students who are transitioning to college or a new school where they don’t know anyone. Matcher aims to improve students' mental health by matching them with people who share similar interests and allows them to communicate. Overall, its goal is to connect people across the world.

## What it does

The user first logs in and answers a series of comprehensive, researched backed questions (AI determined questions) to determine his/her personality type. Then, we use machine learning to match people and connect them. Users can email each other after they are matched!

Our custom Machine Learning algorithm used K-Means Algorithm, and Random Forest to study people's personalities.

## How we built it

We used React on the front end, Firebase for authentication and storage, and Python for the server and machine learning.

## Challenges we ran into

We all faced unique challenges but losing one member mid way really damped our spirits and limited our potential.

* Gordon: I was new to firebase and I didn’t follow the right program flow in the first half of the hackathon.
* Lucia: The challenge I ran into was trying to figure out how to properly route the web pages together on React. Also, how to integrate Firebase database on the Front End since I never used it before.
* Anindya: Time management.

## Accomplishments that we're proud of

We are proud that we are able to persevere after losing a member but still managing to achieve a lot. We are also proud that we showed resiliency when we realized that we messed up our program flow mid way and had to start over from the beginning. We are happy that we learned and implemented new technologies that we have never used before. Our hard work and perseverance resulted in an app that is useful and will make an impact to people's lives!

## What we learned

We believe that what doesn't kill you, makes you stronger.

* Gordon: After chatting with mentors, I learnt about SWE practises, Firebase flow, and Flask. I also handled setback and failure from wasting 10 hours.
* Lucia: I learned about Firebase and how to integrate it into React Front End. I also learned more about how to use React Hooks!
* Anindya: I learned how to study unique properties of data using unsupervised learning methods. Also I learned how to integrate Firebase with Python.

## What's next for Matcher

We would like to finish our web app by completing our integration of the Firebase Realtime Database. We plan to add social networking features such as a messaging and video chat feature which allows users to communicate with each other on the web app. This will allow them to discuss their interests with one another right at our site! We would like to make this project accessible to multiple platforms such as mobile as well.
## Inspiration

Databases are wonderfully engineered for specific tasks. Every time someone wants to add a different type of data or use their data with different access pattern, they either need to either use a sub-optimal choice of database (one that they already support), or support a totally new database. The former damages performance, while the latter is extremely costly in both complexity and engineering effort. For example, Druid on 100GB of time series data is about 100x faster than MySQL, but it's slower on other types of data.

## What it does

We set up a simple database auto-selector that makes the decision of whether to use Druid or MySQL. We set up a metaschema for data -- thus we can accept queries and then direct them to the database containing the relevant data.
Our core technical contributions are a tool that assigns data to the appropriate database based on the input data and a high-level schema for incoming data.

We demonstrated our approach by building a web app, StockSolver, that shows these trade-offs and the advantages of using 1DB for database selection. It has both time-series data and text data. Using our metaschema we and 1DB can easily mix-and-match data between Druid and MongoDB. 1DB finds that the time-series data should be stored on Druid, while MongoDB should store the text data. We show the results of making these decisions in our demo!

## How we built it

We created a web app for NASDAQ financial data. We used react and node.js to build our website. We set up MongoDB on Microsoft's Cosmos DB and Druid on the Google Cloud Platform.

## Challenges we ran into

It was challenging just to set up each of these databases and load large amounts of data onto them. It was even more challenging to try to load data and build queries that the database was not necessarily made for in order to make clear comparisons between the performance of the databases in differ use-cases. Building the queries to back the metaschema was also quite challenging.

## Accomplishments that we're proud of

Building an end-to-end system from databases to 1DB to our data visualizations.

## What we learned

We collectively had relatively little database experience and thus we learned how to better work with different databases.

## What's next for 1DB: One Database to rule them all

We would like to support more databases and to experiment with using more complex heuristics to select among databases. An extension that follows naturally from our work is to have 1DB track query usage statistics and over time, make the decision to select among supported databases. The extra level of indirection makes these switches natural and can be potentially automated.