JavaScript Ruby HTML CSS Gherkin Racket Other
Switch branches/tags
Clone or download
islemaster Merge pull request #23848 from code-dot-org/revert-encoding-collation…

Revert "Update mysql adaptor to support "utf8mb4" encoding"
Latest commit 343a676 Jul 20, 2018
Failed to load latest commit information.
.chef fix typo Oct 23, 2015
.circleci Remove circle change Jul 12, 2018
.tmputils Add .gitkeep to .tmputils/ Aug 18, 2016
apps Merge pull request #23798 from code-dot-org/newrelic-app-type Jul 20, 2018
aws Merge pull request #23613 from asherkach/rubocop-style-redundant-begin Jul 13, 2018
bin Merge pull request #23279 from code-dot-org/use-youtube-nocookie-again Jul 18, 2018
cookbooks Updated cookbook versions Jul 19, 2018
dashboard Revert "Update mysql adaptor to support "utf8mb4" encoding" Jul 21, 2018
docs Update Nov 13, 2017
experimental Improvements, changes, and fixes to ELO model. Oct 4, 2016
i18n apps i18n updates Jul 10, 2018
lib Use LMDB key-value store for I18n backend Jul 20, 2018
pegasus staging content changes (-robo-commit) Jul 20, 2018
shared Use LMDB key-value store for I18n backend Jul 20, 2018
tools also detect when files are renamed Jul 2, 2018
.eslintrc.js enable space-before-block eslint rule Feb 6, 2018
.gitignore Merge branch 'staging' into verify-database-copy Jan 29, 2018
.gitmodules Small fixups Mar 23, 2017
.haml-lint.yml add fixtures exclude to .haml-lint.yml Mar 16, 2018
.haml-lint_todo.yml Remove un-referenced views from Feb 15, 2018
.hound.yml Add `rake lint:scss` task, pre-commit hook and Hound CI config Jun 16, 2016
.mention-bot Make mention bot config valid json Nov 7, 2016
.nvmrc Merge branch 'staging' into show-overlay-first Nov 1, 2016
.rubocop.yml Upgrade to Ruby 2.5 Mar 23, 2018
.rubocop_hound.yml update rubocop to 0.52.1 Jan 5, 2018
.rubocop_todo.yml Merge pull request #23613 from asherkach/rubocop-style-redundant-begin Jul 13, 2018
.scss-lint.yml Try to disable PropertyCount SCSS lint rule in HoundCI Apr 19, 2017 Fix up code of conduct [ci skip] Jul 13, 2018 Fix up code of conduct [ci skip] Jul 13, 2018
Gemfile Use LMDB key-value store for I18n backend Jul 20, 2018
Gemfile.lock Use LMDB key-value store for I18n backend Jul 20, 2018
LICENSE update LICENSE to include local development environment Feb 5, 2016
NOTICE Add attribution in copyright notices and NOTICE file. Mar 30, 2016 fixed a typo Jun 15, 2018
Rakefile Fix violations of rubocop Style/SpaceBeforeBlockBraces. Mar 21, 2017 Update Jul 18, 2018 Remove deprecated React example from Sep 7, 2017 Record how to run one test file in pegasus Jun 19, 2018
Vagrantfile Fix `rubocop --only Style/IndentationConsistency` TODOs Apr 20, 2015
codecov.yml Change the root used for dashboard coverage reports Feb 20, 2017
deployment.rb Check execution environment is Rack middleware before trying to get c… Jul 9, 2018
locals.yml.default Make load_locales comment more specific to English locales Jun 22, 2018

Circle CI Coverage Status

Welcome! You've found the source code for the website and the Code Studio platform. is a non-profit dedicated to expanding access to computer science education. You can read more about our efforts at

Quick start

  1. Follow our setup guide to configure your workstation.
  2. rake build to build the application if you have not done so already
  3. bin/dashboard-server to launch the development server.
  4. Open your browser to

To see a list of all build commands, run rake from the repository root.

How to help

Wondering where to start? See our contribution guidelines.

What's in this repo?

Here's a quick overview of the major landmarks:


The server for our Code Studio learning platform, a Ruby on Rails application responsible for:

  • Our courses, tutorials, and puzzle configurations
  • User accounts
  • Student progress and projects
  • The "levelbuilder" content creation tools


The server for the website, a Sinatra application responsible for:


The JavaScript 'engine' for all of our tutorials, puzzle types and online tools. It gets built into a static package that we serve through dashboard. Though there are currently some exceptions, the goal is that all JS code ultimately lives here, so that it gets the benefit of linting/JSX/ES6/etc. Start here if you are looking for:


Everything else

  • aws: Configuration and scripts that manage our deployments.
  • bin: Developer utilities.
  • cookbooks: Configuration management through Chef.
  • shared: Source and assets used by many parts of our application.
  • tools: Git commit hooks.