This Setup document describes how to set up your workstation to develop for Code.org.
Our code is segmented into four parts:
- Blockly Core is the visual programming language platform used for the interactive tutorials.
- Blockly includes apps—blockly puzzles built based on Blockly Core.
- Dashboard, is the tutorial platform which organizes blockly levels into tutorials.
- Pegasus is the main site which also includes the teacher dashboard (support for teachers to track student progress).
cd code-dot-orgrake build:dashboard(Generally, do this after each pull)bin/dashboard-server- Visit http://localhost.studio.code.org:3000/
cd code-dot-orgrake build:pegasus(Generally, do this after each pull)bin/pegasus-server- Visit http://localhost.code.org:3000/
The studio.code.org default dashboard install includes a static build of blockly and of code-studio js, but if you want to make modifications to these you'll want to enable building them in the build:
You'll need to do this once:
- OS X:
- Install the Java 8 JDK
cd code-dot-org- To build apps/blocky-core, edit
locals.ymlto add: - Add
build_apps: true - Add
build_blockly_core: true(if you want to build blockly core -- not necessary if you only want to make changes to apps) - Add
use_my_apps: true - To build code_studio js, edit
locals.ymlto add: - Add
use_my_code_studio: true rake install
This configures your system to build apps/blockly-core/code-studio whenever you run rake build and to use the versions that you build yourself.
cd code-dot-orgrake build
This will build everything you have set to build in locals.yml.
You can use rake build:apps, rake build:blockly_core and rake build:code_studio to build a specific project.
You can also set build_dashboard: false and/or build_pegasus: false in locals.yml if you don't need to build these frequently. They default to true.
Alternatively, you can run: rake build:core_and_apps_dev, which will build blockly core and the apps bundle without running tests and without localization.
Wondering where to start? See our contribution guidelines for more information on helping us out.