{"id":34176084,"url":"https://github.com/cjsidler/go-cyoa","last_synced_at":"2026-03-10T20:02:53.023Z","repository":{"id":208111516,"uuid":"720839084","full_name":"cjsidler/go-cyoa","owner":"cjsidler","description":"Choose Your Own Adventure - Follow the story of the Little Blue Gopher with this Golang Web Application.","archived":false,"fork":false,"pushed_at":"2023-11-28T04:44:05.000Z","size":281,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-06-21T03:24:09.611Z","etag":null,"topics":["choose-your-own-adventure","game","go","golang","webapp"],"latest_commit_sha":null,"homepage":"","language":"Go","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/cjsidler.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":"2023-11-19T18:51:52.000Z","updated_at":"2023-11-19T19:02:11.000Z","dependencies_parsed_at":"2023-11-28T05:28:48.823Z","dependency_job_id":null,"html_url":"https://github.com/cjsidler/go-cyoa","commit_stats":null,"previous_names":["cjsidler/go-cyoa"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/cjsidler/go-cyoa","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cjsidler%2Fgo-cyoa","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cjsidler%2Fgo-cyoa/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cjsidler%2Fgo-cyoa/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cjsidler%2Fgo-cyoa/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cjsidler","download_url":"https://codeload.github.com/cjsidler/go-cyoa/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cjsidler%2Fgo-cyoa/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30351766,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-10T15:55:29.454Z","status":"ssl_error","status_checked_at":"2026-03-10T15:54:58.440Z","response_time":106,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5: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":["choose-your-own-adventure","game","go","golang","webapp"],"created_at":"2025-12-15T12:25:03.320Z","updated_at":"2026-03-10T20:02:53.016Z","avatar_url":"https://github.com/cjsidler.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ca name=\"readme-top\"\u003e\u003c/a\u003e\n\n\u003c!-- PROJECT LOGO --\u003e\n\u003cbr /\u003e\n\u003cdiv align=\"center\"\u003e\n  \u003ch1 align=\"center\"\u003eGolang Create Your Own Adventure\u003c/h1\u003e\n\n  \u003cp align=\"center\"\u003e\n    Follow the story of the Little Blue Gopher with this Golang Web Application.\n  \u003c/p\u003e\n\u003c/div\u003e\n\n![](./demo-image.png)\n\n\u003c!-- TABLE OF CONTENTS --\u003e\n\u003cdetails\u003e\n  \u003csummary\u003eTable of Contents\u003c/summary\u003e\n  \u003col\u003e\n    \u003cli\u003e\n      \u003ca href=\"#about-the-project\"\u003eAbout The Project\u003c/a\u003e\n      \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"#built-with\"\u003eBuilt With\u003c/a\u003e\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\n      \u003ca href=\"#getting-started\"\u003eGetting Started\u003c/a\u003e\n      \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"#prerequisites\"\u003ePrerequisites\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#installation\"\u003eInstallation\u003c/a\u003e\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#license\"\u003eLicense\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#contact\"\u003eContact\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#acknowledgments\"\u003eAcknowledgments\u003c/a\u003e\u003c/li\u003e\n  \u003c/ol\u003e\n\u003c/details\u003e\n\n\u003c!-- ABOUT THE PROJECT --\u003e\n\n## About The Project\n\nThe Golang Create Your Own Adventure web application reads in a story provided by a JSON file in the following format:\n\n```json\n{\n    \"story-arc\": {\n        \"title\": \"A title for that story arc. Think of it like a chapter title.\",\n        \"story\": [\n            \"A series of paragraphs, each represented as a string in a slice.\",\n            \"This is a new paragraph in this particular story arc.\"\n        ],\n        \"options\": [\n            {\n                \"text\": \"the text to render for this option. eg 'venture down the dark passage'\",\n                \"arc\": \"the name of the story arc to navigate to. This will match the story-arc key at the very root of the JSON document\"\n            }\n        ]\n    }\n}\n```\n\nEach story arc will have a unique key that represents the name of that particular arc, and each adventure will have a story arc with the key \"intro\" that represents the first story arc of the adventure. Options will be empty if it is the end of that particular story arc. Otherwise, options will have one or more JSON objects that represent an \"option\" that the reader has at the end of a story arc.\n\nThe story is made available to the user using Go templates and http routes. If a user visits the root route (i.e., http://localhost:8080/), the user will be shown the intro story arc.\n\nThe story JSON file defaults to \"adventure.json\", but the user can choose a different file by using the \"-filename\" flag followed by the name of the JSON file.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- BUILT WITH --\u003e\n\n### Built With\n\n[![Go][go-shield]][go-url]\n![HTML][html-shield]\n![CSS][css-shield]\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- GETTING STARTED --\u003e\n\n## Getting Started\n\n### Prerequisites\n\n-   Golang:\n    [https://go.dev/doc/install](https://go.dev/doc/install)\n\n### Installation\n\n1. Clone the repo\n    ```sh\n    git clone https://github.com/cjsidler/go-cyoa.git\n    ```\n2. Build an executable\n    ```sh\n    go build -o \"go-cyoa.exe\" main.go\n    ```\n3. Run the executable.\n    ```sh\n    .\\go-cyoa.exe -filename \"mystory.json\"\n    ```\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- LICENSE --\u003e\n\n## License\n\n[![MIT License][license-shield]][license-url]\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- CONTACT --\u003e\n\n## Contact\n\nContact me via email, LinkedIn, or GitHub:\n\n[![Email][gmail-shield]][gmail-url]\n[![LinkedIn][linkedin-shield]][linkedin-url]\n[![GitHub][github-shield]][github-url]\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- ACKNOWLEDGMENTS --\u003e\n\n## Acknowledgments\n\n-   [Gophercises](https://gophercises.com/)\n-   [README Template](https://github.com/othneildrew/Best-README-Template)\n-   [Link Badges](https://shields.io/)\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- MARKDOWN LINKS \u0026 IMAGES --\u003e\n\n[license-shield]: https://img.shields.io/github/license/othneildrew/Best-README-Template.svg?style=for-the-badge\n[license-url]: https://github.com/othneildrew/Best-README-Template/blob/master/LICENSE.txt\n[linkedin-shield]: https://img.shields.io/badge/-LinkedIn-black.svg?style=for-the-badge\u0026logo=linkedin\u0026colorB=555\n[linkedin-url]: https://www.linkedin.com/in/collinsidler/\n[go-shield]: https://img.shields.io/badge/Golang-blue?style=for-the-badge\u0026logo=go\u0026logoColor=white\n[html-shield]: https://img.shields.io/badge/Html-orange?style=for-the-badge\u0026logo=html5\u0026logoColor=white\n[css-shield]: https://img.shields.io/badge/Css-cornflowerblue?style=for-the-badge\u0026logo=css3\n[go-url]: https://go.dev\n[gmail-shield]: https://img.shields.io/badge/Gmail-D14836?style=for-the-badge\u0026logo=gmail\u0026logoColor=white\n[gmail-url]: mailto:cjsidler@gmail.com\n[github-shield]: https://img.shields.io/badge/GitHub-black?style=for-the-badge\u0026logo=github\u0026logoColor=white\n[github-url]: https://github.com/cjsidler/go-cli-quizzer\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcjsidler%2Fgo-cyoa","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcjsidler%2Fgo-cyoa","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcjsidler%2Fgo-cyoa/lists"}