mani-barathi / Octave

Music🎵 streaming web-app

Home Page:https://octave-music.web.app

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Octave

A Music Streaming Web App developed with ReactJs🚀 and Firebase🔥

Click Here to view the Live Website

Technology Used

React Redux Firebase Material-UI React-Router-Dom



📸 Design Preview

Functionalities

  • SongList (Current Playlist)
    User can add and remove Songs to the SongList. SongList is Implemented using Browser's Session Storage for saving the Songlist temporarily for the Current Session.

  • Favourites and Playlist
    User can add songs to their Favourites List or can create their own Playlist.

  • Recently Played Songs
    The Recently Played Songs are stored in Local Storage.

  • Media Session API
    Media Session allows the user to Control the playing song using Keyboard buttons. Essentially allowing user to know what song is playing and to control it, without needing to open the Webpage. Check src/Player.js Component for the code Implementation. (Click Here to see the Docs)

🛠 Setup (development)

  • Clone the repo, and cd into it
  • Install all the dependencies from package.json
  • Create a firebase project and enable Firestore database, Google login and Email-Password for Authentication
  • Create a file .env and place firebase project Keys inside as shown in .env.example
  • Run app by typing npm start in command line
  • Make sure to read the Note section below to know about setting up Indexes in firestore

📝 Note

You will have to create an Index in firestore, as PlayListPage, LibraryPage uses Nested Queries to fetch data from Firestore. While Developing in localhost there will be an error in Browser console stating you to create an Index in Firestore. That Error will provide a link to create an Index in Firestore , you can click on the link and create an Index. (This Error will be solved after that particular Index is created)

About

Music🎵 streaming web-app

https://octave-music.web.app

License:MIT License


Languages

Language:JavaScript 84.0%Language:CSS 13.5%Language:HTML 2.5%