ShoppinPal / StockUp

StockUp [try it out at https://stockup-staging.shoppinpal.com] is the only open source product that delivers 100% automated replenishment, integrations with leading POS and ERPs, and a smooth web application that can be used by your entire Ops crew and external suppliers. Our customers have saved countless hours that would be otherwise lost in grappling with Excel, along with huge increase in accountability. Feel free to clone the project and write to us at stockup@shoppinpal.com with what you'd like to achieve and how we can help!
GNU General Public License v2.0
57 stars 22 forks source link

Warehouse

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. To top it off, this app works beautifully with your inventory and POS! Just let us know which system(s) you use and we can add the integration.

Gitter

Pre-requisites

Deployment Architecture

The deployment consists of the following key components (few aspects have been left out for the the sake of brevity).

alt text

LoopBack (LB) Node Cluster

Worker Node Cluster

Database

Security measures

Deploy

  1. On remote machine with Docker while editing locally
  2. Locally (not recommended)

Troubleshooting

  1. To start and troubleshoot a docker image:

    ##
    # docker-compose run <service_name> /bin/bash
    ##
    docker-compose run web /bin/bash
  2. To attach to a running container and troubleshoot:

    ##
    # docker-compose exec <service_name> /bin/bash
    ##
    docker-compose exec web /bin/bash
  3. If builds keep failing and it makes no-sence, maybe cleanup is required, try:

    docker system prune
    
    # either:
    docker-compose up -d --build --force-recreate
    # or:
    docker-compose up --build --force-recreate
  4. If you performed a regular clone instead of a recursive clone, then correct this using the follwing command to get the submodules:

    cd $WAREHOUSE_HOME && git submodule update --init --recursive

FAQs

Remote Dev Machine

  1. Setup dropbox on local machine
  2. Setup dropbox on remote machine
  3. Create a directory on your local machine to house any and all projects meant for remote development: mkdir -p ~/Dropbox/rDev
  4. Go to the directory where you cloned warehouse locally, for example: cd ~/dev/warehouse
  5. Then wire it up to your local Dropbox folder:

    ln -s `pwd` ~/Dropbox/rDev/warehouse
  6. When you check the status on your remote machine/droplet via your ssh terminal: ~/bin/dropbox.py status ... you will see that the sync has begun:

    ~/bin/dropbox.py status
    Syncing (239 files remaining)
    Downloading 239 files...
  7. From now on whenever you work on your remote machine/droplet via your ssh terminal ... switch to the directory that has the sync enabled: cd ~/Dropbox/rDev/warehouse/ to do your work.

    • prevent remote machine from syncing unnecessary stuff to dropbox:

      cd ~/Dropbox && dropbox exclude add rDev/warehouse/node_modules
      cd ~/Dropbox && dropbox exclude add rDev/warehouse-workers/node_modules
      cd ~/Dropbox && dropbox exclude add rDev/warehouse/notification-service/node_modules
  8. On your local machine use selective sync via the dropbox UI to prevent the transfer of bulky dependencies back to your local filesystem. Go ahead and exclude node_modules and bower_components etc from being synced back to your machine. This is all done via UI so it should be very easy.
    • dropbox > preferences > account > selective sync > change settings...