{"id":16936490,"url":"https://github.com/jonhoo/icebreaker","last_synced_at":"2026-03-08T04:31:28.855Z","repository":{"id":57523630,"uuid":"50533389","full_name":"jonhoo/icebreaker","owner":"jonhoo","description":"Web app that allows students to ask real-time, anonymous questions during class","archived":false,"fork":false,"pushed_at":"2024-01-03T12:14:28.000Z","size":891,"stargazers_count":32,"open_issues_count":0,"forks_count":5,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-23T21:55:12.436Z","etag":null,"topics":["anonymity","classroom","education","question-answering"],"latest_commit_sha":null,"homepage":null,"language":"Go","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/jonhoo.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":"2016-01-27T19:51:07.000Z","updated_at":"2025-10-13T21:05:56.000Z","dependencies_parsed_at":"2024-06-20T11:18:46.855Z","dependency_job_id":null,"html_url":"https://github.com/jonhoo/icebreaker","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jonhoo/icebreaker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonhoo%2Ficebreaker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonhoo%2Ficebreaker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonhoo%2Ficebreaker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonhoo%2Ficebreaker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jonhoo","download_url":"https://codeload.github.com/jonhoo/icebreaker/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonhoo%2Ficebreaker/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30245213,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-08T00:58:18.660Z","status":"online","status_checked_at":"2026-03-08T02:00:06.215Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["anonymity","classroom","education","question-answering"],"created_at":"2024-10-13T20:57:08.208Z","updated_at":"2026-03-08T04:31:28.827Z","avatar_url":"https://github.com/jonhoo.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Ice Breaker\n\nIce Breaker is a web application designed to allow students to ask\nreal-time, anonymous questions during class. Once started, it allows the\ncreation of *rooms*, each with its own set of keys: a private\n*instructor key*, and a public *student key*. Each key exposes a\ndifferent view of the room; students see only a form that allows them to\nsubmit questions (optionally including a name), whereas instructors see\na stream of incoming questions from students.\n\nThe envisioned use of this application is that one of the instructors\n(most likely a TA) monitors the instructor view during class, and asks\nany incoming questions by proxy. The hope is that this will lower the\nbarrier for shyer students to ask questions during class.\n\nIce Breaker was designed to augment, not replace, systems like \u003ca\nhref=\"https://piazza.com\"\u003ePiazza\u003c/a\u003e. Because of this, all Ice Breaker\nrooms are ephemeral: if the server is restarted, all questions and rooms\nare erased. To minimize the overhead of using Ice Breaker, there are\nalso no users, no sessions, and no administration interface. Rooms are\ncreated by the first person to open them, and keys are given directly in\nthe room URLs.\n\n## Usage\n\nOnce Ice Breaker has been deployed (see below), usage is\nstraightforward. To create a new room, simply point your browser at\n`$URL/room/$ROOM/$KEY`. A student key (`$SKEY`) will be automatically\ngenerated from the instructor key, and will be shown in the instructor\nview. Student can now access the room using `$URL/room/$ROOM/$SKEY`.\nOther instructors can join the room by using the same URL as was used to\ncreate the room. The rooms should also be easily accessible on mobile\nphones.\n\nInstructors can see all questions, whereas students can see none.\nQuestions/notes posted by other instructors will be highlighted in the\nquestion feed, allowing basic communication between instructors. The\ninstructor feed will automatically show new questions as they come in on\nmost modern browsers.\n\n**Note**: Since Ice Breaker deployments are not stateful, a server\nrestart will wipe all rooms, including their keys. To prevent students\nfrom accidentally re-creating an old room with the student key as the\ninstructor key when accessing an old URL, instructor keys cannot be on\nthe form of student keys (eight character hex strings).\n\n## Deployment\n\nIce Breaker is trivial to deploy:\n\n```shell\ngo install github.com/jonhoo/icebreaker\nenv PORT=8080 $GOPATH/bin/icebreaker\n```\n\nThe repository also contains all the configuration files required to\ndeploy directly to [Heroku](https://heroku.com). Simply follow the steps\nfor [creating a (free) Heroku\ndyno](https://devcenter.heroku.com/articles/git#creating-a-heroku-remote),\nand then [push to\ndeploy](https://devcenter.heroku.com/articles/git#deploying-code). If\nyou already have the [Heroku\nCLI](https://devcenter.heroku.com/articles/heroku-command) installed,\nyou can quickly spin up an instance using:\n\n```shell\ngit clone https://github.com/jonhoo/icebreaker.git\ncd icebreaker\nheroku create\ngit push heroku master\nheroku open # opens the deployed install in your browser\n```\n\nBeware that Heroku will put your server [to\nsleep](https://devcenter.heroku.com/articles/dyno-sleeping#sleeping)\nafter a certain amount of time if you are on the free tier service. This\nprocess effectively terminates the application and restarts it the next\ntime one of its URLs are accessed, so once this happens, all room state\nwill be wiped.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjonhoo%2Ficebreaker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjonhoo%2Ficebreaker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjonhoo%2Ficebreaker/lists"}