{"id":18774519,"url":"https://github.com/staab/rentflix","last_synced_at":"2025-06-15T21:11:54.814Z","repository":{"id":85234030,"uuid":"47706527","full_name":"staab/rentflix","owner":"staab","description":null,"archived":false,"fork":false,"pushed_at":"2016-06-09T16:36:09.000Z","size":25,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":6,"default_branch":"master","last_synced_at":"2024-12-29T08:43:28.649Z","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":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/staab.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":"2015-12-09T17:11:34.000Z","updated_at":"2016-11-18T19:49:03.000Z","dependencies_parsed_at":null,"dependency_job_id":"a4da9bd9-41fe-4723-94b3-aeafb19f2ed1","html_url":"https://github.com/staab/rentflix","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/staab%2Frentflix","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/staab%2Frentflix/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/staab%2Frentflix/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/staab%2Frentflix/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/staab","download_url":"https://codeload.github.com/staab/rentflix/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239680989,"owners_count":19679509,"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-11-07T19:38:29.600Z","updated_at":"2025-02-19T15:19:19.568Z","avatar_url":"https://github.com/staab.png","language":"Clojure","funding_links":[],"categories":[],"sub_categories":[],"readme":"# The Rentflix Project\n\nThe Rentflix Project is an effort to provide a web interface exposing the media available at old-school specialty video rental shops.\n\n# Installation\n\nInstall [Leiningen](https://github.com/technomancy/leiningen)\n\n```\ngit clone git@github.com:staab/rentflix.git\ncd rentflix\nlein deps\nlein git-deps\n```\n\nInstall Datomic - follow the directions [here](http://docs.datomic.com/getting-started.html). You can either create your own datomic account and use your own credentials, or you can use mine. In either case, you should end up with a file called `!/.lein/credentials.clj`. You'll need to encrypt it. To do this, run `gpg --gen-key` and follow the steps. Then, run `gpg --default-recipient-self -e ~/.lein/credentials.clj \u003e ~/.lein/credentials.clj.gpg`.\n\n# Implementation\n\nThe primary reason we chose the tech stack outlined below is for our own personal development. This project is built on technologies we haven't used, and in which we want some substantial experience.\n\n# Backend\n\nWe'll be using Clojure with [Ring](https://github.com/ring-clojure/ring) for our http server with [Compojure](https://github.com/weavejester/compojure) for routing. We'll use [Datomic](http://docs.datomic.com/) for our database. \n\nThe backend will expose a [GraphQL](https://facebook.github.io/react/blog/2015/05/01/graphql-introduction.html) API for use by a web frontend.\n\n# Frontend\n\nWe'll use Clojurescript with [Om](https://github.com/omcljs/om) [React](https://facebook.github.io/react/), and maybe [Flux](https://facebook.github.io/flux/) if we need it.\n\n# Running\n\n```\nlein ring server-headless\n```\n\nWhen you make changes, they should automatically be applied on the next page reload, unless the server crashed.\n\nYou can also run a repl with `lein repl`. You can load and reload namespaces with e.g. `(use 'rentflix.server :reload)`.\n\n# Learning\n\n## Compojure\n\n- [SO explanation of defroutes](http://stackoverflow.com/a/3490479/1467342)\n\n## Datomic\n\n- [API reference](http://docs.datomic.com/clojure/index.html#datomic.api/delete-database)\n- [Tutorial](http://docs.datomic.com/tutorial.html#making-a-database)\n- [Day of Datomic](https://github.com/Datomic/day-of-datomic)\n\n# Domain\n\nhttp://docs.themoviedb.apiary.io/#reference/movies/movieidsimilar/get\n\nSearch on:\n    - Title\n    - Year\n    - Genres\n    - Tagline\n    - Overview\n    - Keywords\n\nFilter on:\n    - Adult\n    - Year\n    - Genres\n\nGet by TMDB endpoint:\n    - Popular\n    - Top Rated\n    - Similar to other","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstaab%2Frentflix","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstaab%2Frentflix","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstaab%2Frentflix/lists"}