initial commit for experimental express 4 mean stack app
start to fill out README with key info, add core express packages to npm, add modules.js file to create arrays of packages we might need separated by category, create server.js to use as our main server file, create server directory with config for general server config, express config, and initial routes
AUTH AND USER MODEL:
* create and add mongoose.js pkg
* create and add passport.js
* read passport.js guide and read token-based auth articles and add guidance in README
* add auth info and guidance to README
* fix link formatting in README (parens and square brackets were reversed)
* add passport and passport strategies npm pkgs
* add JSON Web Token package
* create secrete for jwt (JSON Web Token) session
* initialize passport and passport-session
* setup auth encryption module
* create user model in mongoose
* integrate user model with encryption
* register user model with mongoose config
* add composable middleware (but look to remove this if possible)
* setup initial auth implementation using passport local strategy
* get server running with current passport setup
get rid of express body-parser and express-session deprecation warnings by no longer using just bodyParser() but insteal always calling bodyParser with some additional method (bodyParser.urlencoded() and bodyParser.json() in this case).  express-session is going to change in the future, so in order to prevent future errors when the default values change, we pass in the defaults to saveUnitialized and resave
fix res.sendfile call for serving all other pages using public/app/index.html (so angular can take over) and create public/app/index.html file with standard initializr stuff (ie checks and placeholder for google analytics etc)
setup grunt with default task (just prints hello world)
add initConfig and dynamic getter property and config.json for grunt
add grunt-contrib-watch and create first file watch, add add grunt-express-server and add grunt-wiredep (not yet setup)
loading in files to watch from a json file, using require instead of readJSON, and creating a config object to then use with the call to grunt.initConfig
add grunt-contrib-uglify along with an uglify task that builds to dist on file changes
add uglify task to minify javascript, break watch task down into components and create separate grunt/watch directory to be required in
add grunt-contrib-compass and compass task for preprocessing scss and converting it to css
add jit-grunt (similar to load-grunt-tasks) to obviate need to declare loading of npmTasks, which feels repetitive - note that tasks that have names that do not match either grunt-contrib-task-name, grunt-task-name, or task-name will not be loaded automatically and should be declared in an object passed in as the second param to the jit-grunt require: require('jit-grunt')(grunt, {sprite: 'grunt-spritesmit', protractor: 'grunt-protractor-runner' });
add time-grunt for displaying time it takes to run tasks
add in grunt tasks for express server and auto-opening of chrome (grunt-express-server and grunt-open)
see Gruntfile for all grunt plugins added - includes test plugins, grunt-cli, jshint, jshint-stylish, open, watch tasks for express, jsTest, and livereload, grunt-express-server - everything needed to get watch to watch all of the filesystem, properly transcompile sass, minify the js (no concat yet though), reload the server on server changes, livereload in browser on any other important changes, run tests automatically (although there are no tests yet), correctly run jshint on every js save, and get ready to set up a full test suite with karma, protractor, jasmine, mocha, and chai
finish basic grunt setup and configuration for a full working app with .bowerrc bower.json, CIRCLE_ARTIFACTS for testing artifacts (gitignored), karma and protractor configuration, wiredep is up and running for automatically injecting bower components into index.html (will have to do something else for eventual production version), add a simple true spec for checking that karma is working correctly, clean out unused initializer links and scripts in index.html (http://www.initializr.com/)