Introducing CodeFollow

CodeFollow is a tool that allows developers to create interactive code presentations and then share them with large user groups.

How It Works

It's fairly easy to setup a CodeFollow presentation. First, a developer creates an index file that lays out how the order the presentation should be displayed. Each slide can be an external markdown file or just written inline.

A developer can also customize the theme of the presentation by providing their own css file.

index The presentation structure
[title JavaScript Basics]

# allows for custom presentation themes
[theme style.css]

# display a handful of slides using Markdown
[slide introduction.md]
[slide about_javascript.md]
[slide declaring_variables.md]

# executes the test in the 'declaring_variables' directory
[test declaring_variables]

# show the current rankings
[rankings]

# then wrap up
[slide conclusion.md]

Adding Tests

Tests are a little more difficult to create and depends a lot on the language you're using. For example, if youre writing tests for a JavaScript presentation, you use Jasmine style tests.

For example, this was a test for checking if a user declared variables correctly.

// I'm still learning Jasmine, there are probably better
// ways to do some of these thing

describe('variable `a`', function() {
  it('should should exist', function() {
    expect ('a' in window ).toBe( true ); 
  });
  it('it should equal to `3`', function() {
    expect( a === 3 ).toBe( true ); 
  });
});

describe('variable `b`', function() {
  it('it should exist', function() {
    expect ('b' in window ).toBe( true ); 
  });
  it('variable `b` should equal to `false`', function() {
    expect( b === false ).toBe( true ); 
  });
});

describe('variable `c`', function() {
  it('it should exist', function() {
    expect ( 'c' in window ).toBe( true ); 
  });
  it('it should equal to `name`', function() {
    expect( c ).toBe( 'name' ); 
  });  
});

So far, CodeFollow is targeted more towards JavaScript, HTML and CSS testing, but some simple support for Ruby is available (but needs a lot of works still)

What's Next?

I've only used CodeFollow for my own presentations, but I might release it for others to use before long. If you have any questions, feel free to contact me and I'll try my best to answer them.

July 4, 2013

Introducing CodeFollow

Introducing a new project I've been working on called CodeFollow