https://github.com/cyrus-nodejs/soundplanet
Music Streaming App
https://github.com/cyrus-nodejs/soundplanet
authentication authorization cloudinary cors fullstack-development mern-project redux-toolkit state-management stripe-payments
Last synced: 12 months ago
JSON representation
Music Streaming App
- Host: GitHub
- URL: https://github.com/cyrus-nodejs/soundplanet
- Owner: cyrus-nodejs
- Created: 2024-11-19T05:32:57.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-01-24T03:20:57.000Z (about 1 year ago)
- Last Synced: 2025-01-24T03:24:45.080Z (about 1 year ago)
- Topics: authentication, authorization, cloudinary, cors, fullstack-development, mern-project, redux-toolkit, state-management, stripe-payments
- Language: TypeScript
- Homepage: https://soundplanet.netlify.app
- Size: 278 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Music App - MERN Stack
## Overview
This is a full-stack Music App built using the **MERN (MongoDB, Express, React, Node.js)** stack. The app allows users to explore music content, subscribe to premium plans, create playlists, discover artists, and browse genres. This app is designed to provide a seamless music streaming experience.
### Features:
- **User Authentication**: Secure user login/signup with JWT token authentication.
- **Subscriptions**: Users can subscribe to different music plans (Free, Premium).
- **Playlists**: Create, update, delete, and share custom playlists.
- **Artists & Genres**: Browse music by artist or genre.
- **Search**: Search for songs, artists, and albums.
- **Music Player**: In-app music player for streaming songs.
- **Responsive UI**: Mobile-friendly design built with React.
- **Admin Panel**: Admin users can manage artists, albums, songs, and subscriptions.
## Tech Stack
- **Frontend**: React.js, Redux for state management, React Router for navigation, Material-UI for design components.
- **Backend**: Node.js, Express.js, JWT for authentication, and RESTful API.
- **Database**: MongoDB with Mongoose for object data modeling.
- **Authentication**: JSON Web Tokens (JWT) for secure login.
## Installation
### Prerequisites
- Node.js >= 14.0
- MongoDB (local or cloud instance)
### Setup
1. Clone the repository:
```bash
git clone https://github.com/cyrus-nodejs/soundplanet.git
cd music-app
Install dependencies for both frontend and backend:
bash
Copy
# Install backend dependencies
cd backend
npm install
# Install frontend dependencies
cd ../frontend
npm install
Configure environment variables:
Create a .env file in the backend folder with the following variables:
bash
Copy
MONGO_URL=
TOKEN_KEY=
Run the application:
bash
Copy
# In the backend folder, run:
npm run dev
# In the frontend folder, run:
npm start
Visit http://localhost:3000 to access the app.
Features
1. User Subscription
Users can choose between a free or premium subscription. Premium users have access to exclusive content, ad-free streaming, and unlimited skips.
2. Playlists
Users can create and manage playlists by adding songs from their library. They can share playlists with friends and make them public or private.
3. Artists and Genres
Discover new artists and browse music based on genres. Each artist has a dedicated page with their albums and tracks.
4. Music Streaming
In-app streaming for seamless playback. The music player supports features like shuffle, repeat, and volume control.
5. Search Functionality
Search for your favorite songs, albums, or artists. The search results will dynamically update as you type.
6. Admin Panel
Admins have the ability to upload new music, manage users, and handle subscriptions.
API Endpoints
User Routes
POST /api/register: Register a new user
POST /api/login: User login (returns JWT token)
GET /api/: Get the currently logged-in user’s details
Music Routes
GET /api/artists: Get a list of all artists
GET /api/genres: Get all available genres
GET /api/search: Search for songs
POST /api/createplaylist: Create a new playlist
GET /api/playlist/:id: Get a playlist by ID
Subscription Routes
POST /api/currentsub: Subscribe to a premium plan
Contributing
Contributions are welcome! Please fork the repo and submit pull requests for bug fixes, new features, or improvements.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Contact
For any inquiries or issues, feel free to open an issue on GitHub or contact the project owner.
vbnet
Copy
This README provides a high-level description of your MERN-based music app, along with its features, tech stack, installation instructions, and API endpoint details. You can adapt it to fit your app's specific features.