-
Notifications
You must be signed in to change notification settings - Fork 41
Developer Guide
These are instructions for setting up a full CODAP development environment. This is useful for running CODAP locally with the purpose of modifying CODAP software. It is not necessary if all you want to do is create a plugin (Data Interactive) that will run in CODAP. If that is your goal, please see https://github.com/concord-consortium/codap/wiki/CODAP-Data-Interactive-API.
CODAP utilizes the SproutCore framework which requires Ruby 1.9.2+ for its build tools.
Depending on the version of Ruby installed on your system, you may find it convenient to use RVM which helps manage multiple versions of Ruby.
####Instructions for Macs:####
-
Install SproutCore 1.11 Follow the instructions for installing SproutCore from SproutCore website. CODAP uses SproutCore version 1.11 which needs to be specified during installation.
$ gem install sproutcore -v 1.11
-
Get the CODAP Source
To clone the CODAP repository itself:
$ https://github.com/concord-consortium/codap.git $ cd codap $ git submodule update --init --recursive
To work with the CODAP repository it is often useful to fork it on Github and then clone the fork.
####Instructions for Windows 8.1:####
- Install Ruby 1.9.3 with DevKit
-
Run installer to install Ruby
-
Unzip and install DevKit
-
Run Command Prompt as Ruby
c:\Ruby193\DevKit>ruby dk.rb init
c:\Ruby193\DevKit>ruby dk.rb review
c:\Ruby193\DevKit>ruby dk.rb install
-
Install SproutCore
c:\Ruby193\DevKit>gem install sproutcore
-
Get the CODAP Source
To download the CODAP repository to your local directory:
- Go to Codap Repository
- Click on Clone in Desktop button
To work with the CODAP repository it is often useful to fork it on Github and then clone the fork.
Assuming you have the NodeJS and the Node Package Manager (npm) installed on your system, change to your CODAP directory in a terminal window and run the following commands:
% npm install # or 'yarn'
% npm run build:bundle
On the command line, change your working directory to the project directory and run:
$ sc-server
This runs the SproutCore server, which serves the application code locally. To run the application, enter the following URL into your web browser of choice: http://localhost:4020/dg.
This should run the CODAP application.
Data can be introduced into CODAP in a variety of ways. For example, in modular browsers a CSV or tab-delimited .txt (simple text) file can be dragged and dropped into the CODAP workspace. Third party data sets/activities can also be dropped into the workspace. These are called data interactives. There are examples of data games on the project page.
Most changes to the CODAP application source are automatically reflected by simply reloading the browser page at http://localhost:4020/dg. More extensive changes (e.g. adding/removing source files) may require stopping and restarting sc-server
and/or removing the generated tmp
folder. For npm users, a set of scripts are defined in the package.json
file to assist with many of these development tasks. Some of the more commonly used scripts for local development are listed below. See the package.json
file for the full list of available scripts.
-
npm run build:bundle
- builds the library bundle required by CODAP. Must be run before running CODAP locally for the first time. -
npm run clean
- deletes thetmp
directory and other build products -
npm run clean-and-serve
- runs theclean
script and then startssc-server
-
npm run codap
- startssc-server
-
npm run lint
- runs ESLint/JSHint over the sources -
npm run test
- runs CODAP's unit tests
CODAP uses the Cloud File Manager library (CFM) to handle most of its document storage/retrieval. Currently, the built CFM files are simply included in the CODAP git repository. To update the version of CFM included in CODAP, it is necessary to build the CFM library with some CODAP-specific options and put the appropriate CFM output files into the apps/dg/resources/cloud-file-manager
directory in CODAP. There is an npm script named build:codap
in the CFM repository which takes care of all the details as long as the codap
and cloud-file-manager
repositories are in sibling directories, i.e. something like ../projects/codap
and ../projects/cloud-file-manager
. With this configuration, within the cloud-file-manager
repository, simply typing:
$ npm run build:codap
will build the CFM and place the output files in the appropriate place in the codap
repository. Under the hood, npm run build:codap
executes the following command:
$ gulp clean-and-build --dest ../codap/apps/dg/resources/cloud-file-manager --codap --nojQuery --noReact --noMap
If your codap
repository is not a sibling of your cloud-file-manager
repository or has a different name, you can execute an analogous command with a different destination path. After updating the CFM, simply reloading the page at http://localhost:4020/dg
should make the changes available as long as sc-server
is running.