The Spotify App is a full-stack web application built using the MERN stack (MongoDB, Express.js, React, Node.js) that mimics the functionality of the Spotify music streaming platform. Users can explore music, listen to songs, and search for their favorite tracks, albums, and artists, offering an immersive music experience.
-
User Authentication:
Users can sign up, log in, and manage their account, including authentication via JWT (JSON Web Tokens). -
Song Playback:
Play, pause, and skip songs, mimicking a real music streaming platform with a built-in audio player. -
Playlist Management:
Create, manage, and add songs to personal playlists. -
Album and Artist Pages:
Display detailed pages for albums and artists with their respective songs and albums. -
Responsive Design:
Fully responsive and accessible on desktop, tablet, and mobile devices.
- Frontend: React.js for building a dynamic user interface, handling state management, and rendering components efficiently.
- Backend: Node.js with Express.js for building the RESTful API that interacts with the frontend and MongoDB database.
- Database: MongoDB to store user data, songs, albums, playlists, and more.
- Authentication: JWT (JSON Web Tokens) for secure user authentication.
- APIs: Custom APIs for music data, integrated with the backend to fetch music-related data.
Make sure you have the following installed:
- Clone the repository:
git clone https://github.com/Rishika-108/Spotify-App.git
- Navigate to the project directory:
cd Spotify-App - Install frontend dependencies:
cd frontend npm install - Install backend dependencies:
cd ../backend npm install
-
Start the backend server:
cd backend npm start -
Start the frontend server:
cd frontend npm start -
Open the app in your browser at
http://localhost:3000.
You need to configure your Spotify Developer API key:
- Create an account on Spotify Developer Dashboard.
- Create a new app to get the API key.
- Add your credentials to your environment variables.
Spotify-App/
├── backend/
│ ├── models/ # MongoDB models for storing data
│ ├── routes/ # API routes for handling requests
│ └── server.js # Backend entry point
├── frontend/
│ ├── components/ # Reusable React components
│ ├── pages/ # Pages for each section (Home, Playlist, etc.)
│ ├── context/ # State management with Context API
│ └── App.js # Main React component
├── .env # Environment variables for API keys and configurations
├── .gitignore # Ignored files and folders
├── package.json # Project dependencies
└── README.md # Documentation
Contributions are welcome! To contribute:
- Fork the repository.
- Create a new branch:
git checkout -b feature-name. - Commit your changes:
git commit -m 'Add feature-name'. - Push to the branch:
git push origin feature-name. - Submit a pull request.
This project is licensed under the MIT License.