Skip to content
A Blog built on MongoExpressAngularNode Stack, integrated with Continous Integration(Travis-CI) for rapid deployment, and Using some of the cool Cloud apps - Heroku, Sauce Labs, MongoHQ and cool Testing tools to make development and deployment fun
JavaScript CSS
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

Awesome Blog

Build Status Coverage Status

Selenium Tests Status


If you are willing to setup a server using MEAN stack and you want to deploy code to a PaaS, You might find this repository useful. Will blog about the framework and its details on when I have it in functional state.

Helpful Repositories which inspired a good part of the code:

Getting Started:

  1. Fork and checkout
  2. Create a file .env.js, referring to .env.refer. If you need help please post a question on twitter @prasunsultania, or open a bug, if you think its a bug
  3. a) You need to have a mongod running on your local machine or subscribe for a Mongolab/MongoHQ account and paste its url in your .env.js
    b) Create a basic app in FB, Google and Twitter and enter API key, secret and callback urls in .env.js
  4. Add an entry for your hosts file, pointing to
  5. Run Following commands while you are in root directory of repository:
    • npm install
    • bower install
    • node app
  6. Register with NGROK to test custom domains based pageSpeedInsight custom domains. After registration make sure to set NGROK_AUTH_TOKEN and NGROK_HTTP_AUTH&npsp;and correct your domain name config in gruntfile.js code that connects to ngrok. If you dont want to register with ngrok, remove all configs in gruntfile.js for ngrok other than port.
  7. Thats it. Running tests (Backend Only):
    grunt testCoverage&nbp;or use node_modules\.bin\grunt testCoverage

Design Goals:

  • Develop using MEAN Stack and keep code platform agnostic to allow deploying on any PaaS.
  • Front end and Back end decoupled of each other
    • All Front end and its dependencies are under ./public
  • Test Driven Development with Continuous Integration
    • For CI: Used Travis CI, its very simple to use and nicely documented.
    • For Back End: Used Mocha as test framework, Istanbul for code coverage and used Coveralls that uses the lcov output to give coverage report for each build and a nice badge
    • For Front End: Again Mocha and Istanbul serves great. Here Tests are of two kinds:
      • Unit: Karma serves good for the purpose of Unit tests, it runs all the JS in real browser.
      • Functional: Or End to End tests are ran using Protractor on real browser.
  • In each build commit on CI platform tests are ran using Saucelabs which kind of give you Cloud Access to the browser. Another great part of Saucelabs is that it is able to use localhost urls.
  • PaaS Deployments:
    • Currently code is deployed to CloudControl and Heroku by Travis CI once all the tests are passing
    • Code is PaaS Platform agnostic, it needs correct env variables to be set. Please refer .env.js fore the same.
Something went wrong with that request. Please try again.