Skip to content

music recommendation engine & REST API written in scala & play framework

Notifications You must be signed in to change notification settings

pewniak747/music-match

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

91 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

music match

Music recommendation engine and REST API. Uses Play framework and postgresql database for persistence.

Running

  • Install play framework from http://www.playframework.com/download
  • Run createdb musicmatch to create new postgresql database
  • Run play run in the project root directory
  • Application is accessible under http://localhost:9000

REST api

Authorization

Authorization is performed with OAuth2 protocol.

POST /oauth2/authorize

{
  "grant_type": "password',
  "username": "email@example.com",
  "password": "password",
  "client_id": "clientid"
  "client_secret": "clientseret"
}

All request requiring authorization must be performed with Authorization: Bearer token header.

Registration

Register new user

POST /api/registrations

{
  "email": "email@example.com",
  "password": "password",
  "password_confirmation": "password"
}

Current User

Fetch information about currently authenticated user

GET /api/me

Songs

Fetch list of songs, optionally filtered.

GET /api/songs?filter=bohemian+rhapsody

Fetch a list of most played songs.

GET /api/me/songs/statistics

Artists

Fetch a list of most played artists.

GET /api/me/artists/statistics

Scrobbles

Create a scrobble

POST /api/me/scrobbles

{
  song_id: 1
}

Scrobble Statistics

Fetch user's total, weekly and monthly listening statistics

GET /api/me/scrobbles/statistics

Recommendations

Fetch user's song recommendations

GET /api/me/recommendations

Schedule a recommendations update

POST /api/me/recommendations

About

music recommendation engine & REST API written in scala & play framework

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages