How xeenjair/flowmusic works
Flowmusic is an Electron music player with a React interface. The main user workflow enters through the app shell, where users browse and control playback, view lyrics, and configure the experience; music-provider requests and desktop features are mediated by Electron. The sampled code confirms several UI composition and lyrics paths, plus Electron’s Yandex API dependency. The README is empty, and some substantial modules—especially the server and unsampled app sections—cannot be characterized confidently from the excerpts, so their connections are left unspecified.
Main entry points: App.jsx App shell · PlayerModeView.jsx Player mode · PlayerProgress.jsx Player progress · index.js React entry
Components 21
Application shell
- App shell
src/App.jsx - React entry
src/index.js
Playback experience
- Player mode
src/components/PlayerModeView.jsx - Lyrics view
src/components/ui/ScrollExpandLyrics.jsx - Player card
src/components/ui/MusicPlayerCard.jsx - Mini player
src/components/MiniPlayer.jsx - Player progress
src/components/PlayerProgress.jsx - Visualizer
src/components/Visualizer.jsx - AI assistant
src/components/AIAssistant.jsx
Accounts and settings
- Email auth
src/components/EmailAuth.jsx - VK auth
src/components/VkAuth.jsx - Yandex auth
src/components/YandexAuth.jsx - Settings
src/components/SettingsView.jsx - Subscription
src/components/SubscriptionModal.jsx
Desktop and providers
- Electron main
electron/main.js - IPC preload
electron/preload.js - Yandex API
electron/yandex-music-api.js - VK Music API
src/services/VkMusicAPI.js - SoundCloud API
src/services/SoundCloudAPI.js
Backend service
- Server
server/index.js
Other components
- Listener
Connections 17
- Listener → App shell: uses
- React entry → App shell: renders
src/index.js - React entry → Mini player: renders
src/index.js - App shell → Player mode: renders
src/App.jsx - App shell → Lyrics view: renders
src/App.jsx - App shell → Settings: renders
src/App.jsx - App shell → Email auth: renders
src/App.jsx - App shell → Visualizer: uses
src/App.jsx - App shell → Player progress: uses
src/App.jsx - Player mode → Player progress: renders
src/components/PlayerModeView.jsx - Player mode → Settings: renders
src/components/PlayerModeView.jsx - Player mode → Visualizer: renders
src/components/PlayerModeView.jsx - Lyrics view → Player card: renders
src/components/ui/ScrollExpandLyrics.jsx - Player card → Player progress: controls
- Email auth → IPC preload: calls bridge
- VK Music API → IPC preload: sends requests
src/services/VkMusicAPI.js - Electron main → Yandex API: uses
electron/main.js