{"id":18074397,"url":"https://github.com/headwinds/astronaut","last_synced_at":"2026-01-19T05:32:39.179Z","repository":{"id":150897438,"uuid":"176799118","full_name":"headwinds/astronaut","owner":"headwinds","description":"learn Clojure fundamentals","archived":false,"fork":false,"pushed_at":"2019-03-20T19:04:27.000Z","size":866,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-05T18:52:32.819Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"HTML","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/headwinds.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}},"created_at":"2019-03-20T19:00:03.000Z","updated_at":"2019-03-20T19:04:28.000Z","dependencies_parsed_at":null,"dependency_job_id":"f390f194-986a-4193-b3f5-0fef3afb7cb4","html_url":"https://github.com/headwinds/astronaut","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/headwinds/astronaut","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/headwinds%2Fastronaut","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/headwinds%2Fastronaut/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/headwinds%2Fastronaut/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/headwinds%2Fastronaut/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/headwinds","download_url":"https://codeload.github.com/headwinds/astronaut/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/headwinds%2Fastronaut/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28561858,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-19T03:31:16.861Z","status":"ssl_error","status_checked_at":"2026-01-19T03:31:15.069Z","response_time":67,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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-10-31T10:12:29.137Z","updated_at":"2026-01-19T05:32:39.162Z","avatar_url":"https://github.com/headwinds.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Lesson 1 Clojure\n\nLearn how to make a few Clojure service calls and see how one can transform lists using map, filter, find, and reduce on the server.\n\n# dependencies\n\n* [clojure](https://blog.venanti.us/why-clojure/)\n* [compojure](https://github.com/weavejester/compojure/wiki)\n* [ring](https://github.com/ring-clojure/ring/wiki)\n* [environ](https://yobriefca.se/blog/2014/04/29/managing-environment-variables-in-clojure/)\n\nsee project.clj which lists them and their version numbers.\n\n## Getting started\n\n```\n$ lein repl\n$ user=\u003e (require 'app.web)\n$ user=\u003e (def server (app.web/-main))\n```     \n   \n\n## Deploy to Heroku\n\nCopy this lesson into a new directory outside of this git repo so that it has it own git repo. We don't want to have nested repos.\n\nThis order is important:\n\n```\nheroku login\ngit init\ngit add .\ngit commit -m \"first commit\"\nheroku create\ngit push heroku master\nheroku ps:scale web=1\nheroku open\n```\nThen open your browser whatever url it created ie: https://glacial-badlands-20785.herokuapp.com/\n\n## Sample Route Handler \u0026 Request\n\nhandler\n```\n(POST \"/map-colonists-to-agency\" request\n  (let [agency-name (or  (get-in request [:params :name])\n                    (get-in request [:body :name])\n                    \"SpaceX\")]\n```\n\nWithin this request, you can see the `:body` map which is a nested map with the `:name` property containing \"NASA\". If it failed to find the name, it would default to \"SpaceX\".\n\nrequest\n```\n{\n:ssl-client-cert nil,\n:protocol HTTP/1.1,\n:cookies {},\n:remote-addr 0:0:0:0:0:0:0:1,\n:params {},\n:flash nil,\n:route-params {},\n:headers {origin http://localhost:5000, host localhost:5000, user-agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36, content-type application/json; charset=UTF-8, content-length 15, referer http://localhost:5000/no-referrer, connection keep-alive, accept */*, accept-language en-US,en;q=0.9, accept-encoding gzip, deflate, br, cache-control max-age=0},\n:server-port 5000,\n:content-length 15,\n:form-params {},\n:compojure/route [:post /map-colonists-to-agency],\n:session/key nil,\n:query-params {},\n:content-type application/json; charset=UTF-8,\n:character-encoding UTF-8,\n:uri /map-colonists-to-agency,\n:server-name localhost,\n:query-string nil,\n:body {:name NASA},\n:multipart-params {},\n:scheme :http,\n:request-method\n:post,\n:session {}\n}\n```  \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fheadwinds%2Fastronaut","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fheadwinds%2Fastronaut","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fheadwinds%2Fastronaut/lists"}