Moodify is an intelligent music recommendation web application that suggests songs based on a user’s mood, preferences, and interaction style.
It combines AI mood detection, chat-based interaction, manual selection, and real-time streaming to deliver a personalized music experience.
- Chat-based Mood Detection (Conversational UI)
- Manual Mood Selection
- AI Emotion Detection using Hugging Face models
- Supports dynamic mood mapping to music genres
- Mood-based song recommendations
- Language-aware suggestions (based on user profile)
- Artist-based and manual search
- YouTube-powered streaming
- iTunes-based metadata searching
- Global persistent audio player
- Background audio continues across pages
- Stream full video in a dedicated Stream page
- Smooth transition between audio ↔ video playback
- Next / Previous controls work across playlists, favorites, and history
- Firebase Authentication (Email & Google login)
- User profile with:
- Profile picture
- Preferred languages
- Favorites, History, and Playlists
- Persistent listening state across navigation
- Firebase Authentication & Storage
- Firestore for user data
- Express backend with modular architecture
- Environment variable protection
MOODIFY/
│
├── backend/ # Node.js + Express backend
│ ├── routes/
│ ├── controllers/
│ ├── services/
│ ├── middlewares/
│ ├── utils/
│ ├── server.js
│ └── .env
│
├── frontend/ # React + Tailwind frontend
│ ├── src/
│ │ ├── components/
│ │ ├── pages/
│ │ ├── services/
│ │ ├── firebase/
│ │ ├── utils/
│ │ └── App.js
│ └── .env
│
├── package.json # Root scripts
└── README.md- React.js
- Tailwind CSS
- React Router
- Firebase SDK
- YouTube IFrame Embed
- Node.js
- Express.js
- Axios
- YouTube Data API
- iTunes Search API
- Hugging Face Inference API
- Firebase Authentication
- Firestore Database
- Firebase Storage
-
User logs in using Email or Google Authentication
-
User selects mood via:
- Chat-based interaction
- Manual mood selection
- AI mood detection
-
Backend fetches songs using mood-based keywords
-
Recommendations are displayed to the user
-
Audio starts playing in the global background player
-
User can:
- Add songs to favorites
- Add songs to playlists
- View listening history
-
Clicking Stream opens full video playback
-
Returning from stream resumes background audio playback
Below are screenshots for each page (images are in the images/ folder):
- Intro page
- Home
- Manual Selection
- Mood Detection
- Chat Mood Detection
- Recommendations
- Stream pages
- Favorites
- Playlists
- History
- Profile pages












