Coder Social home page Coder Social logo

bolster's Introduction

Bolster

Please note: This document is currently in DRAFT status and requires further work

Do you yearn to create Backbone Marionette applications that have Backbone Relational & Backbone Radio integration, access to a host of useful helper functions including logging, and can be created from just a few lines of code? Well Bolster is the library for you!

Bolster helps to manage the following tasks in creating and running robust Backbone Marionette applications:

  • Initialise and extend core Backbone Relational entities and model scope
  • Create the desired Backbone Radio channels
  • Initialise and extend core Backbone Marionette entities to include logging, radio event listeners and more
  • Create a Backbone Marionette application with specified Modules and entry-point Regions
  • Manage the process of starting and stopping Modules per route

Installation

Install using npm:

$ npm install bolster

Documentation

Getting Started

Import the library:

var Br = require('bolster');

Define your Backbone Radio channels:

var channels = ['user'];

Initialize Bolster:

Br.initialize({
  channels: channels, // Your Backbone Radio channels
  debug: true, // Used to turn on debug mode
  Model: require('system/model'), // Optional: Your own Model definition which will inherit all the properties of the Br Model definition
  Collection: require('system/collection') // Optional: Your own Collection definition which will inherit all the properties of the Br Collection definition
});

Define your Backbone Relational Models and Collections Scope (more on the specifics of Models & Collections later):

var scope = {
  // Models
  User: require('./models/user'),
  Purchase: require('./models/purchase'),
  // Collections
  Users: require('./collections/users'),
  Purchases: require('./collections/purchases')
};

Add your Backbone Relational Models and Collections to the Backbone Relational Model Scope:

Br.addModelScope(scope);

Create your application config (more on the specifics of Regions & Modules later):

var config = {
  resetWindowOnRoute: true, // Always scroll to the top of the page on-route

  // Application Regions
  regions: {
    header    : '*[data-region="index.header"]',  // <div data-region="index.header"></div> in your HTML
    main      : '*[data-region="index.main"]',    // <div data-region="index.main"></div> in your HTML
    footer    : '*[data-region="index.footer"]'   // <div data-region="index.footer"></div> in your HTML
  },

  // Application Modules
  modules: {
    'Bootstrap'         : require('modules/bootstrap'),
    'Analytics'         : require('modules/analytics'),
    'Alerts'            : require('modules/alerts'),
    'Search'            : require('modules/search'),
    'Help'              : require('modules/help'),
    'PlayerControls'    : require('modules/player-controls'),
  },

  // Traffic Control - which Modules to start and which not to stop on-route
  traffic: {
    always_on: ['Bootstrap', 'Analytics', 'Alerts'],
    dont_stop: ['PlayerControls']
  }
};

Create your application:

var app = Br.createApp(config);

HTML

@todo

Regions

@todo

Modules

@todo

Backbone Relational

@todo

API

@todo

Companies

The following companies are using Bolster

<a href="http://www.abc.net.au/radio" target="_blank")>Australian Broadcasting Corporation - Radio

bolster's People

Contributors

cjmyles avatar

Watchers

 avatar James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.