Dependencies - Sea2C/Workflow2.0 GitHub Wiki
Below is a list of the dependencies across the tiers of the application, how they are used, and what they do.
Server
The packages below are utilized directly by the Node application.
-
Consolidate is a package for managing templates and their engines in Express.
-
LinkedIn Dust is a powerful templating engine compatible with Node and the browser. This is the view engine utilized by Express for rendering server side views.
-
[Everyauth] (http://everyauth.com/) is a framework for authentication and authorization with a number of third party services (like Facebook, Twitter, Google, and others). This library provides authentication to Facebook in the application.
-
[Express] (http://expressjs.com/) is a web application framework for Node. It provides comprehensive sets of middleware, and request route handling. This is the foundation of the application.
-
[LESS Middleware] (https://github.com/emberfeather/less.js-middleware) is an Express middleware that will compile [LESS] (http://lesscss.org/) into Cascading Style Sheets (CSS). The application utilizes [Bootstrap] (http://twitter.github.com/bootstrap/) with a theme from [Bootswatch] (http://bootswatch.com/) called [Cosmo] (http://bootswatch.com/cosmo/) that is custom compiled by this middleware.
-
[Moment] (http://momentjs.com/) is a library for managing dates and time in Node and the browser. This library is primarily utilized for formatting dates consistently and ensuring that dates are in UTC.
Development
The packages below are utilized only during development, and primarily for testing.
-
[JSCOVER] (https://github.com/fengmk2/jscover) is a Node library that instruments JavaScript for code coverage. This library is utilized during testing for gathering code coverage metrics.
-
[Mocha] (http://visionmedia.github.com/mocha/) is a test framework for Node and the browser. This library executes the unit tests and generates the code coverage report.
-
[Sinon] (http://sinonjs.org/) is a library providing test utilities like [spies] (http://sinonjs.org/docs/#spies), [stubs] (http://sinonjs.org/docs/#stubs), and [mocks] (http://sinonjs.org/docs/#mocks) for Node and the browser. This library is used throughout various tests to reduce code complexity, and keep things simple.
-
[Supervisor] (https://github.com/isaacs/node-supervisor) is a supervisor for Node programs that can restart the program when files change, or when the program crashes among other things. This library is used during development so that management of the server process is handled automatically.
Application
-
[Backbone] (http://backbonejs.org/) is a library providing models, collections, views, and routing for JavaScript. This library depends on [Underscore] (http://underscorejs.org/) or the compatible library [Lo-Dash] (http://lodash.com/), and it can utilize [jQuery] (http://jquery.com/) or the compatible library [Zepto] (http://zeptojs.com/). It is used for [models] (http://backbonejs.org/#Model), [views] (http://backbonejs.org/#View), and client side [routing] (http://backbonejs.org/#Router).
-
[Bootstrap] (http://twitter.github.com/bootstrap/) is a library that provides additional client side behaviors for the accompanying styling framework. This library depends on [jQuery] (http://jquery.com/).
-
[LinkedIn Dust] (http://linkedin.github.com/dustjs/) is a powerful templating engine compatible with Node and the browser. This library provides client side rendering of templates in [Backbone views] (http://backbonejs.org/#View).
-
[jQuery] (http://jquery.com/) is a library that simplifies interactions with the DOM, among other things. This library is primarily included as it is a required dependency for [Bootstrap] (http://twitter.github.com/bootstrap/).
-
[Lo-Dash] (http://lodash.com/) is a library providing utility functions with an interface compatible with [Underscore] (http://underscorejs.org/). This library is primarily included as it is a required dependency for [Backbone] (http://backbonejs.org/).
-
[Moment] (http://momentjs.com/) is a library for managing dates and time in Node and the browser. This library is primarily utilized for formatting dates consistently and ensuring that dates are in UTC before they are sent to the server.