## Inspiration

As music lovers, we often search music pieces online for a variety of purposes; however, one may not always remember the piece name despite being able to hum the tune or fundamental chord of a song. This inspired us to create Me♪o (pronounced “melo” in melody), a web app that acts as a search engine specifically for musical pieces.

## What it does

Melo is a music search engine designed to help musicians find the musical pieces that they are looking for. Songs can be searched in a traditional manner by name, artist, categories, etc.; however, a feature unique to Melo is that songs can be searched by a subset of notes that appear in them. In other words, users can enter notes in both staff and numbered musical notation to find songs in which the group of notes appear.

## How we built it

We created our project with React and had two main pages (different routes). The first page (Home) contains the title and a search box which receives the data from the user and returns the musical pieces that have matching results. To get this info, we needed a database. Originally, we planned to use CockroachDB, but ended up using a JSON file as our backend since we were running out of time. The second page is a user guide to our webapp with a link to our GitHub repository, if the users choose to view the source code.

## Challenges we ran into

* Getting CockroachDB to work with React (this took a significant amount of our time)
* Getting the backend to deploy (JSON file)
* Miscommunication between teammates
* Waking up + working while sleep deprived
* We had too much fun :D

## Accomplishments that we're proud of

* Coded a full web app
* Used a server for backend
* Deployed the app
* We did ittt

## What we learned

We learned how to do API calls with React’s fetch functions. We learned to retrieve JSON data and convert it to readable and quantifiable results.

## What's next for Me♪o

* Incorporate a SQL database
* Convert sounds into notes and search database for similar songs/musical pieces
* Improve UI
* Personalized output based on user data (i.e. location)
* Add additional features: filters, sharing
## Inspiration

Inspired by Hume.ai's unique LLM approach, we decided to build a tool to help others understand their expressions they give off during their conversations and speeches, while also as a developer to better understand Hume's capabilities.

## What it does

Given a text input and a list of emotions, it provides a simple UI/UX with Gen AI-generated tags of the text indicate how expressive of each emotion you should to make your speeches impressible. Afterwards it summarizes your results, comparing with the provided guidelines, and ultimately provides a powerful tool for people to routinely practice their public speaking skills.

## How we built it

We used FastAPI backend + Next.js frontend. Our sentence similarity ML endpoint was also hosted on an AWS EC2 instance, as we expect higher stability from such infra. :)

## Challenges we ran into

We ran into websockets streaming randomly cutting off.

## Accomplishments that we're proud of

We are proud of building end-to-end our application, despite having spent much time exploring new APIs at workshops and just learning more about the startups tabling and others' backgrounds and projects.

## What we learned

We learned how to prototype end-to-end GenAI products using multimodality like speech-to-text for the first time, some CSS styling tricks.

## What's next for Speak Smart

* Enhanced UI/UX through more user surveys
* More robust end-to-end integration
* Smarter metrics created to optimize efficiency and reduce variance in our outputs
* Explore new features such as video integration of famous speeches and their speakers to more effectively learn how to become a better speaker
## What it does

MusiCrowd is an interactive democratic music streaming service that allows individuals to vote on what songs they want to play next (i.e. if three people added three different songs to the queue the song at the top of the queue will be the song with the most upvotes). This system was built with the intentions of allowing entertainment venues (pubs, restaurants, socials, etc.) to be inclusive allowing everyone to interact with the entertainment portion of the venue.

The system has administrators of rooms and users in the rooms. These administrators host a room where users can join from a code to start a queue. The administrator is able to play, pause, skip, and delete and songs they wish. Users are able to choose a song to add to the queue and upvote, downvote, or have no vote on a song in queue.

## How we built it

Our team used Node.js with express to write a server, REST API, and attach to a Mongo database. The MusiCrowd application first authorizes with the Spotify API, then queries music and controls playback through the Spotify Web SDK. The backend of the app was used primarily to the serve the site and hold an internal song queue, which is exposed to the front-end through various endpoints.

The front end of the app was written in Javascript with React.js. The web app has two main modes, user and admin. As an admin, you can create a ‘room’, administrate the song queue, and control song playback. As a user, you can join a ‘room’, add song suggestions to the queue, and upvote / downvote others suggestions. Multiple rooms can be active simultaneously, and each room continuously polls its respective queue, rendering a sorted list of the queued songs, sorted from most to least popular. When a song ends, the internal queue pops the next song off the queue (the song with the most votes), and sends a request to Spotify to play the song. A QR code reader was added to allow for easy access to active rooms. Users can point their phone camera at the code to link directly to the room.

## Challenges we ran into

* Deploying the server and front-end application, and getting both sides to communicate properly.
* React state mechanisms, particularly managing all possible voting states from multiple users simultaneously.
* React search boxes.
* Familiarizing ourselves with the Spotify API.
* Allowing anyone to query Spotify search results and add song suggestions / vote without authenticating through the site.

## Accomplishments that we're proud of

Our team is extremely proud of the MusiCrowd final product. We were able to build everything we originally planned and more. The following include accomplishments we are most proud of:

* An internal queue and voting system
* Frontloading the development & working hard throughout the hackathon > 24 hours of coding
* A live deployed application accessible by anyone
* Learning Node.js

## What we learned

Garrett learned javascript :) We learned all about React, Node.js, the Spotify API, web app deployment, managing a data queue and voting system, web app authentication, and so so much more.

## What's next for Musicrowd

* Authenticate and secure routes
* Add IP/device tracking to disable multiple votes for browser refresh
* Drop songs that are less than a certain threshold of votes or votes that are active
* Allow tv mode to have current song information and display upcoming queue with current number of votes