WaveTune is a full-featured music streaming web application that allows users to search, play, and manage their favorite songs. Built with Node.js, Express, MongoDB, and EJS, it provides a seamless and modern listening experience with support for media controls, user customization, and real-time streaming from external APIs.
- 🎧 Music Streaming via API: Instantly stream songs fetched from a powerful external music API.
- 🔍 Search Functionality: Search songs dynamically by title or artist in real-time.
- ❤️ Favorites Management: Add or remove songs from your personal favorites list.
- 🖥️ Media Key & Earbud Controls: Control playback (play/pause, next, previous) using hardware keys or earbuds.
- 👤 User Authentication: Register, login, logout, and secure your session via Passport.js.
- 📝 User Profile Update: Easily update user details like name or email.
- 📱 Responsive Design: Optimized for both desktop and mobile.
- 🎛️ Modern UI/UX: Dynamic, intuitive, and animated UI built with custom styles and JS interactions.
| Layer | Technology |
|---|---|
| Frontend | HTML, CSS, JavaScript, EJS |
| Backend | Node.js, Express.js |
| Database | MongoDB, Mongoose |
| Auth | Passport.js, express-session |
| Media | External Music API |
WaveTune/
├── public/ # Static files (CSS, JS, images)
├── routes/ # Express routes
├── models/ # Mongoose schemas
├── views/ # EJS templates
├── middleware.js
├── server.js
└── package.json
- Music content provided via external API
- Icons via Font Awesome
- Built with ❤️ by [Pratyush Ranjan]
- Frontend: HTML, CSS, JavaScript, EJS
- Backend: Node.js, Express.js
- Database: MongoDB
- Authentication: Passport.js
- Music API Integration: Fetches and streams songs dynamically from an external API