Let's Code! is a free, open source web application for young people to learn programming skills in a fun, creative way.
Check out the live site to see how it works.
nodejs
bower
ruby
mongodb
-
Clone this repository
-
Make sure you have grunt-cli installed
-
Run
npm install
-
Run
bower install
-
Add the following environment variables:
LETS_CODE_COOKIE_SECRET="some string you can set to whatever you want" LETS_CODE_SESSION_SECRET="another string that can be whatever you want"
(If you don't know how to do this, see this superuser post)
-
To use the grunt-contrib-compass plugin you will need to make sure you have the Compass Ruby gem installed. Follow the instructions in the plugins readme to see how.
-
Run
grunt seed
to pre-seed the database -
Run
grunt
to run the site
If you get an error require: cannot load such file -- sass/script/node
Then try uninstalling and reinstalling the sass gem.
Let's Code! is built using Backbone and Marionette.
We're using a modular approach, utilising the "mediator" pattern, with backbone.wreqr.
For an intro to this general approach, see:
www.slideshare.net/matt-briggs/marionette-structure-with-modules
To run the integration tests you will also need to install:
- phantomjs
- casperjs - note that to use the casperjs test API you will need to install version 1.1 or greater. See the upgrade page for more details on the differences.
- While running
grunt
, theSass
files are compiled automatically when they're saved (it may take a couple of seconds though - check the terminal output).
Configuration settings defined in either server/default.json
or
server/development
can be overridden in one of two ways:
- Create a new config file,
server/local.json
, and provide an alternative value. - Pass in a command line argument or set an environment variable. See nconf for more details.
See the Docs for information on:
Apache v2. See LICENSE.txt.
Special thanks to everyone who contributed to the development, including:
- Edward Ruchevits
- Gareth Edwards
- Phil Powell
- Adaptive Lab
And to all who have provided feedback and advice.
Email future_tech [at] pearson.com.