Version 2 of the web app to help young people learn programming skills in a fun, visual way. Now an actual working app with a Node back-end.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
app
dist
docs
server
tasks
test/integration
.bowerrc
.editorconfig
.gitattributes
.gitignore
.jshintrc
.node-version
.phantom-version
Gruntfile.js
LICENSE.txt
Procfile
README.md
bower.json
package.json

README.md

Let's Code!

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.

To get up and running on your local machine

Pre-requisites

  • nodejs
  • bower
  • ruby
  • mongodb

First time run

  1. Clone this repository

  2. Make sure you have grunt-cli installed

  3. Run npm install

  4. Run bower install

  5. 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)

  1. 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.

  2. Run grunt seed to pre-seed the database

  3. Run grunt to run the site

Issues

If you get an error require: cannot load such file -- sass/script/node Then try uninstalling and reinstalling the sass gem.

Development

Architecture/Structure

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

Integration tests

To run the integration tests you will also need to install:

Notes

  • While running grunt, the Sass files are compiled automatically when they're saved (it may take a couple of seconds though - check the terminal output).

Tailoring the setup

Configuration settings defined in either server/default.json or server/development can be overridden in one of two ways:

  1. Create a new config file, server/local.json, and provide an alternative value.
  2. Pass in a command line argument or set an environment variable. See nconf for more details.

Documentation

See the Docs for information on:

License

Apache v2. See LICENSE.txt.

Thanks

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.

Questions/Feedback

Email future_tech [at] pearson.com.