The code powering code.org and studio.code.org
Switch branches/tags
Clone or download
Latest commit 57ce8ae Oct 18, 2018
Permalink
Failed to load latest commit information.
.chef fix typo Oct 23, 2015
.circleci Don't store coverage reports as Circle artifacts Aug 23, 2018
.tmputils Add .gitkeep to .tmputils/ Aug 18, 2016
apps Merge pull request #25475 from code-dot-org/clickable-congrats-tile-i… Oct 18, 2018
aws merge staging [ci skip] Oct 16, 2018
bin include recently-added pegasus markdown files in crowdin sync Oct 9, 2018
cookbooks Updated cookbook versions Oct 11, 2018
dashboard typo fix Oct 18, 2018
docs Changing default section name. Sep 9, 2018
experimental Improvements, changes, and fixes to ELO model. Oct 4, 2016
i18n sync pegasus strings, spritelab 10/17 -ErinB Oct 17, 2018
lib Merge pull request #25465 from code-dot-org/sprite-lab-create-dropdown Oct 17, 2018
pegasus sync pegasus strings, team 10/17 -ErinB Oct 18, 2018
shared Merge pull request #25467 from code-dot-org/sprite-lab-project-widget Oct 17, 2018
tools Broken link checker: write final output before exiting Aug 30, 2018
.eslintrc.js Re-throw errors in native code Aug 3, 2018
.gitignore update p5.play 1.3.0-cdo, add vscode to gitignore Aug 24, 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 code.org/views 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
CODE_OF_CONDUCT.md Fix up code of conduct [ci skip] Jul 13, 2018
CONTRIBUTING.md Fix up code of conduct [ci skip] Jul 13, 2018
Gemfile Update firehose gem Sep 17, 2018
Gemfile.lock Update firehose gem Sep 17, 2018
LICENSE update LICENSE to include local development environment Feb 5, 2016
NOTICE Add p5.play attribution in copyright notices and NOTICE file. Mar 30, 2016
README.md fixed a typo Jun 15, 2018
Rakefile Fix violations of rubocop Style/SpaceBeforeBlockBraces. Mar 21, 2017
SETUP.md Update SETUP.md Ubuntu instructions for rvm Aug 27, 2018
STYLEGUIDE.md Remove deprecated React example from STYLEGUIDE.md Sep 7, 2017
TESTING.md update info about how to run a single test from shared Sep 5, 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 Merge pull request #25278 from code-dot-org/hoc2018-homepage Oct 15, 2018
locals.yml.default Make load_locales comment more specific to English locales Jun 22, 2018

README.md

Code.org

Circle CI Coverage Status

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

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 http://localhost-studio.code.org:3000/.

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:

dashboard

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

pegasus

The server for the Code.org website, a Sinatra application responsible for:

apps

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:

Documentation

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.