{"id":18994415,"url":"https://github.com/xtdb/sakila-playground","last_synced_at":"2025-04-22T12:49:13.592Z","repository":{"id":213152558,"uuid":"733036733","full_name":"xtdb/sakila-playground","owner":"xtdb","description":"An XTDB v2 playground containing the 'Sakila' (MySQL) film rental sample dataset","archived":false,"fork":false,"pushed_at":"2024-03-27T16:00:12.000Z","size":1872,"stargazers_count":4,"open_issues_count":0,"forks_count":3,"subscribers_count":9,"default_branch":"main","last_synced_at":"2025-04-17T01:37:04.213Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","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/xtdb.png","metadata":{"files":{"readme":"README.adoc","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":"2023-12-18T12:23:12.000Z","updated_at":"2024-02-13T15:01:13.000Z","dependencies_parsed_at":"2023-12-18T23:06:05.823Z","dependency_job_id":"aa66fc12-a7ae-4a03-ada9-2c732a409a80","html_url":"https://github.com/xtdb/sakila-playground","commit_stats":null,"previous_names":["xtdb/sakila-playground"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xtdb%2Fsakila-playground","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xtdb%2Fsakila-playground/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xtdb%2Fsakila-playground/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xtdb%2Fsakila-playground/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xtdb","download_url":"https://codeload.github.com/xtdb/sakila-playground/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250243632,"owners_count":21398373,"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-08T17:25:30.173Z","updated_at":"2025-04-22T12:49:13.543Z","avatar_url":"https://github.com/xtdb.png","language":"JavaScript","readme":"= XTDB Sakila Playground\n\nXTDB playground for the https://dev.mysql.com/doc/sakila/en/[Sakila] sample dataset.\n\n== Getting started\n\n* To start a REPL, run `clj -M:xtdb:nrepl`, and then connect to it from your editor of choice.\n* Evaluating `xtdb.demo.db` will start and seed an XTDB node, which will be available at (:xt-node xtdb.demo.db/xt-node)`\n* Query away to your heart's content!\n\nFor more information, see the https://docs.xtdb.com[main XTDB docs].\n\n== Tests\n\nThere are some simple tests:\n\n----\nclojure -M:test -m kaocha.runner test\n----\n\n== Web serving\n\nRun `make` to download dependencies. With a Clojure REPL started, evaluate `user.clj` to start the HTTP server on port 3010.\n\nOpen a web browser at http://localhost:3010/\n\nA https://github.com/ring-clojure/ring[Ring] handler is provided.\nIncoming requests are handled by locating the resource corresponding with the URI of the request.\nBy default, resource location is provided by a locator in `xtdb.demo.web.locator` that searches for resources in Clojure namespaces.\nA key Clojure namespace is `xtdb.demo.resources` which has metadata indicating the web context of the resources contained with the namespace.\n\nMost web frameworks route web requests to a single 1-arity function, taking the request data and returning the response.\nThis scheme originates from the early web's Common Gateway Interface (CGI) mechansim to 'escape' out of the normal serving of static files.\nHowever, this scheme deviates from the object-oriented nature of the early web, where resources were defined more closely as objects with state responding to methods.\nTherefore, Clojure records are used to reflect the fact that web resources are a set of method functions, closed over some state (the resource's current state and configuration)\nThese Clojure records satisfy a Clojure protocol defined in `xtdb.demo.web.protocols/UniformInterface`.\nThis protocol represents REST's Uniform Interface, including the various methods that a resource may support.\n\nThe benefits of a more accurate and faithful model of the web means that it is easier to implement HTTP as described in its specifications.\nFor instance, by modelling which methods are allowed on a given resource, a user-agent can introspect these methods at run-time (inspecting the Allow header returned from an OPTIONS request).\nA user-agent might make use of this metadata, for example, to show/hide parts of its UI accordingly.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxtdb%2Fsakila-playground","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxtdb%2Fsakila-playground","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxtdb%2Fsakila-playground/lists"}