This project is a full-stack Spotify clone featuring a user-facing frontend, an admin panel, and a backend server. It aims to replicate core functionalities of Spotify, providing a platform for music streaming and management.
The project is divided into three main parts:
frontend/: The user-facing React applicationadmin/: The admin panel built with Reactbackend/: The server-side application built with Node.js and Express
- Frontend & Admin:
- React
- Tailwind CSS
- Backend:
- Node.js
- Express
- Database:
- MongoDB
- File Storage:
- Cloudinary
- User authentication and authorization
- Browse and search for music
- Create and manage playlists
- Play music with a custom audio player
- Admin panel for managing users, artists, and music content
- Cloud-based music file storage and streaming
Before you begin, ensure you have the following installed:
- Node.js (v14 or later)
- npm or Yarn
- MongoDB
git clone https://github.com/yourusername/spotify-clone.git
cd spotify-clone-
Navigate to the backend directory:
cd backend -
Install dependencies:
npm install
-
Create a
.envfile in the backend directory and add your environment variables:MONGODB_URI=your_mongodb_connection_string JWT_SECRET=your_jwt_secret CLOUDINARY_CLOUD_NAME=your_cloudinary_cloud_name CLOUDINARY_API_KEY=your_cloudinary_api_key CLOUDINARY_API_SECRET=your_cloudinary_api_secret -
Start the backend server:
npm start
-
Open a new terminal and navigate to the frontend directory:
cd frontend -
Install dependencies:
npm install
-
Start the frontend development server:
npm start
-
Open another terminal and navigate to the admin directory:
cd admin -
Install dependencies:
npm install
-
Start the admin panel development server:
npm start
- Frontend: Open your browser and visit
http://localhost:3000 - Admin Panel: Visit
http://localhost:3001(assuming you've set it to a different port) - Backend API: The server will be running on
http://localhost:5000by default
We welcome contributions to improve the Spotify Clone project. Please follow these steps:
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Spotify for inspiration
- React and Tailwind CSS communities for excellent documentation
- Node.js and Express.js for powerful backend capabilities
- MongoDB for flexible data storage
- Cloudinary for efficient media file management
Happy coding! 🎵🚀