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.
- Follow our setup guide to configure your workstation.
rake build
to build the application if you have not done so alreadybin/dashboard-server
to launch the development server.- Open your browser to http://localhost-studio.code.org:3000/.
To see a list of all build commands, run rake
from the repository root.
Wondering where to start? See our contribution guidelines.
Here's a quick overview of the major landmarks:
- SETUP: Instructions to get everything up and running.
- TESTING: How to be sure nothing broke.
- STYLEGUIDE: Our code style conventions.
- Our LICENSE and NOTICE.
- There are many more topical guides in the docs folder.
- In addition, several sections of the repository have their own documentation:
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 Code.org 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:
- The Hour of Code tutorials: Star Wars, Minecraft, Frozen and Classic Maze
- Tools like Artist, Play Lab and App Lab
- Other core puzzle types: Maze, Farmer, Bee, Bounce, Calc, Eval
- Other JS code consumed by dashboard and pegasus.
- 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.