About

Moodify AI is an AI-powered web platform that offers personalized music recommendations based on users' mood, listening preferences, and current emotional state. By combining Large Language Models (LLM), natural language processing (NLP)-based semantic analysis, and Spotify API integration, it aims to address the challenges of finding music on digital music platforms (information overload and choice paralysis).

  • 💬 Dialogue-Based AI Music Recommendation: A chat interface powered by LLM (Google Gemini / OpenRouter) that performs real-time sentiment analysis and music curation from user messages.

  • 🎵 Spotify OAuth 2.0 Integration: User profile linking, permission management, and secure data synchronization with Authorization Code Flow.

  • 📻 Browser-Based Audio Streaming: Asynchronous media management for playing and controlling tracks (play/pause/skip) without leaving the browser via Spotify Web Playback SDK integration.

  • 🎨 Dynamic GDI+ Cover Design: Synthesizing deterministic (repeatable) abstract album covers (500x500 JPEG) on the server side based on the mood theme analyzed by AI.

  • 🔑 JWT-Based Secure Session: Dual-layer authorization infrastructure with short-lived Access Token and long-lived Refresh Token (Refresh Token Rotation - RTR).

  • 🛡️ IDOR and Firewall Protection: Data ownership control on all API endpoints (WHERE session_id = @sid AND user_id = @uid), Content Security Policy (CSP) filtering at the Web.config level.

  • 🛑 Database-Based Rate Limiting: Dynamic request limiting based on user/IP, ensuring consistency in multi-server environments (10 requests/60 sec for chat, 30 requests/60 sec for deletion).

  • 🔍 Traceability (Correlation ID): Assigning an X-Request-Id to each incoming HTTP request, enabling end-to-end tracking of error logs and runtime traces.

Technologies Used

C#
C#
.Net Framework
.Net Framework
Visual Studio
Visual Studio
ASP.NET Web Forms
ASP.NET Web Forms
MySQL
MySQL
Bootstrap
Bootstrap
HTML
HTML
CSS
CSS

Project Links

Project Timeline

Start Date

11.05.2026

End Date

30.05.2026