AI-powered Spotify music recommendations based on weather conditions and user mood, built with a scalable microservices architecture.
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.
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 |
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 OAuth Authentication
- Track Search
- Playlist Creation
- Personalized Recommendations
- User Library Integration
Moodini combines multiple signals:
- User mood
- Current weather
- User preferences
- Listening history (future feature)
to generate highly personalized recommendations.
Frontend (Next.js)
β
βΌ
API Gateway (Django)
β
ββββββββΌββββββββββββββ
βΌ βΌ βΌ
Mood Weather Recommendation
Service Service Service
β
βΌ
Spotify Service
β
βΌ
Spotify Web API
- Next.js
- TypeScript
- Tailwind CSS
- Axios
- Django
- Django REST Framework
- FastAPI
- OpenAI API (planned)
- Hugging Face Transformers (planned)
- PostgreSQL
- Docker
- Docker Compose
- Redis (planned)
- Kubernetes (planned)
- Git
- Git Flow
- GitHub Actions (planned)
moodini/
β
βββ services/
β βββ gateway/
β βββ user-service/
β βββ mood-service/
β βββ weather-service/
β βββ spotify-service/
β βββ recommendation-service/
β
βββ frontend/
β
βββ infra/
β βββ docker/
β βββ nginx/
β
βββ docker-compose.yml
βββ README.md
βββ .gitignore
Moodini follows:
- HackSoft Django Styleguide
- Domain-driven organization
- Thin views, fat services
- Separation of concerns
- Independent deployable services
- Scalability-first architecture
main
β
develop
β
βββ feature/*
βββ release/*
βββ hotfix/*
Examples:
feature/spotify-auth
feature/mood-analysis
feature/weather-integration
release/v1.0.0
hotfix/fix-oauth-callback
git clone https://github.com/<your-username>/moodini.git
cd moodinidocker compose up --buildcd frontend
npm install
npm run devRun each service independently or through Docker Compose.
- Microservices foundation
- Django API Gateway
- Mood Service
- Weather Service
- Recommendation Service
- Frontend foundation
- Spotify OAuth
- Real Spotify recommendations
- User profiles
- Playlist generation
- OpenAI mood analysis
- Embedding-based recommendations
- Recommendation feedback loop
- Redis caching
- Kubernetes deployment
- Real-time recommendations
- Recommendation analytics
Contributions are welcome.
- Fork the repository
- Create a feature branch
- Commit your changes
- Push your branch
- Open a Pull Request
MIT License
Mehran RedRose
- GitHub: https://github.com/mehranredrose
- Email: mehranredrose@gmail.com
π§ Under Active Development
Moodini is currently in the early development stage. The architecture is being built with long-term scalability and maintainability in mind.