A Modern Progressive Web App for AI-Powered Music Discovery & Offline Listening
MelodyMind is a sophisticated, full-stack Progressive Web App (PWA) that combines artificial intelligence, emotion detection, and comprehensive offline capabilities to deliver a personalized music experience. Built with modern web technologies, it offers seamless music discovery, intelligent recommendations, and unrestricted offline access.
- Intelligent Recommendation Engine: Advanced algorithms powered by Spotify, JioSaavn, and Last.fm APIs
- Multi-Source Integration: Aggregates music from multiple platforms for comprehensive discovery
- Smart String Matching: Sophisticated algorithms for accurate song matching and recommendations
- Real-Time Mood Detection: Uses face-api.js for emotion recognition through camera
- Mood-Based Recommendations: Automatically suggests songs that match your current emotional state
- Adaptive Playlists: Dynamic playlist generation based on detected emotions
- Offline-First Architecture: Full functionality without internet connection
- Service Worker Integration: Background sync and caching for optimal performance
- Responsive Design: Seamless experience across all devices and screen sizes
- Install as App: Native app-like experience with PWA installation
- Advanced Audio Controls: Play, pause, skip, shuffle, repeat, and volume control
- Audio Visualization: Real-time audio waveform and spectrum analysis
- Crossfade & Transitions: Smooth audio transitions between tracks
- Playback Queue Management: Dynamic queue with drag-and-drop reordering
- Authentication-Free Offline Access: Save and play songs offline without mandatory login
- Smart Caching: Intelligent storage management with automatic cleanup
- Offline Library: Dedicated interface for managing cached songs
- Network-Aware Features: Automatic detection and adaptation to connectivity status
- Optional Authentication: Enhanced features with Firebase authentication (optional for offline use)
- Personal Libraries: Liked songs, recently played, and custom playlists
- User Activity Tracking: Optional analytics for personalized recommendations
- Cross-Device Sync: Seamless experience across multiple devices (when authenticated)
- React.js 18+: Modern React with hooks and context
- Progressive Web App: Service workers, web app manifest, offline capabilities
- CSS3 & Responsive Design: Modern styling with mobile-first approach
- Audio API Integration: Web Audio API for advanced audio processing
- Firebase: Authentication, real-time database, and hosting
- Firestore: NoSQL database for user data and preferences
- Service Workers: Background processing and caching strategies
- face-api.js: Real-time facial emotion detection
- Gemini AI: Advanced recommendation processing
- Service Worker: Offline functionality and background sync
- Web App Manifest: Native app installation and appearance
- Cache API: Intelligent caching for songs and app resources
- Background Sync: Seamless data synchronization when online
- Node.js 16+ and npm
- Modern web browser with PWA support
- Camera access (optional, for mood detection)
-
Clone the repository:
git clone https://github.com/powerstone666/MelodyMind.git cd MelodyMind
-
Install dependencies:
npm install
-
Environment Setup:
# Create .env file with your API keys cp .env.example .env # Add your Firebase, Spotify, JioSaavn, and Last.fm API keys
-
Start development server:
npm start
-
Build for production:
npm run build
- Visit the app in a compatible browser
- Look for the "Install App" prompt or browser installation icon
- Install for native app-like experience with offline capabilities
- Search: Use the search bar to find songs, artists, or albums
- Browse: Explore recommendations and curated playlists
- Play: Click any song to start playback with full audio controls
- Save Songs: Click the offline/download button on any song
- Access Offline Library: Navigate to "Offline Songs" section
- Play Offline: Enjoy cached songs without internet connection
- Manage Storage: Remove songs to free up space
- Enable Camera: Allow camera access for mood detection
- Auto-Detection: Let the app analyze your emotions
- Mood Playlists: Receive songs tailored to your current mood
- Sign Up/Login: Enhanced features with personal libraries
- Sync Across Devices: Access your data on multiple devices
- Advanced Analytics: Detailed listening history and insights
MelodyMind/
βββ public/
β βββ sw.js # Service Worker for PWA
β βββ manifest.json # Web App Manifest
β βββ icons/ # PWA icons
βββ src/
β βββ AudioPlayer/ # Audio playback components
β β βββ innersongs.jsx # Main player with offline functionality
β βββ Library/ # Music library components
β β βββ OfflineSongs.jsx # Offline music management
β βββ hooks/ # Custom React hooks
β β βββ useOfflineDetection.js # Network status monitoring
β βββ utils/ # Utility functions
β β βββ serviceWorkerUtils.js # PWA and caching utilities
β βββ components/ # Reusable UI components
βββ README.md
REACT_APP_FIREBASE_API_KEY=your_firebase_key
REACT_APP_GEMINI_API_KEY=your_gemini_key
- Service Worker: Handles caching and offline functionality
- Manifest: Defines app appearance and behavior
- Caching Strategy: Smart caching for optimal performance
- Chrome 80+ (Desktop & Mobile)
- Firefox 75+ (Desktop & Mobile)
- Safari 13+ (Desktop & Mobile)
- Edge 80+
- Service Worker support
- Web App Manifest
- Cache API
- Background Sync (where supported)
We welcome contributions! Please see our Contributing Guidelines for details.
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature
- Commit changes:
git commit -m 'Add amazing feature'
- Push to branch:
git push origin feature/amazing-feature
- Open a Pull Request
- ESLint configuration for code quality
- Prettier for code formatting
- Component-based architecture
- PWA best practices
- β Offline Functionality: Complete app works without internet
- β Installable: Add to home screen on mobile/desktop
- β Responsive: Adaptive design for all screen sizes
- β Fast Loading: Service worker caching for instant loads
- β Background Sync: Data sync when connection restored
- β Push Notifications: Stay updated with new features (optional)
- Optional Authentication: Core features work without account creation
- Local Storage: Offline songs stored locally on your device
- No Tracking: Minimal data collection, user privacy respected
- Secure APIs: All external API calls secured and rate-limited
This project is licensed under the MIT License - see the LICENSE file for details.
- AI/ML: Google's Gemini AI for advanced recommendations
- Computer Vision: face-api.js for emotion detection
- Community: Open source contributors and music enthusiasts
Made with β€οΈ by the MelodyMind Team
Experience the future of music discovery with AI-powered recommendations and seamless offline listening.