{"id":15986260,"url":"https://github.com/ncordon/recommendation-system","last_synced_at":"2025-04-04T21:28:47.377Z","repository":{"id":73916536,"uuid":"83982753","full_name":"ncordon/recommendation-system","owner":"ncordon","description":"Music recommendation system","archived":false,"fork":false,"pushed_at":"2018-01-21T02:13:54.000Z","size":3246,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-02-20T18:47:51.399Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ncordon.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-03-05T15:58:56.000Z","updated_at":"2017-06-05T13:45:57.000Z","dependencies_parsed_at":null,"dependency_job_id":"95f9eb03-7c77-4d6d-8509-485f5464ed08","html_url":"https://github.com/ncordon/recommendation-system","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ncordon%2Frecommendation-system","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ncordon%2Frecommendation-system/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ncordon%2Frecommendation-system/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ncordon%2Frecommendation-system/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ncordon","download_url":"https://codeload.github.com/ncordon/recommendation-system/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247251551,"owners_count":20908528,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-08T02:43:53.567Z","updated_at":"2025-04-04T21:28:47.353Z","avatar_url":"https://github.com/ncordon.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Another recommendation system\nMusic recommendation system made by [@Lothar94](https://github.com/lothar94), [@daniL16](https://github.com/daniL16), [@ncordon](https://github.com/ncordon) with academic purpose.\n\n![](./doc/img/ars.png)\n\n\n## How does it work?\nYou have to introduce from 1 to 3 groups you like (normally, kind of similar) and the system will ask Spotify API for recommendations. We have or own refinement's algorithm to offer more proper recommendations based on year, area, genres and MusicBrainz's tags for a group.\n\nWhen you get a recommendation, you can consult deeper information about a specific group.\n\nAll recent searches are kept in cache of Google App Engine, and group information alredy asked for is stored in a database for more later queries.\n\n## Structure of files\n\n### User level\n- `app.yaml`: configuration of the GAE(Google App Engine) app\n- `params.py`: parameters for the recommendations\n- `main.py`: routing of the web app.\n- `recommender.py`: recommendation calcs layer\n- `gathering.py`: data gathering layer\n- `datastore.py`: data integration and database read \u0026 write layer\n\n### Admin level\n- `index.yaml`: database indexes configuration\n- `cron.yaml`: programmed tasks configuration\n- `admin_tasks.py`: routing of the admin tasks handlers\n- `database_tasks.py`: database update tasks\n\n## Local tryout\nTo try the app locally, `python 2.7` and `Google Cloud Python SDK` are required. Once you met that requirement, you should follow these steps:\n\n- Substitute Youtube API and Spotify API keys in the file `app.yaml`:\n\n```\n       SPOTIPY_CLIENT_ID: example\n       SPOTIPY_CLIENT_SECRET: example\n       YOUTUBE_DEV_KEY: example\n```\n\n- `make config` to install the necessary libaries\n\n- `make mount` to try the application locally\n\n- Enter [localhost:8080](http://localhost:8080) in your web browser\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fncordon%2Frecommendation-system","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fncordon%2Frecommendation-system","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fncordon%2Frecommendation-system/lists"}