node package manager
We need your input. Help make JavaScript better: Take the 2017 JavaScript Ecosystem survey »



Replenishing stock is one of the most important repetitive tasks performed by a retailer, yet for majority of the retail world this process is highly inefficient and time consuming. We've created a (first of its kind) open-source and free iPad application that makes the stock ordering process fast and fun, and frees up a whole lot of time for store managers and warehouse folks.



Please follow the Git-Flow Branching model when working with this repo.

In order to hack on this you'll need a few things installed and setup first:

Install These:

* [NodeJS] (
  * __Recommended:__ Use [nvm]( so you can have multiple NodeJS versions.
* [Ruby](
  * __Recommended:__ Use [rvm]( so you can have multiple versions of ruby and gemsets.
* [Yeoman](

Clone it and then:

cd ~/dev/
git clone warehouse
cd warehouse
nvm install v0.10.37
nvm use v0.10.37
npm install -g yo
npm install
npm install -g bower
bower install

Setup a server/config.development.json file

  "restApiRoot": "/api",
  "host": "",
  "port": 3000,
  "aclErrorStatus": 403,
  "remoting": {
    "json": {
      "limit": "50mb"
  "site": {
    "baseUrl": "http://localhost:3000",
    "proxyUrl": ""
  "logging": {
    "console": true,
    "file": false
    "client_id":"<fill it in>",
    "client_secret":"<fill it in>"

For developing dependencies alongside:

cd ~/dev/
git clone vend-nodejs-sdk
cd vend-nodejs-sdk
npm install
npm link
cd ~/dev/warehouse/
npm link vend-nodejs-sdk


  • Unit tests: grunt test
  • End-to-End Tests:
    • Setup:
      • npm install --unsafe-perm
      • cd test/utils
      • npm install
      • cd ../..
    • One Specific Test:
      • grunt test:e2e --specs='test/protractor/e2eTest1.js'
      • grunt test:e2e --specs='test/protractor/e2eTest2.js'
    • Multiple Tests
    • grunt test:e2e --specs='test/protractor/e2eTest1.js,e2eTest2.js'
    • All Tests
    • grunt test:e2e


AngularJS is used as the client-side framework for this app and Bootstrap is used for the styling.


The api is hosted by Loopback server (superset of Express) running on NodeJS.


This project is setup with Grunt tasks to make development and deployment easy.


Launch your loopback server in development mode.

grunt server:development --subdomain <subdomain>
DEBUG=shoppinpal:*,boot:create-model-instances,boot:create-role-resolver grunt server:development --subdomain <subdomain>