Inspiration

In light of Covid-19's quarantine mandates, we face challenges with human interaction and, thus, social networking. Moreover, the music industry has severely declined because of societal isolation. Small-time creators of music and the arts have a hard time sharing their talents with us as their tours and popular venues shut down for public safety reasons. As high school orchestral musicians ourselves, we understand the need to connect to our fellow artists. The connectivity births collaboration, and in turn, makes us better at music production for entertainment purposes. Furthermore, for small-time artists, collaboration can be a tool for promotion- allowing entrance into more venues, creating more tour dates, and reaching a larger audience to spread their craft. By taking advantage of the reliance on our mobile devices to communicate with the rest of society, we hope to create a virtual platform that allows top-notch entertainment for the general populace and in effect, allowing artists to promote their works.

What it does

Spotlight essentially acts as any other social media and networking platform- except its sole purpose is for artists to spread their talents with others. With a simple design and a straightforward user interface, an individual can enjoyably scroll through a "feed" and experience a multitude of musical artists. We decided to take advantage of the special bond we have with our mobile devices and therefore decided to cater solely to a mobile audience, instead of a web application. By creating a mobile application, we hope that the special relationship we have with our phones can be transferred over to Spotlight to increase users and allow musicians to spread their influence over a broader range of virtual audience members. Like any other social media platform, this one will be complete with the user's ability to like videos posted by artists. There is also a link to be directed to the artist’s Spotify page, again, to facilitate further artist promotion and appreciation for their other works. Besides sharing content, the networking capabilities of this platform will facilitate greater connectivity among members of the music community, and lead to more collaboration and the spread of music as an art form. This virtual networking platform can also allow the user to share videos of his own musical abilities with an upload capability. Because the purpose of this application is to share music with other members of the music community, the ability for the user to share his own videos on the platform will hopefully bring artists and fans closer together in a Covid-19 Era.

How I built it

Spotlight’s UI is built with Expo/React Native. This allowed us to maintain a "controlled" environment for the application’s state, allowing for great compatibility with server-side API calls and rendering. The backend of the application was implemented in Node.js, through the use of a MongoDB Atlas instance, which allows the application to automatically store, render, and serve up video files pertaining to hosted music videos and recorded video performances uploaded by artists.

The video scrolling UI is built off of ExpoKit’s Video AV component, which renders the URIs of videos specified in the state of the app. The video components are wrapped in a FlatView component with snap enabled, allowing for a TikTok-Esque scroll interface.

The backend utilizes a MongoDB Atlas database, interfaced with mongoose, multer, multer-gridfs-storage, send-seekable, and grid-fs-stream. The server first initializes a connection to the MongoDB server, establishes the Video schema, and creates the GridFS configuration. When a new video is created in the React Native client, the app pushes a POST request to the backend in the form of a multi-part upload, where multer and the GridFS interface decomposes the file into binary chunks, where it is stored in the MongoDB.

Challenges I ran into

We ran into significant challenges with a live-stream functionality we attempted to implement, but unfortunately, the "eject" function of Expo broke our application.

Balsamiq Sketches

New Wireframe 1 copy

What I learned

We learned a plethora of knowledge in the realm of streaming and buffering video. We had significant troubles that we worked over in regards to the downloading and buffering of videos hosted in our MongoDB implementation. Specifically, we learned that there was a difference between Buffers and Streams and we learned how to allow buffers to accept a byte location request in the Express server.

What's next for Spotlight

We intend for Spotlight to allow artists to share their work with the general public to promote themselves. In future iterations, we hope that it will also possess algorithm capabilities that will enable the content of artists to "trend" based on their popularity and hence, lead to even more recognition for music promotion. Plus, it is planned that accessing a “user profile” can lead to setting an individual’s musical taste. For instance, if they would like to see solely orchestral music, only orchestral music will appear on their “feed.” Expectedly, soon, the application will have a way to monetize artists in addition to promoting them. Besides monetizing the small-time artists as a reward for displaying their musical talents on the virtual platform, we can work together with record labels in an attempt to advance their music careers and assist music companies in finding new voices. Plus, we hope to add a live stream capability to allow artists to better connect to their fanbases and spread more of their works.

Express MongoDB source code: https://repl.it/@usere/appMongoFile

Built With

Share this project:

Updates