QAPortal - Sapling Team's project that use the MEAN stack. The project utilizes open source Dashboard, Chart, Table to display sample test results data in various formats.
-
Node.js - Download and Install Node.js, nodeschool has free node tutorials to get you started. We recommend node-4.x as the preffered node version to run mean.io.
-
MongoDB - Download and Install mongodb - Checkout their manual if you're just starting.
-
Git - Get git using a package manager or download it.
- Node.js - Download and Install Node.js, nodeschool has free node tutorials to get you started.
- MongoDB - Follow the great tutorial from the mongodb site - "Install Mongodb On Windows"
- Git - The easiest way to install git and then run the rest of the commands through the git bash application (via command prompt) is by downloading and installing Git for Windows
- Node.js - Download and Install Node.js or use the packages within brew or macports.
- MongoDB - Follow the tutorial here - Install mongodb on OSX
- git - Get git from here.
$ cd qaPortal
$ npm install //Do this before bower install
$ bower install
$ cd packages/custom/dashboard
$ npm install
$ bower installTo start your application run -
$ mongod //start mongoDB on another terminal.
$ gulpThen, open a browser and go to:
http://localhost:3000Server
All of the Server side code resides in the /server directory.
Server
--- config # Configuration files
--- controllers # Server side logic goes here
--- models # Database Schema Models
--- routes # Rest api endpoints for routing
--- views # Swig based html rendering
Client
All of the Client side code resides in the /public directory.
public
--- assets # JavaScript/CSS/Images (not aggregated)
--- controllers # Angular controllers
--- config # Contains routing files
--- services # Angular services (also directive and filter folders)
--- views # Angular views
The following high level pseudo sequence diagrams may help you map the code conceptually.

- Step1: modify your SERVICE to add API to get data from server. REST endpoints need to match Server Step3 below. - [yourPackage]/public/services
- Step2: modify your CONTROLLER to add $scope.yourData; $scope.yourMethod to bind to the VIEW - [yourPackage]/public/controller
- Step3: modify your VIEW to display UI components. Bind html element to data / method in controller - [yourPackage]/public/views
- Step1: modify your object MODEL. Define data model / schema for MongoDB via moongoose - [yourPackage]/server/models
- Step 2: modify your CONTROLLER to add API. Provides methods to use model in Step1 for CRUD - [yourPackage]/server/controllers
- Step 3: modify your ROUTES. Configure REST endpoints for express app. Need to match Client Step1 above. [yourPackage]/server/routes
During installation depending on your os and prerequisite versions you may encounter some issues.
Most issues can be solved by one of the following tips, but if you are unable to find a solution feel free to contact us via the repository issue tracker or the links provided below.
Sometimes you may find there is a weird error during install like npm's Error: ENOENT. Usually updating those tools to the latest version solves the issue.
- Updating NPM:
$ npm update -g npm- Updating Gulp:
$ npm update -g gulp- Updating Bower:
$ npm update -g bowerNPM and Bower has a caching system for holding packages that you already installed. We found that often cleaning the cache solves some troubles this system creates.
- NPM Clean Cache:
$ npm cache clean- Bower Clean Cache:
$ bower cache cleanSome of Mean.io dependencies uses node-gyp with supported Python version 2.7.x. So if you see an error related to node-gyp rebuild follow next steps:
- install Python 2.7.x
- install Microsoft Visual Studio C++ 2012 Express
- Run NPM update
$ npm update -gIf you get this error:
Prerequisite not installed: git
And you definitely have Git for Windows installed, then it's not included in your path. Find the folder containing git.exe (likely C:\Program Files (x86)\Git\cmd) and add it to your PATH.