/Basic-Application-Boilerplate

A great place to start for a basic web application

Primary LanguageJavaScript

##Basic Application Boilerplate Build Status

This project contains the foundations for a web application using some of my favorite technologies. I use it is a reference when I start creating a new application.

This is a Node/Backbone application. Node.js is used for my server and Backbone.js is used as my client side JS framework.

###Technologies Used

Server Side

  1. Express.js as my http server framework. Its Great!
  2. Express3 Handlebars for my view engine integration
  3. [mongodb] 14 for session storage and data storage

Client Side

  1. jquery.js why do you ask?
  2. require.js AMD script loader because your mom told you so
  3. Backbone.js for client side architecture
  4. Underscore.js because we have been together so long and we are comfortable

Building and Packaging

  1. [Grunt.js] 5 for task automation
  2. [Less] 11 CSS pre-processor for more maintainable css
  3. [Bower] 12 for my client side dependency package manager

Testing

  1. QUnite

###Getting Started

  1. Clone project
    • https://github.com/dwaltz/Basic-Application-Boilerplate.git
  2. Install/run local instance of mongodb
  3. Switch into the folder you just cloned and run npm install
  4. Then install your client dependencies by running bower install
  5. Start the app with 'node app'

###Build Process via GruntJS

  1. default

    • Runs jshint
    • Runs qunit task
    • Runs optimizeJS task
    • Runs optimizeCSS task
    • Optimizes Images
  2. watch-css

    • Runs LESS watcher
  3. optimizeJS (start of the optimized version)

    • Runs clean on optimized folder
    • Runs requirejs, minifying and comibining JS
  4. optimizeCSS

    • Runs recess on public/css/styles.less
      • compresses to public/css/styles.css
  5. test

    • Runs jshint
    • Runs qunit task

###Items to work on

  1. Implement server side code testing
  2. Create more complete client application example

###Special Thanks

Easy Node Authentication Tutorial