/Music-Storm

Primary LanguageJavaScript

Logo

MusicStorm

MusicStorm, a SoundCloud clone, is a rendition of the music streaming platform SoundCloud, that allows users to upload, edit and listen to music.
Explore the docs »

View Site · Report Bug · Request Feature

Table of Contents

  1. About The Project
  2. Getting Started
  3. Roadmap
  4. Contributing
  5. Contact
  6. Future Goals

About The Project

Click here to view MusicStorm live!
Screenshot (111)

Overall Structure

Back End

The app was built using Express and Sequelize on the back end with a PostgreSQL database. The backend structure is RESTful with AJAX requests that are fullfilled with JSON Objects. Model associations are used to minimize database queries to the backend, assuring speed and reliability.

Front End

The front end is built with React and Javascript while utilizing Redux architecture, producing a lightning-fast user interface and calling upon dynamically rendered components.

Technologies

Getting Started

Prerequisites

  • NPM
  • Node.js >= 14
  • PostgreSQL

Installation

  • Clone the repo: https://github.com/sonajasani/Music-Storm
  • In /backend run npm install
  • .. then once again in /frontend
  • Create a Postgres database and a user with CREATEDB privileges and a password
  • In /backend create a .env file and declare your environment variables using .env.example as a reference. - To generate a secret, use openssl in your shell: openssl rand -base64 10
  • Initialize your database using sequelize-cli:
    • npx dotenv sequelize db:create
    • npx dotenv sequelize db:migrate
    • npx dotenv sequelize db:seed:all
  • Finally, fire up your servers: run npm start in /backend and once again in /frontend

Roadmap

See the open issues for a list of proposed features (and known issues).

Contributing

Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Contact & Acknowledgements

Future Goals

  • Define React PropTypes
  • Waveform scrub event
  • Player shuffle and repeat
  • Audio player with continuous playback
  • Waveform visualization