{"id":20115013,"url":"https://github.com/nikos/matchbox-api","last_synced_at":"2025-10-25T20:14:17.128Z","repository":{"id":145419794,"uuid":"51477773","full_name":"nikos/matchbox-api","owner":"nikos","description":"Simple recommendation backend with compojure, Mahout and OpenNLP","archived":false,"fork":false,"pushed_at":"2016-02-10T22:39:39.000Z","size":6186,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-02T19:18:04.645Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Clojure","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nikos.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-02-10T22:38:31.000Z","updated_at":"2021-10-11T19:30:07.000Z","dependencies_parsed_at":"2023-04-30T10:16:53.520Z","dependency_job_id":null,"html_url":"https://github.com/nikos/matchbox-api","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/nikos/matchbox-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nikos%2Fmatchbox-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nikos%2Fmatchbox-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nikos%2Fmatchbox-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nikos%2Fmatchbox-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nikos","download_url":"https://codeload.github.com/nikos/matchbox-api/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nikos%2Fmatchbox-api/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267638842,"owners_count":24119764,"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","status":"online","status_checked_at":"2025-07-29T02:00:12.549Z","response_time":2574,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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-11-13T18:33:31.769Z","updated_at":"2025-10-25T20:14:17.021Z","avatar_url":"https://github.com/nikos.png","language":"Clojure","readme":"# matchbox\n\nA Clojure project to kick the tires on [Apache Mahout](http://mahout.apache.org/).\n\nStart compojure with ring call:\n\n    lein ring server-headless\n\nExample call:\n\n    (use 'matchbox.services.recommender)\n    (find-similar-users 7 3)\n\nTo start running the tests and watch for updates use:\n\n    lein midje :autotest\n\n\n## Requirements\n\nMongoDB server\n\nUnder Mac OSX install by using `brew install mongo` and then start with the help of:\n\n    sudo mongod --config /usr/local/etc/mongod.conf\n\n\n## Manage items\n\n    http POST http://matchbox.nava.de:3000/items/ name=Billard\n\n    http GET http://matchbox.nava.de:3000/items/\n\nLeads to the following sample result:\n\n    HTTP/1.1 200 OK\n    Content-Length: 317\n    Content-Type: application/json; charset=utf-8\n    Date: Sun, 14 Dec 2014 00:44:29 GMT\n    Server: Jetty(7.6.8.v20121106)\n\n    {\n        \"items\": [\n            {\n                \"_id\": \"548cdd3ed282a2a47b2492a9\",\n                \"name\": \"Kino\"\n            },\n            {\n                \"_id\": \"548cdd54d282a2a47b2492ab\",\n                \"name\": \"Boxen\"\n            },\n            {\n                \"_id\": \"548cdd64d282a2a47b2492ae\",\n                \"name\": \"Billard\"\n            }\n        ]\n    }\n\n## Manage users\n\nCreate a new user\n\n    http POST http://matchbox.nava.de:3000/users/ alias=rocko first_name=Rocko  last_name=Schamoni\n\nGet all users:\n\n    http GET http://matchbox.nava.de:3000/users\n\n    {\n        \"users\": [\n            {\n                \"_id\": \"548dbf1bd2829fb7bf535bbf\",\n                \"alias\": \"heinz\",\n                \"first_name\": \"heinz\",\n                \"last_name\": \"Strunk\"\n            },\n            {\n                \"_id\": \"548dbf49d2829fb7bf535bc0\",\n                \"alias\": \"rocko\",\n                \"first_name\": \"Rocko\",\n                \"last_name\": \"Schamoni\"\n            },\n            {\n                \"_id\": \"548dbf5fd2829fb7bf535bc1\",\n                \"alias\": \"jac\",\n                \"first_name\": \"Jacques\",\n                \"last_name\": \"Palminger\"\n            }\n        ]\n    }\n\n## Ratings\n\nAdd a new rating:\n\n    http POST http://matchbox.nava.de:3000/ratings/ item_id=548cdd3ed282a2a47b2492a9 user_id=548dbf1bd2829fb7bf535bbf preference:=1.0\n\n    HTTP/1.1 201 Created\n    Content-Length: 149\n    Content-Type: application/json; charset=utf-8\n    Date: Sun, 14 Dec 2014 16:54:00 GMT\n    Location: /ratings/548dc0a8d2829fb7bf535bc2\n    Server: Jetty(7.6.8.v20121106)\n\n    {\n        \"_id\": \"548dc0a8d2829fb7bf535bc2\",\n        \"created_at\": 1418576041,\n        \"item_id\": \"548cdd3ed282a2a47b2492a9\",\n        \"preference\": 1.0,\n        \"user_id\": \"548dbf1bd2829fb7bf535bbf\"\n    }\n\n\nGet all ratings\n\n    http GET http://matchbox.nava.de:3000/ratings\n\n\nGet similar users\n\n    http GET http://matchbox.nava.de:3000/users/548dbf49d2829fb7bf535bc0/similar-users\n\n    HTTP/1.1 200 OK\n    Content-Length: 110\n    Content-Type: application/json; charset=utf-8\n    Date: Sun, 14 Dec 2014 17:01:10 GMT\n    Server: Jetty(7.6.8.v20121106)\n\n    {\n        \"recommended\": [\n            {\n                \"_id\": \"548dbf1bd2829fb7bf535bbf\",\n                \"alias\": \"heinz\",\n                \"first_name\": \"heinz\",\n                \"last_name\": \"Strunk\"\n            }\n        ]\n    }\n\n\n## Sentiments\n\nAnalyze a sentence and rate a sentiment.\n\nCurrent mapping is:\n\n  * strong negative: -5\n  * weak negative: -2\n  * neutral: 0\n  * weak positive: +2\n  * strong positive: +5\n\nExample for creating a new sentiment:\n\n    http -v POST localhost:3000/sentiments sentence=\"I do not like George Clooney and don't like rain.\" user_id=54cf2fdb0364fac8bb99c08b\n    POST /sentiments HTTP/1.1\n    Accept: application/json\n    Accept-Encoding: gzip, deflate\n    Connection: keep-alive\n    Content-Length: 104\n    Content-Type: application/json; charset=utf-8\n    Host: localhost:3000\n    User-Agent: HTTPie/0.8.0\n\n    {\n        \"sentence\": \"I do not like George Clooney and don't like rain.\",\n        \"user_id\": \"54cf2fdb0364fac8bb99c08b\"\n    }\n\n    HTTP/1.1 201 Created\n    Access-Control-Allow-Origin: *\n    Access-Control-Request-Methods: GET,POST,PUT\n    Content-Length: 1022\n    Content-Type: application/json; charset=utf-8\n    Date: Thu, 05 Feb 2015 11:28:33 GMT\n    Location: /sentiments/54d353e10364f68ce067ae77\n    Server: Jetty(7.6.13.v20130916)\n\n    {\n        \"_id\": \"54d353e10364f68ce067ae77\",\n        \"ratings\": [\n            {\n                \"_id\": \"54d353e10364f68ce067ae78\",\n                \"created_at\": 1423135714,\n                \"item\": {\n                    \"_id\": \"54d34e1d0364862278b2778b\",\n                    \"name\": \"rain\"\n                },\n                \"item_id\": \"54d34e1d0364862278b2778b\",\n                \"preference\": -5.0,\n                \"sentiment\": \"I do not like George Clooney and don't like rain.\",\n                \"user\": {\n                    \"_id\": \"54cf2fdb0364fac8bb99c08b\",\n                    \"alias\": \"werner\",\n                    \"first_name\": \"Werner\",\n                    \"last_name\": \"Schneeberger\"\n                },\n                \"user_id\": \"54cf2fdb0364fac8bb99c08b\"\n            },\n            {\n                \"_id\": \"54d353e10364f68ce067ae79\",\n                \"created_at\": 1423135714,\n                \"item\": {\n                    \"_id\": \"54d34e1d0364862278b2778d\",\n                    \"name\": \"George Clooney\"\n                },\n                \"item_id\": \"54d34e1d0364862278b2778d\",\n                \"preference\": -5.0,\n                \"sentiment\": \"I do not like George Clooney and don't like rain.\",\n                \"user\": {\n                    \"_id\": \"54cf2fdb0364fac8bb99c08b\",\n                    \"alias\": \"werner\",\n                    \"first_name\": \"Werner\",\n                    \"last_name\": \"Schneeberger\"\n                },\n                \"user_id\": \"54cf2fdb0364fac8bb99c08b\"\n            }\n        ],\n        \"sentence\": \"I do not like George Clooney and don't like rain.\",\n        \"user\": {\n            \"_id\": \"54cf2fdb0364fac8bb99c08b\",\n            \"alias\": \"werner\",\n            \"first_name\": \"Werner\",\n            \"last_name\": \"Schneeberger\"\n        },\n        \"user_id\": \"54cf2fdb0364fac8bb99c08b\"\n    }\n\n\n\n## API Ideas\n\n    POST /ratings -\u003e neue Vorliebe anlegen \n    GET /ratings -\u003e liefert alle vorhandenen Vorlieben zurück\n\n    POST /users   -\u003e neuen User anlegen\n    GET /users/\u003cuserid\u003e -\u003e liefert User zurück, inkl. seiner Vorlieben\n    POST /users/\u003cuserid\u003e/ratings  -\u003e hinzufügen einer neuen Vorliebe\n    DELETE /users/\u003cuserid\u003e/ratings/\u003crating-id\u003e -\u003e löscht eine Vorliebe\n\n    GET /users/\u003cuserid\u003e/similar-users  -\u003e liefert eine Liste mit Usern, die ähnliche Vorlieben haben\n\n\nJSON für rating:\n\n    {\n      \"id\": \"vom-Server-vergeben\",\n      \"name\": {\n        \"en\": \"Cinema films\",\n        \"de\": \"Kinofilme\",\n        \"ru\": \"фильмкинолента\"\n      }\n    }\n\n\n## Inspirations\n\nRecommender (user/item) system using Mahout and MongoDB, wrapped by a REST service.\nhttps://github.com/nellaivijay/Mahout-MongoDB-Recommender\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnikos%2Fmatchbox-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnikos%2Fmatchbox-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnikos%2Fmatchbox-api/lists"}