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 repository is part of GirlScript Summer of Code (GSSoC) 2025!
We welcome all contributors participating in GSSoC to collaborate, learn, and make an impact together. Whether you're new to open source or a seasoned developer, we value your contributions!
| Difficulty Level | Points Awarded |
|---|---|
| Level 1 | 3 - 4 Points |
| Level 2 | 5 - 7 Points |
| Level 3 | 8 - 10 Points |
β Points are awarded based on the quality, complexity, and impact of the PR. Maintainers may adjust values depending on effort and innovation.
Thanks to all our amazing contributors! π
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.
