{"id":19469514,"url":"https://github.com/hackerkid/testrepo","last_synced_at":"2025-07-24T11:06:04.350Z","repository":{"id":71211754,"uuid":"52994962","full_name":"hackerkid/testrepo","owner":"hackerkid","description":null,"archived":false,"fork":false,"pushed_at":"2016-03-03T16:51:33.000Z","size":3514,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-08T05:04:58.876Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Ruby","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/hackerkid.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","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-03-02T20:41:21.000Z","updated_at":"2016-03-02T20:42:19.000Z","dependencies_parsed_at":"2023-06-03T09:45:49.562Z","dependency_job_id":null,"html_url":"https://github.com/hackerkid/testrepo","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hackerkid%2Ftestrepo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hackerkid%2Ftestrepo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hackerkid%2Ftestrepo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hackerkid%2Ftestrepo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hackerkid","download_url":"https://codeload.github.com/hackerkid/testrepo/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240683416,"owners_count":19840698,"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-10T18:51:42.291Z","updated_at":"2025-02-25T14:29:50.438Z","avatar_url":"https://github.com/hackerkid.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Classroom for GitHub\n[![Build Status](https://travis-ci.org/hackerkid/testrepo.svg?branch=master)](https://travis-ci.org/education/classroom)\n\nClassroom for GitHub is a [Ruby on Rails](http://rubyonrails.org/) application designed to automate repository creation and access control, making it easy for teachers to distribute starter code and collect assignments on GitHub\n\n![Classroom for GitHub screenshot](https://cloud.githubusercontent.com/assets/123345/9819714/95b26b9c-58a7-11e5-99e9-d65996d53687.png)\n\n## How it works\n\nAssignments are the core of Classroom for GitHub. Teachers can easily create an assignment and distribute it to students using a private invitation URL. Optional starter code can be provided for individual or group work. It's even possible to delegate assignment creation and management to co-teachers and teaching assistants by adding them as organization administrators.\n\n## Hacking on Classroom for GitHub\n\n### Get started\nNew to Ruby? No worries! You can follow these instructions to install a local server.\n\n#### Installing a Local Server\n\nFirst things first, you'll need to install Ruby 2.2.4. We recommend using the excellent [rbenv](https://github.com/sstephenson/rbenv),\nand [ruby-build](https://github.com/sstephenson/ruby-build)\n\n```bash\nrbenv install 2.3.0\nrbenv global 2.3.0\n```\n\nNext, you'll need to make sure that you have PostgreSQL, Redis, Memcached, and Elasticsearch installed. This can be\ndone easily on OSX using [Homebrew](http://brew.sh)\n\n```bash\nbrew install postgresql redis memcached elasticsearch\n```\n\nYou will want to set postgresql to autostart at login via launchctl, if not already. See `brew info postgresql`. Redis and memcached may be setup similarly via launchctl or setup project wide by using foreman, described below.\n\nNow, let's install the gems from the `Gemfile` (\"Gems\" are synonymous with libraries in other\nlanguages).\n\n```bash\ngem install bundler \u0026\u0026 rbenv rehash\n```\n\n### Setup Classroom for GitHub\nOnce bundler is installed go ahead and run the `setup` script\n```\nscript/setup\n```\n\n### Production environment variables\nENV Variable | Description |\n:-------------------|:-----------------|\n`AIRBRAKE_API_KEY` | the API key for airbrake.io, if set Airbrake will be enabled\n`CANONICAL_HOST` | the preferred hostname for the application, if set requests served on other hostnames will be redirected\n`GOOGLE_ANALYTICS_TRACKING_ID` | identifier for Google Analytics in the format `UA-.*`\n`PINGLISH_ENABLED` | Enable the `/_ping` endpoint with relevant health checks\n`MOTD` | Show the message of the day banner at the top of the site\n\n### Development environment variables\nThese values must be present in your `.env` file (created by `script/setup`).\n\nENV Variable | Description |\n:-------------------|:-----------------|\n`GITHUB_CLIENT_ID`| the GitHub Application Client ID.\n`GITHUB_CLIENT_SECRET`| the GitHub Application Client Secret.\n`NON_STAFF_GITHUB_ADMIN_IDS` | GitHub `user_ids` of users to be granted staff level access.\n\n### Testing environment variables\nClassroom for GitHub uses [VCR](https://github.com/vcr/vcr) for recording and playing back API fixtures during test runs. These cassettes (fixtures) are part of the Git project in the `spec/support/cassettes` folder. If you're not recording new cassettes you can run the specs with existing cassettes with:\n\n```bash\nscript/test\n```\n\nClassroom for GitHub uses environmental variables for storing credentials used in testing, these values are located in your `.env` file (created by `script/setup`).\nIf you are recording new cassettes, you need to make sure all of these values are present.\n\nENV Variable | Description |\n:-------------------|:-----------------|\n`TEST_CLASSROOM_OWNER_ID` | The GitHub `user_id` of an organization admin.\n`TEST_CLASSROOM_OWNER_GITHUB_TOKEN` | The [Personal Access Token](https://github.com/blog/1509-personal-api-tokens) for the classroom owner\n`TEST_CLASSROOM_STUDENT_ID` | Test OAuth application client ID.\n`TEST_CLASSROOM_STUDENT_GITHUB_TOKEN` | The [Personal Access Token](https://github.com/blog/1509-personal-api-tokens) for the student\n`TEST_CLASSROOM_OWNER_ORGANIZATION_ID` | GitHub ID (preferably one created specifically for testing against).\n`TEST_CLASSROOM_OWNER_ORGANIZATION_LOGIN` | GitHub login (preferably one created specifically for testing against).\n\n### Running the application\n\nForeman is setup to manage redis, memcached, sidekiq, and elasticsearch in development mode. Postgresql must be running prior executing foreman. It assumes that redis, memcached, and elasticsearch are not already running on the system. Alternatively, you may run `script/sidekiq`, if you have to have redis, memcached, and elasticsearch always running system wide. To execute foreman, and this application's dependencies, run:\n\n```bash\nscript/workers\n```\n\nAfter that, you may start the rails server in a separate terminal with:\n\n```bash\nscript/server\n```\n\nAnd that's it! You should have a working instance of Classroom for GitHub located [here](http://localhost:3000)\n\n## Deployment\n\nWe strongly encourage you to use [https://classroom.github.com](https://classroom.github.com), but if you would like your own version Classroom for GitHub can be easily deployed to Heroku.\n\n[![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy)\n\n## Contributing\nWe'd love to have you participate. Please check out [contributing guidelines](CONTRIBUTING.md).\n\n## Contributors\nClassroom is developed by these [contributors](https://github.com/education/classroom/graphs/contributors).\n\nShout out to [GitHub Summer of Code](https://github.com/blog/1970-students-work-on-open-source-with-github-this-summer) student, [Mark Tareshawty](http://marktareshawty.com), from [The Ohio State University](https://www.osu.edu/) for his work on Classroom for GitHub.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhackerkid%2Ftestrepo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhackerkid%2Ftestrepo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhackerkid%2Ftestrepo/lists"}