Inspiration
Silent discos require DJs, specialized equipment, software, and many more complicated other technical things. However, almost everyone already has a wireless or even wired headphones/earbuds. We aim to make silent discos accessible to all with our application SilentDisco.
What it does
Silent disco allows for any number of users to DJ four channels for a silent disco our database of over 1000 songs. This is done since each DJ client writes to a single database table, which listeners fetch the latest information from. Listeners can switch between the four channels and listen to whichever channel they want.
How we built it
We first used Adobe XD and Adobe Illustrator to prototype the site. We then implemented this to create the final product. We use a flask server to connect the front end to a SQL database (cockroachDB) as well as API endpoints. We implemented syncing using the cockroachDB instead of streaming, to allow for atomicity, consistency, isolation, and durability. Djs periodically sync their current time, time of song, and current song to the database. CockroachDB handles the multiple DJs by writing the most up to date into a single database, which clients then sync their music to.
Our visual effects are done using wave.js, and we created a database of over 1000 non-copyright songs by scraping from https://ncs.io/ with beautiful soup.
What we learned
Some of us learned bootstrap for the first time, and we also learned about different ways to stream or sync audio between multiple devices. We also learned to use SQL/cockroachDB for the first time as well as scraping using Beautiful Soup
What's next for Silent Disco
- Search function
- Filter by genre
- Create phone app for background play
- Add more/custom songs
Built With
- adobe-illustrator
- adobe-xd
- beautiful-soup
- cockroachdb
- flask
- python
- sql
- wave.js

Log in or sign up for Devpost to join the conversation.