Sound Garden: Music sharing application
Live Demo of Sound Garden
📖 Table of Contents
- ➤ About The Project
- ➤ Overview
- ➤ How to Use the Project
- ➤ Credits ## 📝About The Project Sound Garden is a music sharing application that allows users to:
- Create/Sign in to an account
- Upload/Delete/Edit/Like/Download/Stream songs
- Search for songs
- Like songs, saving them for later listening
- View a list of liked Songs
- View all songs for a Genre
- View uploaded songs
- View profile
- Edit profile details
- View artists by name (Coming soon)
- Change profile banner photo (Coming Soon)
- Search for & View another user's profile (Coming Soon)
☁Overview
This project was created to give users the ability to share music with each other.
The technologies involved are:
1) HTML/CSS (JSX)(Front-End) 2) React.js (Front-end) 3) Firebase (Back-end) 4) Firestore (Database) 5) Google Cloud Functions (To control parts of back-end) 6) Algolia (Search functionality)
The reason I choose these technologies is because React is apart of my main stack, and it's something I use often. HTML/CSS are a must when working with React, due to the nature of JSX. At the beginning of this project I hadn't expanded my development skills into full-stack, which is why I chose to work with the most viable solution for the back-end, which happened to be Firebase. Firebase comes with a lot of built in tools such as Firestore + Google Cloud Functions, which is what I needed to create a functioning database and CRUD system.
Some challenges that I faced were caused by the choice of technologies. The SERN stack would have been the best choice for this application because Firestore is a non-relational database. With a relational database, it would have been much easier to tie information together, and create models before initiating the project. I was able to overcome the obstacles that come with using a non-relational database by implementing cloud functions that gave the database functionality to perform similar to a relational database. Another thing that helped was setting strict rules for the collections within the database.
📖How to Use the Project
Create/Sign in an account

Upload song (Must be logged in)

Stream song

Like song (Must be logged in)

Delete song (Must be logged in)

Edit song (Must be logged in)

Search for songs

View a list of liked Songs (Must be logged in)

View all songs for a Genre

View uploaded songs (Must be logged in)

View profile (Must be logged in)

Edit profile details (Must be logged in)

📜Credits
Khalil Collins


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