Moodify is a web application that uses Flask, ReactJS, and the IBM Watson and Genius APIs to determine a user's mood from their inputs and generate a matching song playlist. The project is still under development and is hosted on GitHub.
What is Moodify?
Moodify is a web application built with Flask on the backend and ReactJS on the frontend, designed to connect users to music emotionally. It accepts user inputs that reflect their current mood, determines that mood, and fetches a list of songs to display as a playlist. The application uses MongoDB to store unstructured data such as songs, lyrics, and images, and MySQL to handle user authentication. As noted in its repository, development is still in progress.
Key Features
- Mood-based playlist generation — Moodify determines the user's emotional state from their inputs and curates a playlist around that mood.
- Flask backend — The server-side logic is implemented in Python using the Flask micro-framework.
- ReactJS frontend — The user interface is built with React and styled with Material UI components.
- MongoDB data store — Unstructured song, lyric, and image data is stored in MongoDB.
- MySQL for authentication — User authentication data is managed with a relational MySQL database.
- External API integration — The app connects to the Genius API for song data and IBM Watson for mood analysis.
Who is it for?
- Music enthusiasts — People who want to discover songs that match their current emotional state.
- Developers — Developers who want a full-stack reference implementation using Flask, ReactJS, MongoDB, and external APIs.
- Students — Learners working on emotion-based music recommendation systems can study this project's architecture.
What can you do with Moodify?
- Generate mood-specific playlists — Provide a description of how you feel, and Moodify will fetch a playlist that matches that feeling.
- Access song information — The app's MongoDB stores lyrics and images alongside songs, giving you enriched song data.
- Learn full-stack integration — Use the codebase to see how Flask, ReactJS, and external APIs like Genius and IBM Watson are wired together.
How does Moodify work?
Users input their current mood or feelings into the ReactJS interface. The Flask backend receives the input, uses IBM Watson to determine the mood, and then queries the Genius API to fetch a list of songs that fit that mood. The resulting playlist is displayed to the user, and data is persisted through MongoDB.
FAQ
What APIs does Moodify use?
Moodify integrates the Genius API for song data and the IBM Watson API for analyzing user inputs.
What databases does Moodify use?
Moodify uses MongoDB for unstructured data such as songs, lyrics, and images, and MySQL for user authentication records.
Is Moodify still in development?
Yes, the repository explicitly states that development is still in progress.







