How namhuynh1234kk-blip/melody works
MelodyVN is a browser-based music listening app with a Node/Express and MySQL backend. Its main workflow loads songs into the web app, lets listeners select and play tracks, and uses the server for catalog data. The product also documents or exposes favorites, discovery, accounts/admin song management, AI playlists, voice commands, visualizations, and shared listening rooms. The sampled excerpts show key client/server calls, but not every route or subsystem implementation, so uncertain wiring is omitted.
Main entry points: server.js API and socket server · app.js Web app · player.js Audio player and queue · voice.js Voice assistant
Components 16
Web listening
- Web app
js/app.js - App page
index.html - Local playlist
js/data.js - Catalog and discovery
js/app.js - Accounts and admin
js/app.js
Playback experience
- Audio player and queue
js/player.js - Audio visualizer
js/visualizer.js - Voice assistant
js/voice.js - AI mascot
js/melody3d.js
Backend services
- API and socket server
server.js - MySQL data
database/melodyvn.sql
Social listening
- Room client
js/room.js
Other components
- Listener
- OpenAI API
- Browser audio
- Browser speech APIs
Connections 19
- Listener → App page: opens
- App page → Web app: loads interface
- Web app → Audio player and queue: initializes
- Web app → Catalog and discovery: requests songs
- Catalog and discovery → API and socket server: fetches catalog
- API and socket server → MySQL data: queries
- Web app → Accounts and admin: requests account actions
- Accounts and admin → API and socket server: calls account APIs
- Web app → Local playlist: loads and saves
- Audio player and queue → Browser audio: plays audio
- Audio visualizer → Browser audio: analyzes playback
- Voice assistant → Browser speech APIs: recognizes and speaks
- Voice assistant → Web app: invokes AI playlist
- Web app → API and socket server: requests AI playlist
- API and socket server → OpenAI API: requests AI parsing
- API and socket server → MySQL data: queries playlist tracks
- Room client → API and socket server: exchanges room events
- Audio player and queue → API and socket server: broadcasts room playback
- Audio player and queue → AI mascot: updates playback state