shrub
shrub copied to clipboard
AngularJS and NodeJS, Socket.IO, Bootstrap, jQuery all wrapped up in an elegant package
Shrub
See the full documentation at http://cha0s.github.io/shrub
Shrub is a JavaScript (or CoffeeScript if you prefer) application framework. AngularJS is used on the client-side, as well as Socket.IO, enabling real-time communication right out of the box. The server is an Express Node.js server using Waterline for storage.
Shrub is organized into packages which implement hooks, as a means of communicating between each other and influencing the way the entire application behaves.
Shrub handles generation (using Grunt) of all Angular boilerplate and more, to allow you to structure your application in a very clean and consistent way. Packages can even implement a hook to define their own build behavior.
The intention of Shrub is to allow you to build rich, powerful applications in an elegant and structured way -- without needing to hack on or change Shrub's core codebase. Everything you need should be doable by creating a new package. If you find the opposite to be true, feel free to open an issue!
Tutorials in general are a bit lacking at the moment, this will be soon be remedied!
Getting started
Here is an excerpt from the documentation:
First off, you'll need to clone Shrub itself. Fire up your trusty terminal:
git clone git://github.com/cha0s/shrub.git
(obviously you can use a git management tool if you fancy that sort of thing, not that there's anything wrong with that...)
Head into the directory you just cloned and issue:
npm install
The next step is to create a configuration file. Look in the config directory
and you will see a file called default.settings.yml. Create a copy of that
file called settings.yml. Shrub requires a configuration file at this
time, so this is not an optional step.
Finally, to build and run the code you can do this:
DEBUG=shrub:* grunt execute
You don't strictly need the DEBUG=shrub:* part, but we do that so it's easy
to see when the server is up and ready for connections (and preserving the
ability to skip using that and have the server output be silent for
production).
When you see shrub:http Shrub HTTP server up and running on port 4201!, that
means you can visit your site in the browser. Go ahead and visit
http://localhost:4201 and see your Shrub instance chugging along!
TODO
See the TODO list.