A modern social music app built with Flutter that connects with Spotify to share music experiences with friends. Discover new music, share your favorite tracks, and connect with friends through the universal language of music.
- 🎧 Spotify Integration - Seamless connection with your Spotify account
- 👥 Social Music Sharing - Share your favorite tracks and playlists with friends
- 📱 Cross-Platform - Runs on iOS, Android, Web, macOS, Linux, and Windows
- 🎨 Beautiful UI - Modern, intuitive design with smooth animations
- 🔐 Secure Authentication - Safe and secure Spotify OAuth integration
- 📊 Music Discovery - Explore trending tracks and discover new music
- 👤 User Profiles - Create and customize your music profile
- Flutter SDK (3.5.4 or higher)
- Dart SDK
- Spotify Developer Account
- Git
-
Clone the repository
git clone https://github.com/mohammadaminrez/songbuddy.git cd songbuddy -
Install dependencies
flutter pub get
-
Set up environment variables
cp env.example .env
Edit the
.envfile with your Spotify app credentials:SPOTIFY_CLIENT_ID=your_spotify_client_id SPOTIFY_CLIENT_SECRET=your_spotify_client_secret SPOTIFY_REDIRECT_URI=songbuddy://callback
-
Run the app
flutter run
- Go to Spotify Developer Dashboard
- Create a new app
- Set the redirect URI to
songbuddy://callback - Copy your Client ID and Client Secret to the
.envfile
lib/
├── constants/ # App-wide constants (colors, text styles)
├── providers/ # State management (auth provider)
├── screens/ # App screens
│ ├── on_boarding/ # Onboarding flow
│ ├── home_feed_screen.dart
│ ├── profile_screen.dart
│ ├── settings_screen.dart
│ └── splash_screen.dart
├── services/ # API services
│ ├── auth_service.dart
│ └── spotify_service.dart
├── theme/ # App theming
├── widgets/ # Reusable UI components
└── main.dart # App entry point
- Framework: Flutter 3.5.4+
- Language: Dart
- State Management: Provider
- HTTP Client: http package
- Secure Storage: flutter_secure_storage
- Environment Variables: flutter_dotenv
- URL Handling: url_launcher
- Connectivity: connectivity_plus
- ✅ iOS
- ✅ Android
- ✅ Web
flutter test# Android
flutter build apk --release
# iOS
flutter build ios --release
# Web
flutter build web --releaseflutter analyzeWe welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow the existing code style
- Write tests for new features
- Update documentation as needed
- Ensure all tests pass before submitting
This project is licensed under the MIT License - see the LICENSE file for details.
- Spotify for providing the amazing API
- Flutter team for the excellent framework
- All contributors who help make this project better
If you encounter any issues or have questions:
- Open an issue on GitHub
- Join our community discussions
Made with ❤️