text: module.exports = function(grunt) {
      // Project Configuration
      grunt.initConfig({
          pkg: grunt.file.readJSON('package.json'),
          watch: {
              compass: {
                  files: ['public/sass/{,*/}*.{scss,sass}'],
                  tasks: ['compass:server', 'autoprefixer']
              },
              js: {
                  files: ['public/js/**', 'app/**/*.js'],
                  tasks: [],
                  options: {
                      livereload: true,
                  },
              },
              html: {
                  files: ['public/views/**'],
                  options: {
                      livereload: true,
                  },
              },
              css: {
                  files: ['public/css/**'],
                  options: {
                      livereload: true
                  }
              }
          },
          compass: {
              options: {
                  sassDir: 'public/sass',
                  cssDir: 'public/css',
                  generatedImagesDir: '.tmp/img/generated',
                  imagesDir: 'public/img',
                  javascriptsDir: 'public/js',
                  // fontsDir: '<%= yeoman.app %>/styles/fonts',
                  importPath: 'public/lib',
                  httpImagesPath: '/img',
                  httpGeneratedImagesPath: '/img/generated',
                  httpFontsPath: '/styles/fonts',
                  relativeAssets: false,
                  assetCacheBuster: false
              },
              dist: {
                  options: {
                      generatedImagesDir: 'dist/img/generated'
                  }
              },
              server: {
                  options: {
                      debugInfo: true
                  }
              }
          },
          autoprefixer: {
              options: {
                  browsers: ['last 1 version']
              },
              dist: {
                  files: [{
                      expand: true,
                      cwd: '.tmp/styles/',
                      src: '{,*/}*.css',
                      dest: '.tmp/styles/'
                  }]
              }
          },
          jshint: {
              // all: ['gruntfile.js', 'public/js/**/*.js', 'test/**/*.js', 'app/**/*.js']
          },
          nodemon: {
              dev: {
                  options: {
                      file: 'app.js',
                      args: [],
                      ignoredFiles: ['README.md', 'node_modules/**', '.DS_Store'],
                      watchedExtensions: ['js'],
                      watchedFolders: ['app', 'config'],
                      debug: true,
                      delayTime: 1,
                      env: {
                          PORT: 3000
                      },
                      cwd: __dirname
                  }
              }
          },
          concurrent: {
              tasks: ['nodemon', 'watch'], 
              options: {
                  logConcurrentOutput: true
              }
          },
          mochaTest: {
              options: {
                  reporter: 'spec'
              },
              src: ['test/**/*.js']
          },
          bower: {
              install: {
                  options: {
                      targetDir: './public/lib',
                      layout: 'byComponent',
                      install: true,
                      verbose: true,
                      cleanBowerDir: true
                  }
              }
          }
      });
  
      //Load NPM tasks 
      grunt.loadNpmTasks('grunt-contrib-watch');
      // grunt.loadNpmTasks('grunt-contrib-jshint');
      grunt.loadNpmTasks('grunt-contrib-compass');
      grunt.loadNpmTasks('grunt-autoprefixer');
      grunt.loadNpmTasks('grunt-mocha-test');
      grunt.loadNpmTasks('grunt-nodemon');
      grunt.loadNpmTasks('grunt-concurrent');
      grunt.loadNpmTasks('grunt-bower-task');
  
      //Making grunt default to force in order not to break the project.
      grunt.option('force', true);
  
      //Default task(s).
      // grunt.registerTask('default', ['jshint', 'concurrent']);
      grunt.registerTask('default', ['concurrent']);
      //Test task.
      grunt.registerTask('test', ['mochaTest']);
  
      //Bower task.
      grunt.registerTask('install', ['bower']);
  };