{"id":22051878,"url":"https://github.com/ohansemmanuel/recommender-service","last_synced_at":"2025-08-01T22:33:29.578Z","repository":{"id":98263423,"uuid":"125453681","full_name":"ohansemmanuel/recommender-service","owner":"ohansemmanuel","description":"🍿🍿 A movie ML recommender service built with Python. ","archived":false,"fork":false,"pushed_at":"2018-04-02T09:22:02.000Z","size":45408,"stargazers_count":14,"open_issues_count":0,"forks_count":7,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-25T10:55:59.382Z","etag":null,"topics":["artificial-intelligence","machine-learning","python3"],"latest_commit_sha":null,"homepage":"","language":"Python","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/ohansemmanuel.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2018-03-16T02:39:58.000Z","updated_at":"2023-08-15T22:31:15.000Z","dependencies_parsed_at":"2023-03-13T16:03:50.959Z","dependency_job_id":null,"html_url":"https://github.com/ohansemmanuel/recommender-service","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ohansemmanuel/recommender-service","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ohansemmanuel%2Frecommender-service","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ohansemmanuel%2Frecommender-service/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ohansemmanuel%2Frecommender-service/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ohansemmanuel%2Frecommender-service/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ohansemmanuel","download_url":"https://codeload.github.com/ohansemmanuel/recommender-service/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ohansemmanuel%2Frecommender-service/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268305684,"owners_count":24229447,"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-08-01T02:00:08.611Z","response_time":67,"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":["artificial-intelligence","machine-learning","python3"],"created_at":"2024-11-30T15:11:56.656Z","updated_at":"2025-08-01T22:33:29.567Z","avatar_url":"https://github.com/ohansemmanuel.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\u003ca href=\"#\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e \u003cimg src=\"https://image.ibb.co/evGJH7/Artboard_1_3x.png\" alt=\"Recommender Service logo\"\u003e\u003c/a\u003e\u003c/p\u003e\n\n\u003ch2 align=\"center\"\u003eIntroduction\u003c/h2\u003e\nYou see the 'P2EM' in the Logo above? Do you have any idea what that means?\n\nLet me help you.\n\nP2EM refers to _\"Plan to Embarass Myself\"_\n\nTo understand the background story, read my article, \\*\n\u003ca href=\"https://codeburst.io/how-i-plan-to-embarrass-myself-by-attempting-to-learn-12-incredibly-hard-skills-one-a-month-622ab0acc05b\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eHow I Plan to Embarass Myself ...\u003c/a\u003e\n\nHey, read it :)\n\n\u003ch2 align=\"center\"\u003eWhat does this do?\u003c/h2\u003e\nIf you read the article above, you should get a sense of what this is about.\n\nThe service (largely written in Python) recommends movies based on a user's previous movie ratings using Machine Learning.\n\nOops. That was a mouthful.\n\n\u003ch2 align=\"center\"\u003eWhere can I try this out? \u003c/h2\u003e\nI'm currently building out a web client where you can try this.\n\nI'll have the link here, when there's something pretty for you to see :)\n\n\u003ch2 align=\"center\"\u003eHow do I run the app locally?\u003c/h2\u003e\n\nYeah, I've got your back.\n\n1.  Clone the repo\n\n```bash\ngit clone https://github.com/ohansemmanuel/recommender-service.git\n```\n\n2.  Create a .env file\n\n```bash\ncd recommender-service\ntouch .env\n```\n\n3.  The env file requires 4 important variables\n\n```env\nJWT_SECRET_KEY\nUSERNAME\nPASSWORD\nUSER_ID\n```\n\n* JWT_SECRET_KEY is required by Flask-JWT for some encryption.\n\n* USERNAME and PASSWORD will be used to access authorized resources. These should be **unique strings**.\n\n* USER_ID is required, just like the username and password. This should be an **Integer**\n\n4.  Install the app dependencies\n\n```bash\npip install\n```\n\n5.  If you have some experience with Python development, you may need to have the app loaded from a virtual environment.\n\n\u003ch2 align=\"center\"\u003eWhere is this currently deployed?\u003c/h2\u003e\nHeroku, baby!\n\nI should move this over to Digital Ocean for some customized control later.\n\nIf you wanna try something out, here's the endpoint for retrieving a list of movies 👉 \u003ca href=\"https://recommender-service.herokuapp.com/movies\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e/movies\u003c/a\u003e\n\n\u003ch2 align=\"center\"\u003eDoes this explanation suck?\u003c/h2\u003e\n\nI'll refactor pretty soon. Still writing out the code. It never gets completed, does it? :(\n\nCatch you later! 👊\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fohansemmanuel%2Frecommender-service","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fohansemmanuel%2Frecommender-service","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fohansemmanuel%2Frecommender-service/lists"}