{"id":20506499,"url":"https://github.com/yannvanhalewyn/boyscout","last_synced_at":"2025-04-13T21:22:01.476Z","repository":{"id":47381344,"uuid":"215123253","full_name":"yannvanhalewyn/boyscout","owner":"yannvanhalewyn","description":"A clojurescript rewrite of Pathfinding Visualizer","archived":false,"fork":false,"pushed_at":"2023-01-26T13:30:59.000Z","size":1036,"stargazers_count":11,"open_issues_count":7,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-07-30T17:39:00.137Z","etag":null,"topics":["algorithms","clojure","clojurescript","functional-programming","pathfinding","shadow-cljs","tailwindcss","visualization"],"latest_commit_sha":null,"homepage":"https://yannvanhalewyn.github.io/boyscout","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/yannvanhalewyn.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":"2019-10-14T19:00:05.000Z","updated_at":"2022-01-11T15:45:24.000Z","dependencies_parsed_at":"2023-02-14T17:46:02.672Z","dependency_job_id":null,"html_url":"https://github.com/yannvanhalewyn/boyscout","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yannvanhalewyn%2Fboyscout","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yannvanhalewyn%2Fboyscout/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yannvanhalewyn%2Fboyscout/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yannvanhalewyn%2Fboyscout/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yannvanhalewyn","download_url":"https://codeload.github.com/yannvanhalewyn/boyscout/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224838323,"owners_count":17378265,"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":["algorithms","clojure","clojurescript","functional-programming","pathfinding","shadow-cljs","tailwindcss","visualization"],"created_at":"2024-11-15T19:57:39.516Z","updated_at":"2024-11-15T19:57:40.049Z","avatar_url":"https://github.com/yannvanhalewyn.png","language":"Clojure","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Boyscout ⛺\n\nBoyscout is a Clojurescript rewrite of Clement Mihailescu's [Pathfinding Visualizer](https://github.com/clementmihailescu/Pathfinding-Visualizer/). All credit's for the idea and sexy animations sould go to him 🎓. Boyscout can visualize a couple of famous pathfinding algorithms for fun and educational purpouses.\n\nView Boyscout in action on: [https://yannvanhalewyn.github.io/boyscout/](https://yannvanhalewyn.github.io/boyscout/) and after playing around a bit click on the Boyscout logo in the header for a hidden feature 😉.\n\nThis project has been built to practice algorithms, demonstrate the power of a declarative functional approach and most importantly to have some fun.\n\nSome nice technical features to check out:\n\n- A [board model](https://github.com/yannvanhalewyn/boyscout/blob/master/src/bs/board.cljs#L1) as a weighted bigraph\n- An [algorithm abastraction](https://github.com/yannvanhalewyn/boyscout/blob/master/src/bs/algorithm.cljs#L1), think adapter pattern but not really. It's just some functions.\n- A simple [animation system](https://github.com/yannvanhalewyn/boyscout/blob/master/src/bs/animation.cljs#L1) built with [core.async](https://clojure.github.io/core.async/) that can be stopped, rewinded and is open for more features (stepping feature? 🤔)\n- Using clojure meta-data to [link straight to source](https://github.com/yannvanhalewyn/boyscout/blob/master/src/bs/algorithm.cljs#L8) in the UI\n\n## Running\n\nClone the repo and the first time run:\n\n    $ yarn install\n    $ make css\n\nThen to start and watch the test and dev build and start a nRepl server:\n\n    $ make dev\n\nAnd visit [localhost:8080](http://localhost:8080) to see the app, and [localhost:8081](http://localhost:8081) to se the test runner.\n\n**Note:** you won't see a repl appear with this command. A nRepl server was started and you should connect to it with your favorite editor. If that's not an option you can run `make repl` to have a terminal repl. This won't build the test app though.\n\nTo watch the changes in css run:\n\n    $ make css-watch\n\n## Building\n\nTo build the project with all optimisations run:\n\n    $ make build\n\nAnd open the *index.html* file in the root of the project.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyannvanhalewyn%2Fboyscout","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyannvanhalewyn%2Fboyscout","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyannvanhalewyn%2Fboyscout/lists"}