Skip to content

egidiosalinaro/scherzo-music-platform

Repository files navigation

Scherzo 🎵 Music, for real

An open-source full stack application for music streaming and sharing.
Try it Here!

Table of Contents
  1. About The Project
  2. Getting Started
  3. Roadmap
  4. Contributing
  5. License
  6. Contact

❓ About The Project

Scherzo is the new open-source streaming service that lets you upload your music, listen to any song uploaded, like your favorite songs. You can use it with a free plan or the premium one.

🕹️ Usage

You can sign up / sign in using email and other methods (more coming soon). Some features are for premium users only (during this test period, you can use a fake 4242424242424242 card to subscribe).

  • Your Library: a list of songs uploaded by you. Add more using the + button

  • New Music: latest songs uploaded by all users

  • Player: use it to listen to songs

  • Search: search any song

  • Favorites: you can find here all song you liked using the ♡ button

(back to top)

🧱 Built With

This is a Next.js project bootstrapped with create-next-app.

🖥 Back End

PostgreSQL PostgreSQL

Supabase Supabase

Stripe Stripe

👩‍💻 Front End

Next JS Next JS

React React

Tailwind CSS Tailwind CSS

(back to top)

🎬 Getting Started

I deployed my Next.js app using the Vercel Platform from the creators of Next.js.
Check out the Next.js deployment documentation for more details.

You can also start this app on your local machine, following these steps:

📝 Prerequisites

  • clone this repository

    git clone https://github.com/egidiosalinaro/scherzo-music-platform
  • install all libraries and dependencies needed for this app

    npm install

(back to top)

⚙️ Installation

Once downloaded this repo, you are ready to go.
Now you can:

  • configure your Supabase database as I did

    to match the routes called in this repo, your Supabase database should have two buckets called songs and images, and seven tables called customers, liked_songs, prices, products, songs, subscriptions, users

  • connect your Supabase and Stripe account

    create a .env.local file (you won't find mine because it is in the .gitignore list) containing all the environment variables required for Supabase and Stripe to work, and fill them with your own keys

    NEXT_PUBLIC_SUPABASE_URL=
    NEXT_PUBLIC_SUPABASE_ANON_KEY=
    SUPABASE_SERVICE_ROLE_KEY=
    
    NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=
    STRIPE_SECRET_KEY=
    STRIPE_WEBHOOK_SECRET=
  • start the app locally

    npm run dev

Open http://localhost:3000 with your browser to see Scherzo in action.

(back to top)

🗺️ Roadmap

  • .env.local file containing keys
  • setting up Supabase
  • app and pages configuration
  • creating components with Tailwind classes
  • creating hooks and actions
  • creating providers
  • setting up Stripe

(back to top)

💻 Contributing

I welcome contributions from the open-source community. If you'd like to help improve ToolBox, please follow our contribution guidelines:

  • Report any bugs or issues you encounter by creating a GitHub issue.

  • Suggest new features and improvements by submitting a feature request.

  • Contribute code by forking the repository and opening a pull request.

(back to top)

License

Distributed under the MIT License. See LICENSE for more information.

(back to top)

Contact

egidiosalinaro@gmail.com

(back to top)

Releases

No releases published

Packages

 
 
 

Contributors

Languages