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 π