Skip to content

mehranredrose/moodini

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

33 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Moodini 🎡🧠

AI-powered Spotify music recommendations based on weather conditions and user mood, built with a scalable microservices architecture.


Overview

Moodini is a modern music recommendation platform that combines:

  • 🌦 Weather-based music recommendations
  • 😊 Mood-based music recommendations
  • 🎧 Spotify integration
  • πŸ€– AI-powered mood analysis
  • πŸ— Microservices architecture
  • ⚑ Scalable and cloud-ready infrastructure

The goal is to create a personalized music discovery experience by understanding both environmental context and user emotions.


Features

Weather-Based Recommendations

Generate Spotify song recommendations based on the current weather in the user's location.

Examples:

Weather Recommendation Style
Sunny Pop, Dance, Funk
Rainy Lo-fi, Ambient, Piano
Snowy Chill, Acoustic
Cloudy Indie, Alternative

Mood-Based Recommendations

Users can:

  • Select a mood manually
  • Describe how they feel in text
  • Receive AI-analyzed recommendations

Supported moods:

  • Happy
  • Sad
  • Calm
  • Energetic
  • Angry
  • Romantic
  • Focused
  • Neutral

Spotify Integration

  • Spotify OAuth Authentication
  • Track Search
  • Playlist Creation
  • Personalized Recommendations
  • User Library Integration

AI Recommendation Engine

Moodini combines multiple signals:

  • User mood
  • Current weather
  • User preferences
  • Listening history (future feature)

to generate highly personalized recommendations.


Architecture

Frontend (Next.js)
        β”‚
        β–Ό
API Gateway (Django)
        β”‚
 β”Œβ”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
 β–Ό      β–Ό             β–Ό

Mood   Weather   Recommendation
Service Service      Service

        β”‚
        β–Ό

Spotify Service
        β”‚
        β–Ό

Spotify Web API

Tech Stack

Frontend

  • Next.js
  • TypeScript
  • Tailwind CSS
  • Axios

Backend

  • Django
  • Django REST Framework
  • FastAPI

AI

  • OpenAI API (planned)
  • Hugging Face Transformers (planned)

Database

  • PostgreSQL

Infrastructure

  • Docker
  • Docker Compose
  • Redis (planned)
  • Kubernetes (planned)

Development Workflow

  • Git
  • Git Flow
  • GitHub Actions (planned)

Project Structure

moodini/
β”‚
β”œβ”€β”€ services/
β”‚   β”œβ”€β”€ gateway/
β”‚   β”œβ”€β”€ user-service/
β”‚   β”œβ”€β”€ mood-service/
β”‚   β”œβ”€β”€ weather-service/
β”‚   β”œβ”€β”€ spotify-service/
β”‚   └── recommendation-service/
β”‚
β”œβ”€β”€ frontend/
β”‚
β”œβ”€β”€ infra/
β”‚   β”œβ”€β”€ docker/
β”‚   └── nginx/
β”‚
β”œβ”€β”€ docker-compose.yml
β”œβ”€β”€ README.md
└── .gitignore

Design Principles

Moodini follows:

  • HackSoft Django Styleguide
  • Domain-driven organization
  • Thin views, fat services
  • Separation of concerns
  • Independent deployable services
  • Scalability-first architecture

Development Workflow

Branching Strategy

main
β”‚
develop
β”‚
β”œβ”€β”€ feature/*
β”œβ”€β”€ release/*
└── hotfix/*

Examples:

feature/spotify-auth
feature/mood-analysis
feature/weather-integration
release/v1.0.0
hotfix/fix-oauth-callback

Getting Started

Clone Repository

git clone https://github.com/<your-username>/moodini.git

cd moodini

Start Services

docker compose up --build

Frontend

cd frontend

npm install

npm run dev

Backend Services

Run each service independently or through Docker Compose.


Roadmap

Version 1.0

  • Microservices foundation
  • Django API Gateway
  • Mood Service
  • Weather Service
  • Recommendation Service
  • Frontend foundation

Version 1.1

  • Spotify OAuth
  • Real Spotify recommendations
  • User profiles
  • Playlist generation

Version 1.2

  • OpenAI mood analysis
  • Embedding-based recommendations
  • Recommendation feedback loop

Version 2.0

  • Redis caching
  • Kubernetes deployment
  • Real-time recommendations
  • Recommendation analytics

Contributing

Contributions are welcome.

  1. Fork the repository
  2. Create a feature branch
  3. Commit your changes
  4. Push your branch
  5. Open a Pull Request

License

MIT License


Author

Mehran RedRose


Project Status

🚧 Under Active Development

Moodini is currently in the early development stage. The architecture is being built with long-term scalability and maintainability in mind.

About

Moodini is an AI-powered music recommendation platform that adapts Spotify playlists to your mood and environment.

Topics

Resources

Stars

Watchers

Forks

Contributors