A scalable music streaming platform inspired by Spotify, built using MERN Stack + PostgreSQL and powered by a microservices architecture. This project focuses on real-world system design, service separation, and production-ready deployment.
🚀 This is my first microservices-based project, built after learning core microservices concepts.
- User authentication & authorization (JWT)
- Browse & stream music
- Create and manage playlists
- Responsive Spotify-like UI
- Secure music streaming
- Admin authentication
- Upload & manage songs
- Manage playlists
- Control platform content
- Microservices-based backend
- Independent services for scalability
- Redis integration for performance optimization
- Cloud deployment using AWS EC2
- React.js
- Axios
- Tailwind CSS
- HTML5 Audio API
- Node.js
- Express.js
- MongoDB
- PostgreSQL
- Typescript
- Redis
- JWT Authentication
- AWS EC2
- Nginx
- PM2
- Git & GitHub
This project follows a distributed microservices approach, where each service handles a specific responsibility.
| Service | Responsibility |
|---|---|
| User Service | Authentication, user management |
| Admin Service | Admin access, song & playlist management |
| Song Service | Uploading, streaming, caching music |
| Frontend | User interface (React) |
Each service runs independently and communicates via APIs, making the system scalable and maintainable.
- JWT-based authentication
- Role-based access control (User / Admin)
- Secure API endpoints
- Token-based authorization
- User registers / logs in
- JWT token issued
- User streams music
- Admin uploads & manages songs
- Redis caches frequently accessed data
- Microservices handle requests independently
spotify-clone-microservices/
│
├── user-service/
│ ├── controllers/
│ ├── routes/
│ ├── models/
│ └── index.js
│
├── admin-service/
│ ├── controllers/
│ ├── routes/
│ └── index.js
│
├── song-service/
│ ├── controllers/
│ ├── routes/
│ └── index.js
│
├── frontend/
│ ├── src/
│ └── public/
│
└── README.mdgit clone https://github.com/Varunyadavgithub/spotify-microservices.gitcd user-service && npm install
cd ../admin-service && npm install
cd ../song-service && npm install
cd ../frontend && npm installCreate a .env file in each service and add:
PORT=5000
JWT_SECRET=your_secret
DB_URL=your_database_url
REDIS_URL=your_redis_urlnpm start- Deployed on AWS EC2
- Nginx used as reverse proxy
- PM2 for process management
📄 AWS EC2 Deployment Guide 👉 https://drive.google.com/...
- 🎨 Project Images: https://drive.google.com/...
- 📂 Source Code: https://github.com/mep...
- 00:00:00 – Introduction
- 00:00:46 – About Microservices
- 00:06:06 – Project Demo
- 00:11:36 – User Service
- 01:14:43 – Admin Service
- 02:37:54 – Song Service
- 02:55:39 – Redis Integration
- 03:31:23 – Frontend
- 08:17:50 – Deployment
- Real-world microservices design
- MERN + PostgreSQL integration
- Scalable backend architecture
- Redis caching
- Cloud deployment experience
Contributions are welcome! Feel free to fork the repository and submit a pull request.
If you liked this project or want to collaborate:
- 💼 LinkedIn:
your-link - 💻 GitHub:
your-username
⭐ If you found this project useful, don’t forget to star the repo!
I can help you:
- 🔥 Optimize this README for resume & recruiters
- 📊 Add architecture diagrams
- 🧠 Write a microservices explanation section
- 🏷️ Create GitHub topics & tags
Just tell me 👍