Sound Garden: Music sharing application

Live Demo of Sound Garden

📖 Table of Contents

  1. About The Project
  2. Overview
  3. How to Use the Project
  4. Credits ## 📝About The Project Sound Garden is a music sharing application that allows users to:
  5. Create/Sign in to an account
  6. Upload/Delete/Edit/Like/Download/Stream songs
  7. Search for songs
  8. Like songs, saving them for later listening
  9. View a list of liked Songs
  10. View all songs for a Genre
  11. View uploaded songs
  12. View profile
  13. Edit profile details
  14. View artists by name (Coming soon)
  15. Change profile banner photo (Coming Soon)
  16. 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

Create-signin SG

Upload song (Must be logged in)

Upload

Stream song

play song

Like song (Must be logged in)

Like Song

Delete song (Must be logged in)

Delete Song

Edit song (Must be logged in)

Edit song

Search for songs

SEARCH

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

LikedSongs

View all songs for a Genre

GenresPage

View uploaded songs (Must be logged in)

UploadedSongs

View profile (Must be logged in)

ViewProfile

Edit profile details (Must be logged in)

EditProfile

📜Credits

Khalil Collins

Github Profile LinkedIn Profile

Built With

Share this project:

Updates