Rythmify is a high-performance, feature-rich music streaming application built with Flutter. It combines a sleek UI with powerful audio capabilities, social features, and a robust backend to provide an immersive musical journey.
- Advanced Player: Full-featured player with play/pause, seek, skip, and background playback support powered by
just_audioandaudio_service. - High-Quality Streaming: Optimized audio delivery for a crisp listening experience.
- Track Details: Rich metadata, album art, and artist information.
- Music Feed: Stay updated with the latest releases and community trends.
- Messaging: Built-in messaging system to share music and connect with friends.
- Comments & Likes: Engage with tracks and artists through community discussions.
- Track Sharing: Easily share your favorite music via social media (WhatsApp, etc.).
- Playlist Management: Create, edit, and organize your custom playlists.
- User Profiles: Personalized profiles with your music history and preferences.
- Search: Fast and intuitive search for tracks, artists, and albums.
- Track Upload: Empowering creators to upload and share their own music.
- Authentication: Secure login using Google Sign-In, Apple Sign-In, and standard auth providers.
- Real-time Sync: Instant updates across devices using Supabase.
- Offline Support: Local caching and storage using Hive and Shared Preferences.
- Frontend: Flutter (Dart)
- State Management: Riverpod (Modular & Reactive)
- Backend: Supabase (Auth, Database, Storage)
- Routing: GoRouter
- Audio Engine:
just_audio&audio_service - Database (Local): Hive & Shared Preferences
- UI Components: Material 3, Google Fonts, Shimmer effects, Lucide-style icons.
Rythmify follows a Clean Architecture approach, ensuring the codebase is scalable, maintainable, and testable. The project is organized by features:
lib/
├── config/ # Application-wide configurations (Theme, Constants)
├── core/ # Shared logic, utilities, and common UI components
│ ├── data/ # Common data sources & repositories
│ ├── domain/ # Shared entities & use cases
│ ├── presentation/ # Shared widgets
│ ├── routing/ # Navigation logic (GoRouter)
│ └── services/ # Third-party service integrations
└── features/ # Feature-specific modules
├── authentication/
├── player/
├── track_upload/
├── track/
├── feed/
├── comments/
├── messaging/
├── notifications/
├── profile/
├── playlist/
├── library/
├── search/
├── settings/
└── premium/
Each feature module is further divided into data, domain, and presentation layers to maintain strict separation of concerns.
- Flutter SDK (3.11.1+)
- Dart SDK
- Docker (Optional, for local mock backend)
-
Clone the repository:
git clone https://github.com/your-username/rythmify.git cd rythmify -
Install dependencies:
flutter pub get
-
(Optional) Run local mock API: Rythmify uses a local
json-serverfor development.docker-compose up -d
-
Run the application:
flutter run
| Onboarding | Home Feed | Music Player |
|---|---|---|
Contributions are welcome! Please follow these steps:
- Fork the Project.
- 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.
Made with ❤️ for Music Lovers