A full-stack music streaming app inspired by Spotify, built using modern technologies like Flutter, Spring Boot, PostgreSQL, Redis, Hive, Riverpod, and JWT Authentication. The app supports real-time music features, offline access, caching, and secure login functionality.
- Flutter: Cross-platform mobile development framework.
- MVVM Architecture: Clean separation between business logic, state, and UI.
- Riverpod: Powerful state management and dependency injection.
- Hive: Local storage for offline songs and cached user data.
- Http: For making HTTP requests to backend APIs.
- JWT: Used for secure token-based authentication.
- Audio Player: For local and streaming playback.
- Spring Boot: RESTful API development.
- Spring Security + JWT: For stateless authentication and user authorization.
- Redis: In-memory cache to optimize performance.
- PostgreSQL: Relational database to store all persistent data.
- Cloudinary (or Local Storage): To manage and serve audio/media files.
The Flutter frontend follows the MVVM architecture to ensure separation of concerns and better testability.
Why MVVM?
- π§ ViewModel handles business logic (separation of concerns)
- β»οΈ Riverpod enables reactive UI by watching ViewModel state
- πΎ Repository abstracts data source (API/Local)
- π JWT-based login & signup
- β€οΈ Like and unlike songs
- β―οΈ Local audio playback
- π Recently played and favorites
- π Create & manage playlists
- π§ Redis cache for liked songs and trending lists
- π§Ύ JWT-secured API endpoints
- π Song/media upload and streaming
- π API logging and error handling
Redis is used to:
- Cache liked songs for faster access
- Store trending or recently played songs
- Reduce repeated DB queries for frequently accessed data
This drastically improves performance and response time for user-facing APIs.
- Login and signup return a secure JWT token
- Token is stored in Hive on the client side
- Every protected API requires the JWT token in the
Authorizationheader - Token expiration and refresh handled at the backend level
- π Full-text song & artist search
- π Repeat/shuffle playback
- π Music streaming instead of local play
- π€ Social features: follow users, share playlists
- π§ AI-based song recommendations
- π Admin dashboard for uploads and analytics
Meet Bhuva
If you're passionate about Flutter, Spring Boot, or full-stack development β
π¬ Connect on LinkedIn
π¬ Feel free to reach out if you want to learn or discuss anything related to this project!
#Flutter #SpringBoot #PostgreSQL #Redis #Hive #Riverpod #JWT #MVVM #MobileDevelopment #BackendEngineering #FullStackDevelopment #SpotifyClone