Skip to content

pvvishwesh-lang/AuxLess

Repository files navigation

AuxLess

Python Flask React Apache Beam Google Cloud Firestore Docker GitHub Actions Pandas Scikit-Learn PyTorch Pytest Slack Terraform Pipelines Model Frontend

Party Music Recommendation System

A real-time, multi user music recommendation system designed for social settings. The system aggregates playlist data from every single user, clusters the songs by genres and adapts playback using live user feedback.


Features

  • Multi User party rooms
  • Genre based clustering
  • Real time like and dislike based feedback loop
  • Adaptive group recommendations

System Overview

  • Users join a common room and authenticate via a music provider
  • Playlist and track metadata is fetched
  • Tracks are clustered based on genre
  • Songs from dominant clusters are prioritized
  • Feedback influences subsequent recommendations

Tech Stack

Backend

  • Python 3.11
  • Flask (Cloud Run REST API)

Data Pipeline

  • Apache Beam (Dataflow Runner)
  • Google Cloud Dataflow
  • Google Cloud Storage
  • Google Cloud Firestore
  • Google Cloud Pub/Sub
  • Google Cloud Run
  • Google Cloud Functions

Data Processing & Validation

  • Pandas
  • NumPy
  • SciPy
  • Apache Beam transforms

ML & Bias

  • Scikit-Learn
  • PyTorch
  • TensorFlow Data Validation (TFDV)

APIs

  • YouTube Data API v3
  • iTunes Search API
  • OAuth 2.0 (Google)

Frontend

  • React
  • Firebase (Firestore real-time listeners)

Auth

  • OAuth 2.0

Testing

  • pytest
  • pytest-cov
  • unittest.mock

CI/CD

  • GitHub Actions
  • Google Cloud Build
  • Docker
  • Artifact Registry

Monitoring & Alerting

  • Cloud Logging
  • Slack Webhooks

Data Versioning

  • GCS path-based versioning by session_id

Backend Pipeline

The data pipeline is built on GCP and handles:

  • Playlist ingestion via YouTube OAuth + iTunes metadata enrichment
  • Distributed processing using Apache Beam on Dataflow
  • Bias detection and mitigation across genre and country slices
  • Real-time feedback processing via Pub/Sub streaming pipeline
  • Schema validation, anomaly detection, and Slack alerting

See backend/ for full pipeline documentation.


Machine Learning

  • Group based Genre clustering
  • Feedback weighted ranking
  • Online adaptation during sessions

App Flow

The flow of the app


Setup

Prerequisites

  • Python 3.11+
  • GCP account with Cloud Run, Dataflow, Firestore, Pub/Sub, GCS enabled
  • YouTube OAuth credentials

Installation

git clone <repo_url>
cd <repo_name>
pip install -r requirements.txt

Running Tests

pytest tests/api_tests/ -v --cov=backend

Privacy

  • User consented data only
  • Session based processing
  • No long term storage of playlist

Status

In Development

About

Party Music Recommendation System

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors