Fork me on GitHub

DrumKit.js

DrumKit is a plugin-powered, full-stack Web development framework for Node.js. It allows the developer to write one set of CoffeeScript/JavaScript files and run them both on the server and on the browser.

WARNING! This framework is currently in very early development, it may be broken or may break at any time.

Why Use DrumKit?

Server/Browser Share Code

Optimized for Fat Client Apps

Your Favorite Languages

Flexibile and Extensible

Installation

DrumKit is dependent on Node.js and NPM. If you have both, you can install DrumKit globally:

npm install -g drumkit

It is important to install this globally so that you have access to the drumkit command across your system. All DrumKit modules on the other hand will be installed locally in each of your DrumKit projects.

Getting Started

DrumKit will bootstrap a project directory for you with the create command:

cd ~/myapps
drumkit create new-app

This will generate a DrumKit application in ~/myapps/new-app and will use npm to install your dependencies. Once your app is installed, you can start the server:

cd new-app
drumkit start

By default, your app will be running at http://localhost:8080.

Running the Console

You also can interact with your code in a REPL by firing up the console:

cd path/to/your/app
drumkit console

Now Build Out Your App!

  1. Build models with dk-model (see also dk-model-couchdb and dk-couchdb).

  2. Build view templates and helpers with dk-template.

  3. Build routes with dk-routes.

  4. Check out these other core DrumKit plugins:

  5. Start building your own plugins with drumkit plugin [pluginName]

TODO List

I am actively looking for collaborators on DrumKit and would love your help! Please get in touch if you have ideas for specific tasks you would like to take on. As this is only version 0.1.0, there is still a huge amount of work to be done! This includes, but is not limited to:

Bug Reporting / Squashing

Now that the basic APIs for DrumKit have been firmed up and documented, work is needed to start building out test DrumKit apps to see what bugs are present.

Automated Testing

The existing plugins currently do not have test suites for regression testing. Adding test suites for these APIs as soon as possible is crucial for encouraging project collaboration, minimizing developer frustration and ensuring working code.

In the same way that all plugins are built the same way within the DrumKit API, I would like to see a consistent test runner used for all plugins' tests. Ideally, this should also be made available to DrumKit app developers that want to write tests for their implementation code.

I am currently open to two testing tools -- Jasmine and Vows. I love Jasmine and think it's an excellent tool, but Vows currently has a lot of traction in the Node community and seems to excel with async code. I would like to see a `dk-test` plugin built that sets up a library-agnostic testing environment, and then `dk-test-jasmine` and `dk-test-vows` (and eventually others) will include library specific implementations.

And the rest...