You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@fineract.apache.org by ma...@apache.org on 2016/02/01 10:43:22 UTC

[39/52] [abbrv] [partial] incubator-fineract git commit: deleted initial code

http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/66cee785/docs/system-architecture/css/toc-0.1.2/example/live.js
----------------------------------------------------------------------
diff --git a/docs/system-architecture/css/toc-0.1.2/example/live.js b/docs/system-architecture/css/toc-0.1.2/example/live.js
deleted file mode 100644
index e48917b..0000000
--- a/docs/system-architecture/css/toc-0.1.2/example/live.js
+++ /dev/null
@@ -1,233 +0,0 @@
-/*
-  Live.js - One script closer to Designing in the Browser
-  Written for Handcraft.com by Martin Kool (@mrtnkl).
-
-  Version 4.
-  Recent change: Made stylesheet and mimetype checks case insensitive.
-
-  http://livejs.com
-  http://livejs.com/license (MIT)  
-  @livejs
-
-  Include live.js#css to monitor css changes only.
-  Include live.js#js to monitor js changes only.
-  Include live.js#html to monitor html changes only.
-  Mix and match to monitor a preferred combination such as live.js#html,css  
-
-  By default, just include live.js to monitor all css, js and html changes.
-  
-  Live.js can also be loaded as a bookmarklet. It is best to only use it for CSS then,
-  as a page reload due to a change in html or css would not re-include the bookmarklet.
-  To monitor CSS and be notified that it has loaded, include it as: live.js#css,notify
-*/
-(function () {
-
-  var headers = { "Etag": 1, "Last-Modified": 1, "Content-Length": 1, "Content-Type": 1 },
-      resources = {},
-      pendingRequests = {},
-      currentLinkElements = {},
-      oldLinkElements = {},
-      interval = 1000,
-      loaded = false,
-      active = { "html": 1, "css": 1, "js": 1 };
-
-  var Live = {
-
-    // performs a cycle per interval
-    heartbeat: function () {      
-      if (document.body) {        
-        // make sure all resources are loaded on first activation
-        if (!loaded) Live.loadresources();
-        Live.checkForChanges();
-      }
-      setTimeout(Live.heartbeat, interval);
-    },
-
-    // loads all local css and js resources upon first activation
-    loadresources: function () {
-
-      // helper method to assert if a given url is local
-      function isLocal(url) {
-        var loc = document.location,
-            reg = new RegExp("^\\.|^\/(?!\/)|^[\\w]((?!://).)*$|" + loc.protocol + "//" + loc.host);
-        return url.match(reg);
-      }
-
-      // gather all resources
-      var scripts = document.getElementsByTagName("script"),
-          links = document.getElementsByTagName("link"),
-          uris = [];
-
-      // track local js urls
-      for (var i = 0; i < scripts.length; i++) {
-        var script = scripts[i], src = script.getAttribute("src");
-        if (src && isLocal(src))
-          uris.push(src);
-        if (src && src.match(/\blive.js#/)) {
-          for (var type in active)
-            active[type] = src.match("[#,|]" + type) != null
-          if (src.match("notify")) 
-            alert("Live.js is loaded.");
-        }
-      }
-      if (!active.js) uris = [];
-      if (active.html) uris.push(document.location.href);
-
-      // track local css urls
-      for (var i = 0; i < links.length && active.css; i++) {
-        var link = links[i], rel = link.getAttribute("rel"), href = link.getAttribute("href", 2);
-        if (href && rel && rel.match(new RegExp("stylesheet", "i")) && isLocal(href)) {
-          uris.push(href);
-          currentLinkElements[href] = link;
-        }
-      }
-
-      // initialize the resources info
-      for (var i = 0; i < uris.length; i++) {
-        var url = uris[i];
-        Live.getHead(url, function (url, info) {
-          resources[url] = info;
-        });
-      }
-
-      // add rule for morphing between old and new css files
-      var head = document.getElementsByTagName("head")[0],
-          style = document.createElement("style"),
-          rule = "transition: all .3s ease-out;"
-      css = [".livejs-loading * { ", rule, " -webkit-", rule, "-moz-", rule, "-o-", rule, "}"].join('');
-      style.setAttribute("type", "text/css");
-      head.appendChild(style);
-      style.styleSheet ? style.styleSheet.cssText = css : style.appendChild(document.createTextNode(css));
-
-      // yep
-      loaded = true;
-    },
-
-    // check all tracking resources for changes
-    checkForChanges: function () {
-      for (var url in resources) {
-        if (pendingRequests[url])
-          continue;
-
-        Live.getHead(url, function (url, newInfo) {
-          var oldInfo = resources[url],
-              hasChanged = false;
-          resources[url] = newInfo;
-          for (var header in oldInfo) {
-            // do verification based on the header type
-            var oldValue = oldInfo[header],
-                newValue = newInfo[header],
-                contentType = newInfo["Content-Type"];
-            switch (header.toLowerCase()) {
-              case "etag":
-                if (!newValue) break;
-                // fall through to default
-              default:
-                hasChanged = oldValue != newValue;
-                break;
-            }
-            // if changed, act
-            if (hasChanged) {
-              Live.refreshResource(url, contentType);
-              break;
-            }
-          }
-        });
-      }
-    },
-
-    // act upon a changed url of certain content type
-    refreshResource: function (url, type) {
-      switch (type.toLowerCase()) {
-        // css files can be reloaded dynamically by replacing the link element                               
-        case "text/css":
-          var link = currentLinkElements[url],
-              html = document.body.parentNode,
-              head = link.parentNode,
-              next = link.nextSibling,
-              newLink = document.createElement("link");
-
-          html.className = html.className.replace(/\s*livejs\-loading/gi, '') + ' livejs-loading';
-          newLink.setAttribute("type", "text/css");
-          newLink.setAttribute("rel", "stylesheet");
-          newLink.setAttribute("href", url + "?now=" + new Date() * 1);
-          next ? head.insertBefore(newLink, next) : head.appendChild(newLink);
-          currentLinkElements[url] = newLink;
-          oldLinkElements[url] = link;
-
-          // schedule removal of the old link
-          Live.removeoldLinkElements();
-          break;
-
-        // check if an html resource is our current url, then reload                               
-        case "text/html":
-          if (url != document.location.href)
-            return;
-
-          // local javascript changes cause a reload as well
-        case "text/javascript":
-        case "application/javascript":
-        case "application/x-javascript":
-          document.location.reload();
-      }
-    },
-
-    // removes the old stylesheet rules only once the new one has finished loading
-    removeoldLinkElements: function () {
-      var pending = 0;
-      for (var url in oldLinkElements) {
-        // if this sheet has any cssRules, delete the old link
-        try {
-          var link = currentLinkElements[url],
-              oldLink = oldLinkElements[url],
-              html = document.body.parentNode,
-              sheet = link.sheet || link.styleSheet,
-              rules = sheet.rules || sheet.cssRules;
-          if (rules.length >= 0) {
-            oldLink.parentNode.removeChild(oldLink);
-            delete oldLinkElements[url];
-            setTimeout(function () {
-              html.className = html.className.replace(/\s*livejs\-loading/gi, '');
-            }, 100);
-          }
-        } catch (e) {
-          pending++;
-        }
-        if (pending) setTimeout(Live.removeoldLinkElements, 50);
-      }
-    },
-
-    // performs a HEAD request and passes the header info to the given callback
-    getHead: function (url, callback) {
-      pendingRequests[url] = true;
-      var xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XmlHttp");
-      xhr.open("HEAD", url, true);
-      xhr.onreadystatechange = function () {
-        delete pendingRequests[url];
-        if (xhr.readyState == 4 && xhr.status != 304) {
-          xhr.getAllResponseHeaders();
-          var info = {};
-          for (var h in headers) {
-            var value = xhr.getResponseHeader(h);
-            // adjust the simple Etag variant to match on its significant part
-            if (h.toLowerCase() == "etag" && value) value = value.replace(/^W\//, '');
-            if (h.toLowerCase() == "content-type" && value) value = value.replace(/^(.*?);.*?$/i, "$1");
-            info[h] = value;
-          }
-          callback(url, info);
-        }
-      }
-      xhr.send();
-    }
-  };
-
-  // start listening
-  if (document.location.protocol != "file:") {
-    if (!window.liveJsLoaded)
-      Live.heartbeat();
-
-    window.liveJsLoaded = true;
-  }
-  else if (window.console)
-    console.log("Live.js doesn't support the file protocol. It needs http.");    
-})();
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/66cee785/docs/system-architecture/css/toc-0.1.2/lib/copyright.js
----------------------------------------------------------------------
diff --git a/docs/system-architecture/css/toc-0.1.2/lib/copyright.js b/docs/system-architecture/css/toc-0.1.2/lib/copyright.js
deleted file mode 100644
index 54b73bd..0000000
--- a/docs/system-architecture/css/toc-0.1.2/lib/copyright.js
+++ /dev/null
@@ -1,7 +0,0 @@
-/*!
-  * jquery.toc.js - A jQuery plugin that will automatically generate a table of contents. 
-  * v0.1.1
-  * https://github.com/jgallen23/toc
-  * copyright JGA 2012
-  * MIT License
-  */

http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/66cee785/docs/system-architecture/css/toc-0.1.2/lib/toc.js
----------------------------------------------------------------------
diff --git a/docs/system-architecture/css/toc-0.1.2/lib/toc.js b/docs/system-architecture/css/toc-0.1.2/lib/toc.js
deleted file mode 100644
index ef8f0c0..0000000
--- a/docs/system-architecture/css/toc-0.1.2/lib/toc.js
+++ /dev/null
@@ -1,100 +0,0 @@
-(function($) {
-$.fn.toc = function(options) {
-  var self = this;
-  var opts = $.extend({}, jQuery.fn.toc.defaults, options);
-
-  var container = $(opts.container);
-  var headings = $(opts.selectors, container);
-  var headingOffsets = [];
-  var activeClassName = opts.prefix+'-active';
-
-  var scrollTo = function(e) {
-    if (opts.smoothScrolling) {
-      e.preventDefault();
-      var elScrollTo = $(e.target).attr('href');
-      var $el = $(elScrollTo);
-
-      $('body,html').animate({ scrollTop: $el.offset().top }, 400, 'swing', function() {
-        location.hash = elScrollTo;
-      });
-    }
-    $('li', self).removeClass(activeClassName);
-    $(e.target).parent().addClass(activeClassName);
-  };
-
-  //highlight on scroll
-  var timeout;
-  var highlightOnScroll = function(e) {
-    if (timeout) {
-      clearTimeout(timeout);
-    }
-    timeout = setTimeout(function() {
-      var top = $(window).scrollTop(),
-        highlighted;
-      for (var i = 0, c = headingOffsets.length; i < c; i++) {
-        if (headingOffsets[i] >= top) {
-          $('li', self).removeClass(activeClassName);
-          highlighted = $('li:eq('+(i-1)+')', self).addClass(activeClassName);
-          opts.onHighlight(highlighted);
-          break;
-        }
-      }
-    }, 50);
-  };
-  if (opts.highlightOnScroll) {
-    $(window).bind('scroll', highlightOnScroll);
-    highlightOnScroll();
-  }
-
-  return this.each(function() {
-    //build TOC
-    var el = $(this);
-    var ul = $('<ul/>');
-    headings.each(function(i, heading) {
-      var $h = $(heading);
-      headingOffsets.push($h.offset().top - opts.highlightOffset);
-
-      //add anchor
-      var anchor = $('<span/>').attr('id', opts.anchorName(i, heading, opts.prefix)).insertBefore($h);
-
-      //build TOC item
-      var a = $('<a/>')
-        .text(opts.headerText(i, heading, $h))
-        .attr('href', '#' + opts.anchorName(i, heading, opts.prefix))
-        .bind('click', function(e) { 
-          scrollTo(e);
-          el.trigger('selected', $(this).attr('href'));
-        });
-
-      var li = $('<li/>')
-        .addClass(opts.itemClass(i, heading, $h, opts.prefix))
-        .append(a);
-
-      ul.append(li);
-    });
-    el.html(ul);
-  });
-};
-
-
-jQuery.fn.toc.defaults = {
-  container: 'body',
-  selectors: 'h1,h2,h3',
-  smoothScrolling: true,
-  prefix: 'toc',
-  onHighlight: function() {},
-  highlightOnScroll: true,
-  highlightOffset: 100,
-  anchorName: function(i, heading, prefix) {
-    return prefix+i;
-  },
-  headerText: function(i, heading, $heading) {
-    return $heading.text();
-  },
-  itemClass: function(i, heading, $heading, prefix) {
-    return prefix + '-' + $heading[0].tagName.toLowerCase();
-  }
-
-};
-
-})(jQuery);

http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/66cee785/docs/system-architecture/css/toc-0.1.2/package.json
----------------------------------------------------------------------
diff --git a/docs/system-architecture/css/toc-0.1.2/package.json b/docs/system-architecture/css/toc-0.1.2/package.json
deleted file mode 100644
index 9bec26b..0000000
--- a/docs/system-architecture/css/toc-0.1.2/package.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{
-  "name": "toc",
-  "version": "0.0.0",
-  "private": true,
-  "devDependencies": {
-    "mocha": "~1.8.2",
-    "grunt": "~0.4.1",
-    "grunt-reloadr": "~0.1.2",
-    "grunt-mocha": "~0.3.0",
-    "grunt-contrib-concat": "~0.1.3",
-    "grunt-contrib-uglify": "~0.2.0",
-    "grunt-contrib-jshint": "~0.3.0",
-    "grunt-contrib-connect": "~0.2.0",
-    "grunt-contrib-watch": "~0.3.1",
-    "grunt-plato": "~0.1.5"
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/66cee785/docs/system-architecture/css/toc-0.1.2/test/index.html
----------------------------------------------------------------------
diff --git a/docs/system-architecture/css/toc-0.1.2/test/index.html b/docs/system-architecture/css/toc-0.1.2/test/index.html
deleted file mode 100644
index e9e41c2..0000000
--- a/docs/system-architecture/css/toc-0.1.2/test/index.html
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
-  <meta charset="utf-8">
-  <title>toc Tests</title>
-  <link rel="stylesheet" href="../node_modules/mocha/mocha.css" />
-  <script src="../components/assert/assert.js"></script>
-  <script src="../node_modules/mocha/mocha.js"></script>
-  <!--<script src="../components/blanket/dist/qunit/blanket.min.js" data-cover-adapter="../components/blanket/src/adapters/mocha-blanket.js"></script>-->
-  <script>mocha.setup('tdd')</script>
-</head>
-<body>
-  <div id="mocha"></div>
-  <div id="fixture" style="display: none">
-
-  </div>
-  <script src="../dist/toc.js" data-cover></script>
-  <script src="toc.test.js"></script>
-  <script>
-    if (navigator.userAgent.indexOf('PhantomJS') < 0) {
-      mocha.run().globals(['LiveReload']);
-    }
-  </script>
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/66cee785/docs/system-architecture/css/toc-0.1.2/test/toc.test.js
----------------------------------------------------------------------
diff --git a/docs/system-architecture/css/toc-0.1.2/test/toc.test.js b/docs/system-architecture/css/toc-0.1.2/test/toc.test.js
deleted file mode 100644
index 6171947..0000000
--- a/docs/system-architecture/css/toc-0.1.2/test/toc.test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-
-suite('toc', function() {
-
-});

http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/66cee785/docs/system-architecture/diagrams/command-query.png
----------------------------------------------------------------------
diff --git a/docs/system-architecture/diagrams/command-query.png b/docs/system-architecture/diagrams/command-query.png
deleted file mode 100644
index 4de18ec..0000000
Binary files a/docs/system-architecture/diagrams/command-query.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/66cee785/docs/system-architecture/diagrams/command-query.xml
----------------------------------------------------------------------
diff --git a/docs/system-architecture/diagrams/command-query.xml b/docs/system-architecture/diagrams/command-query.xml
deleted file mode 100644
index f244192..0000000
--- a/docs/system-architecture/diagrams/command-query.xml
+++ /dev/null
@@ -1 +0,0 @@
-<mxGraphModel dx="800" dy="800" grid="1" guides="1" tooltips="1" connect="1" fold="1" page="1" pageScale="1" pageWidth="826" pageHeight="1169" style="default-style2"><root><mxCell id="0"/><mxCell id="1" parent="0"/><mxCell id="47" value="Mifos X Platform &amp; API" style="verticalAlign=top;align=left;spacingTop=8;spacingLeft=2;spacingRight=12;shape=cube;size=10;direction=south;fontStyle=4;fillColor=#CCCCCC" parent="1" vertex="1"><mxGeometry x="120" y="60" width="590" height="440" as="geometry"/></mxCell><mxCell id="93" value="Oracle Mysql RDMS" style="shape=cylinder;whiteSpace=wrap" parent="1" vertex="1"><mxGeometry x="730" y="59.5" width="60" height="450.5" as="geometry"/></mxCell><mxCell id="95" value="Command" style="shape=message;whiteSpace=wrap" parent="1" vertex="1"><mxGeometry x="20" y="370" width="60" height="40" as="geometry"/></mxCell><mxCell id="96" value="Query" style="shape=message;whiteSpace=wrap" parent="1" vertex="1"><mxGeometry x="20" y="140" width="60" height="40" 
 as="geometry"/></mxCell><mxCell id="97" value="" style="edgeStyle=none;exitX=1;exitY=0.5" parent="1" edge="1"><mxGeometry width="100" height="100" relative="1" as="geometry"><mxPoint x="80" y="384" as="sourcePoint"/><mxPoint x="120" y="384" as="targetPoint"/></mxGeometry></mxCell><mxCell id="98" value="" style="edgeStyle=none;exitX=1;exitY=0.5" parent="1" edge="1"><mxGeometry width="100" height="100" relative="1" as="geometry"><mxPoint x="80" y="150" as="sourcePoint"/><mxPoint x="120" y="150" as="targetPoint"/></mxGeometry></mxCell><mxCell id="99" value="" style="edgeStyle=none;exitX=1;exitY=0.5" parent="1" edge="1"><mxGeometry width="100" height="100" relative="1" as="geometry"><mxPoint x="120" y="400" as="sourcePoint"/><mxPoint x="80" y="400" as="targetPoint"/></mxGeometry></mxCell><mxCell id="100" value="" style="edgeStyle=none;exitX=1;exitY=0.5" parent="1" edge="1"><mxGeometry width="100" height="100" relative="1" as="geometry"><mxPoint x="120" y="170" as="sourcePoint"/><mxPoint
  x="80" y="170" as="targetPoint"/></mxGeometry></mxCell><mxCell id="106" value="" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;" vertex="1" parent="1"><mxGeometry x="134" y="280" width="546" height="205" as="geometry"/></mxCell><mxCell id="109" value="HTTPS API" style="rounded=1;whiteSpace=wrap;fillColor=#007FFF;rotation=-90" vertex="1" parent="1"><mxGeometry x="100" y="390" width="124" height="30" as="geometry"/></mxCell><mxCell id="108" value="" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;" vertex="1" parent="1"><mxGeometry x="130" y="92.5" width="550" height="175" as="geometry"/></mxCell><mxCell id="52" value="HTTPS API" style="rounded=1;whiteSpace=wrap;fillColor=#007FFF;rotation=-90" parent="1" vertex="1"><mxGeometry x="100" y="165" width="124" height="30" as="geometry"/></mxCell><mxCell id="112" value="1. Check Permissions" style="" vertex="1" parent="1"><mxGeometry x="210" y="120" width="170
 " height="30" as="geometry"/></mxCell><mxCell id="113" value="2. Fetch Data (SQL Query)" style="" vertex="1" parent="1"><mxGeometry x="240" y="165" width="170" height="30" as="geometry"/></mxCell><mxCell id="114" value="3. Covert To JSON response" style="" vertex="1" parent="1"><mxGeometry x="210" y="205" width="183" height="30" as="geometry"/></mxCell><mxCell id="115" value="1. Check Permissions" style="" vertex="1" parent="1"><mxGeometry x="200" y="310" width="170" height="30" as="geometry"/></mxCell><mxCell id="116" value="2. Locate Command Handler" style="" vertex="1" parent="1"><mxGeometry x="216.5" y="352.5" width="170" height="30" as="geometry"/></mxCell><mxCell id="117" value="3. Command Handler&#xa;Uses Domain Services&#xa;Model + ORM to perist changes&#xa;All changes passed back" style="" vertex="1" parent="1"><mxGeometry x="410" y="345" width="250" height="125" as="geometry"/></mxCell><mxCell id="118" value="4.Updated with &#xa;changes for Audit" style="" vertex="1" paren
 t="1"><mxGeometry x="200" y="405" width="170" height="30" as="geometry"/></mxCell><mxCell id="119" value="5. Covert To JSON response" style="" vertex="1" parent="1"><mxGeometry x="200" y="440" width="183" height="30" as="geometry"/></mxCell></root></mxGraphModel>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/66cee785/docs/system-architecture/diagrams/platform-categories.png
----------------------------------------------------------------------
diff --git a/docs/system-architecture/diagrams/platform-categories.png b/docs/system-architecture/diagrams/platform-categories.png
deleted file mode 100644
index 6c46464..0000000
Binary files a/docs/system-architecture/diagrams/platform-categories.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/66cee785/docs/system-architecture/diagrams/platform-categories.xml
----------------------------------------------------------------------
diff --git a/docs/system-architecture/diagrams/platform-categories.xml b/docs/system-architecture/diagrams/platform-categories.xml
deleted file mode 100644
index f63b817..0000000
--- a/docs/system-architecture/diagrams/platform-categories.xml
+++ /dev/null
@@ -1 +0,0 @@
-<mxGraphModel dx="800" dy="800" grid="1" guides="1" tooltips="1" connect="1" fold="1" page="1" pageScale="1" pageWidth="826" pageHeight="1169" style="default-style2"><root><mxCell id="0"/><mxCell id="1" parent="0"/><mxCell id="47" value="Mifos X Platform &amp; API" style="verticalAlign=top;align=left;spacingTop=8;spacingLeft=2;spacingRight=12;shape=cube;size=10;direction=south;fontStyle=4;fillColor=#CCCCCC" vertex="1" parent="1"><mxGeometry x="30" y="59.5" width="780" height="260.5" as="geometry"/></mxCell><mxCell id="48" value="" style="shape=lollipop;direction=south;rotation=-90" vertex="1" parent="1"><mxGeometry x="118.5" y="22" width="25" height="42" as="geometry"/></mxCell><mxCell id="49" value="" style="shape=lollipop;direction=south;rotation=-90" vertex="1" parent="1"><mxGeometry x="46" y="22" width="25" height="42" as="geometry"/></mxCell><mxCell id="50" value="" style="shape=lollipop;direction=south;rotation=-90" vertex="1" parent="1"><mxGeometry x="757.5" y="22" width="25"
  height="42" as="geometry"/></mxCell><mxCell id="51" value="" style="shape=lollipop;direction=south;rotation=-90" vertex="1" parent="1"><mxGeometry x="675" y="22" width="25" height="42" as="geometry"/></mxCell><mxCell id="52" value="HTTPS API" style="rounded=1;whiteSpace=wrap;fillColor=#007FFF" vertex="1" parent="1"><mxGeometry x="46" y="99.5" width="744" height="30" as="geometry"/></mxCell><mxCell id="77" value="" style="shape=lollipop;direction=south;rotation=-90" vertex="1" parent="1"><mxGeometry x="191" y="22" width="25" height="42" as="geometry"/></mxCell><mxCell id="78" value="" style="shape=lollipop;direction=south;rotation=-90" vertex="1" parent="1"><mxGeometry x="252.5" y="22" width="25" height="42" as="geometry"/></mxCell><mxCell id="79" value="" style="shape=lollipop;direction=south;rotation=-90" vertex="1" parent="1"><mxGeometry x="382.5" y="22" width="25" height="42" as="geometry"/></mxCell><mxCell id="80" value="" style="shape=lollipop;direction=south;rotation=-90" ver
 tex="1" parent="1"><mxGeometry x="487.5" y="22" width="25" height="42" as="geometry"/></mxCell><mxCell id="86" value="Infrastructure" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;rotation=0" vertex="1" parent="1"><mxGeometry x="46" y="150" width="151.5" height="70" as="geometry"/></mxCell><mxCell id="87" value="User Administration" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;rotation=0" vertex="1" parent="1"><mxGeometry x="46" y="230" width="151.5" height="70" as="geometry"/></mxCell><mxCell id="88" value="Organisation Modelling" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;rotation=0" vertex="1" parent="1"><mxGeometry x="231" y="230" width="151.5" height="70" as="geometry"/></mxCell><mxCell id="89" value="Product Configuration" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;rotation=0" vertex="1" parent="1"><mxGeo
 metry x="231" y="150" width="151.5" height="70" as="geometry"/></mxCell><mxCell id="90" value="Client Data" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;rotation=0" vertex="1" parent="1"><mxGeometry x="440" y="150" width="151.5" height="70" as="geometry"/></mxCell><mxCell id="91" value="Portfolio Management" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;rotation=0" vertex="1" parent="1"><mxGeometry x="624.25" y="150" width="151.5" height="70" as="geometry"/></mxCell><mxCell id="92" value="GL Account Management" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;rotation=0" vertex="1" parent="1"><mxGeometry x="523.5" y="230" width="151.5" height="70" as="geometry"/></mxCell></root></mxGraphModel>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/66cee785/docs/system-architecture/diagrams/platform-systemview.png
----------------------------------------------------------------------
diff --git a/docs/system-architecture/diagrams/platform-systemview.png b/docs/system-architecture/diagrams/platform-systemview.png
deleted file mode 100644
index aa66031..0000000
Binary files a/docs/system-architecture/diagrams/platform-systemview.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/66cee785/docs/system-architecture/diagrams/platform-systemview.xml
----------------------------------------------------------------------
diff --git a/docs/system-architecture/diagrams/platform-systemview.xml b/docs/system-architecture/diagrams/platform-systemview.xml
deleted file mode 100644
index 9fba161..0000000
--- a/docs/system-architecture/diagrams/platform-systemview.xml
+++ /dev/null
@@ -1 +0,0 @@
-<mxGraphModel dx="800" dy="800" grid="1" guides="1" tooltips="1" connect="1" fold="1" page="1" pageScale="1" pageWidth="826" pageHeight="1169" style="default-style2"><root><mxCell id="0"/><mxCell id="1" parent="0"/><mxCell id="47" value="Mifos X Platform &amp; API" style="verticalAlign=top;align=left;spacingTop=8;spacingLeft=2;spacingRight=12;shape=cube;size=10;direction=south;fontStyle=4;fillColor=#CCCCCC" vertex="1" parent="1"><mxGeometry x="30" y="842" width="780" height="100" as="geometry"/></mxCell><mxCell id="48" value="" style="shape=lollipop;direction=south;rotation=-90" vertex="1" parent="1"><mxGeometry x="118.5" y="804.5" width="25" height="42" as="geometry"/></mxCell><mxCell id="49" value="" style="shape=lollipop;direction=south;rotation=-90" vertex="1" parent="1"><mxGeometry x="46" y="804.5" width="25" height="42" as="geometry"/></mxCell><mxCell id="50" value="" style="shape=lollipop;direction=south;rotation=-90" vertex="1" parent="1"><mxGeometry x="757.5" y="804.5" widt
 h="25" height="42" as="geometry"/></mxCell><mxCell id="51" value="" style="shape=lollipop;direction=south;rotation=-90" vertex="1" parent="1"><mxGeometry x="675" y="804.5" width="25" height="42" as="geometry"/></mxCell><mxCell id="52" value="HTTPS API" style="rounded=1;whiteSpace=wrap;fillColor=#007FFF" vertex="1" parent="1"><mxGeometry x="46" y="882" width="744" height="30" as="geometry"/></mxCell><mxCell id="53" value="Customer" style="shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top" vertex="1" parent="1"><mxGeometry x="252.5" y="390" width="30" height="70" as="geometry"/></mxCell><mxCell id="54" value="Back-Office Apps" style="rounded=1;whiteSpace=wrap;rotation=-90" vertex="1" parent="1"><mxGeometry x="72.5" y="720" width="120" height="50" as="geometry"/></mxCell><mxCell id="55" value="Field Officer Apps" style="rounded=1;whiteSpace=wrap;rotation=-90" vertex="1" parent="1"><mxGeometry x="207.5" y="720" width="120" height="50" as="geometry"/></mxCell><mxCell id="56" 
 value="Front Office / Telller Apps" style="rounded=1;whiteSpace=wrap;rotation=-90" vertex="1" parent="1"><mxGeometry x="143.5" y="720" width="120" height="50" as="geometry"/></mxCell><mxCell id="57" value="Public Facing Information Apps" style="rounded=1;whiteSpace=wrap;rotation=-90" vertex="1" parent="1"><mxGeometry x="-1.5" y="719" width="120" height="50" as="geometry"/></mxCell><mxCell id="58" value="Mobile Money Apps" style="rounded=1;whiteSpace=wrap;rotation=-90" vertex="1" parent="1"><mxGeometry x="440" y="720" width="120" height="50" as="geometry"/></mxCell><mxCell id="59" value="ATM / Card Services Apps" style="rounded=1;whiteSpace=wrap;rotation=-90" vertex="1" parent="1"><mxGeometry x="335" y="720" width="120" height="50" as="geometry"/></mxCell><mxCell id="60" value="ATM / POS / Card Services" style="shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top" vertex="1" parent="1"><mxGeometry x="380" y="530" width="30" height="70" as="geometry"/></mxCell><mxCell id="61"
  value="Social Performance App" style="rounded=1;whiteSpace=wrap;rotation=-90" vertex="1" parent="1"><mxGeometry x="645" y="720" width="120" height="50" as="geometry"/></mxCell><mxCell id="62" value="Reporting (third parties e.g. Mix)" style="rounded=1;whiteSpace=wrap;rotation=-90" vertex="1" parent="1"><mxGeometry x="710" y="720" width="120" height="50" as="geometry"/></mxCell><mxCell id="63" value="Agent&#xa;" style="shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top" vertex="1" parent="1"><mxGeometry x="615" y="540" width="30" height="70" as="geometry"/></mxCell><mxCell id="64" value="Third Parties / Industry" style="shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top" vertex="1" parent="1"><mxGeometry x="742.5" y="390" width="30" height="70" as="geometry"/></mxCell><mxCell id="65" value="MFI Staff" style="shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top" vertex="1" parent="1"><mxGeometry x="140" y="530" width="30" height="70" as="geometry"/></mx
 Cell><mxCell id="66" value="" style="edgeStyle=none" edge="1" parent="1"><mxGeometry width="100" height="100" relative="1" as="geometry"><mxPoint x="240" y="470" as="sourcePoint"/><mxPoint x="170" y="520" as="targetPoint"/></mxGeometry></mxCell><mxCell id="67" value="" style="edgeStyle=none" edge="1" parent="1"><mxGeometry width="100" height="100" relative="1" as="geometry"><mxPoint x="300" y="470" as="sourcePoint"/><mxPoint x="380" y="520" as="targetPoint"/></mxGeometry></mxCell><mxCell id="68" value="" style="edgeStyle=none" edge="1" parent="1"><mxGeometry width="100" height="100" relative="1" as="geometry"><mxPoint x="290" y="420" as="sourcePoint"/><mxPoint x="630" y="420" as="targetPoint"/></mxGeometry></mxCell><mxCell id="69" value="" style="edgeStyle=none;entryX=1;entryY=0.5" edge="1" target="58" parent="1"><mxGeometry width="100" height="100" relative="1" as="geometry"><mxPoint x="500" y="420" as="sourcePoint"/><mxPoint x="650" y="430" as="targetPoint"/></mxGeometry></mxCell>
 <mxCell id="70" value="" style="edgeStyle=none;" edge="1" parent="1"><mxGeometry width="100" height="100" relative="1" as="geometry"><mxPoint x="629" y="420" as="sourcePoint"/><mxPoint x="630" y="530" as="targetPoint"/></mxGeometry></mxCell><mxCell id="71" value="Agent Apps" style="rounded=1;whiteSpace=wrap;rotation=-90" vertex="1" parent="1"><mxGeometry x="570" y="720" width="120" height="50" as="geometry"/></mxCell><mxCell id="72" value="" style="edgeStyle=none;" edge="1" parent="1"><mxGeometry width="100" height="100" relative="1" as="geometry"><mxPoint x="629" y="635" as="sourcePoint"/><mxPoint x="630" y="680" as="targetPoint"/></mxGeometry></mxCell><mxCell id="73" value="" style="edgeStyle=none;" edge="1" parent="1"><mxGeometry width="100" height="100" relative="1" as="geometry"><mxPoint x="394.5" y="620" as="sourcePoint"/><mxPoint x="395.5" y="665" as="targetPoint"/></mxGeometry></mxCell><mxCell id="74" value="" style="edgeStyle=none;" edge="1" parent="1"><mxGeometry width="10
 0" height="100" relative="1" as="geometry"><mxPoint x="770" y="680" as="sourcePoint"/><mxPoint x="770" y="490" as="targetPoint"/></mxGeometry></mxCell><mxCell id="75" value="" style="edgeStyle=none;" edge="1" parent="1"><mxGeometry width="100" height="100" relative="1" as="geometry"><mxPoint x="58.5" y="680" as="sourcePoint"/><mxPoint x="60" y="420" as="targetPoint"/></mxGeometry></mxCell><mxCell id="76" value="" style="edgeStyle=none" edge="1" parent="1"><mxGeometry width="100" height="100" relative="1" as="geometry"><mxPoint x="58.5" y="420" as="sourcePoint"/><mxPoint x="240" y="420" as="targetPoint"/></mxGeometry></mxCell><mxCell id="77" value="" style="shape=lollipop;direction=south;rotation=-90" vertex="1" parent="1"><mxGeometry x="191" y="804.5" width="25" height="42" as="geometry"/></mxCell><mxCell id="78" value="" style="shape=lollipop;direction=south;rotation=-90" vertex="1" parent="1"><mxGeometry x="252.5" y="804.5" width="25" height="42" as="geometry"/></mxCell><mxCell id
 ="79" value="" style="shape=lollipop;direction=south;rotation=-90" vertex="1" parent="1"><mxGeometry x="382.5" y="804.5" width="25" height="42" as="geometry"/></mxCell><mxCell id="80" value="" style="shape=lollipop;direction=south;rotation=-90" vertex="1" parent="1"><mxGeometry x="487.5" y="804.5" width="25" height="42" as="geometry"/></mxCell><mxCell id="81" value="" style="edgeStyle=none" edge="1" parent="1"><mxGeometry width="100" height="100" relative="1" as="geometry"><mxPoint x="130" y="640" as="sourcePoint"/><mxPoint x="270" y="640" as="targetPoint"/></mxGeometry></mxCell><mxCell id="82" value="" style="edgeStyle=none;" edge="1" parent="1"><mxGeometry width="100" height="100" relative="1" as="geometry"><mxPoint x="130" y="640" as="sourcePoint"/><mxPoint x="131" y="685" as="targetPoint"/></mxGeometry></mxCell><mxCell id="83" value="" style="edgeStyle=none;" edge="1" parent="1"><mxGeometry width="100" height="100" relative="1" as="geometry"><mxPoint x="264.5" y="640" as="source
 Point"/><mxPoint x="265.5" y="685" as="targetPoint"/></mxGeometry></mxCell><mxCell id="84" value="" style="edgeStyle=none;" edge="1" parent="1"><mxGeometry width="100" height="100" relative="1" as="geometry"><mxPoint x="207" y="640" as="sourcePoint"/><mxPoint x="208" y="685" as="targetPoint"/></mxGeometry></mxCell><mxCell id="85" value="" style="edgeStyle=none;" edge="1" parent="1"><mxGeometry width="100" height="100" relative="1" as="geometry"><mxPoint x="180" y="600" as="sourcePoint"/><mxPoint x="210" y="640" as="targetPoint"/></mxGeometry></mxCell></root></mxGraphModel>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/66cee785/docs/system-architecture/favicon.ico
----------------------------------------------------------------------
diff --git a/docs/system-architecture/favicon.ico b/docs/system-architecture/favicon.ico
deleted file mode 100644
index be74abd..0000000
Binary files a/docs/system-architecture/favicon.ico and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/66cee785/docs/system-architecture/humans.txt
----------------------------------------------------------------------
diff --git a/docs/system-architecture/humans.txt b/docs/system-architecture/humans.txt
deleted file mode 100644
index d9e1bb9..0000000
--- a/docs/system-architecture/humans.txt
+++ /dev/null
@@ -1,15 +0,0 @@
-# humanstxt.org/
-# The humans responsible & technology colophon
-
-# TEAM
-
-    <name> -- <role> -- <twitter>
-
-# THANKS
-
-    <name>
-
-# TECHNOLOGY COLOPHON
-
-    HTML5, CSS3
-    Normalize.css, jQuery, Modernizr

http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/66cee785/docs/system-architecture/img/mifos-icon.png
----------------------------------------------------------------------
diff --git a/docs/system-architecture/img/mifos-icon.png b/docs/system-architecture/img/mifos-icon.png
deleted file mode 100644
index bb02523..0000000
Binary files a/docs/system-architecture/img/mifos-icon.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/66cee785/docs/system-architecture/index.html
----------------------------------------------------------------------
diff --git a/docs/system-architecture/index.html b/docs/system-architecture/index.html
deleted file mode 100644
index fdf12d4..0000000
--- a/docs/system-architecture/index.html
+++ /dev/null
@@ -1,587 +0,0 @@
-<!doctype html>
-<!--[if lt IE 7]>      <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
-<!--[if IE 7]>         <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
-<!--[if IE 8]>         <html class="no-js lt-ie9"> <![endif]-->
-<!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]-->
-    <head>
-        <meta charset="utf-8">
-        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
-        <title>Mifos Platform Docs: System Architecture</title>
-        <meta name="description" content="mifos platform documentation">
-        <meta name="viewport" content="width=device-width, initial-scale=1.0">
-
-        <link rel="stylesheet" href="css/bootstrap-3.0.0/bootstrap.min.css">
-        <link href="css/bootstrap-3.0.0/bootstrap-theme.min.css" rel="stylesheet">
-<style>
-#wrapper {
-    margin: 0 20px 0 220px;
-}
-a {
-    color: #336699;
-}
-body {
-    font-family: Helvetica Neue,Helvetica,Arial,sans-serif;
-    font-size: 16px;
-    line-height: 24px;
-    margin: 0;
-    padding: 0;
-}
-h1, h2, h3, #toc a {
-    font-family: 'Voces',sans-serif;
-}
-p, ul {
-    margin-bottom: 24px;
-    margin-top: 0;
-}
-small {
-    font-size: 10px;
-}
-code {
-    word-wrap: break-word;
-}
-.repo-stats iframe {
-    float: right;
-    margin-left: 5px;
-}
-#toc {
-    background: none repeat scroll 0 0 #333333;
-    box-shadow: -5px 0 5px 0 #000000 inset;
-    color: #FFFFFF;
-    height: 100%;
-    left: 0;
-    position: fixed;
-    top: 0;
-    width: 215px;
-}
-#toc ul {
-    list-style: none outside none;
-    margin: 0;
-    padding: 0;
-}
-#toc li {
-    padding: 5px 10px;
-}
-#toc a {
-    color: #FFFFFF;
-    display: block;
-    text-decoration: none;
-}
-#toc .toc-h2 {
-    padding-left: 10px;
-}
-#toc .toc-h3 {
-    padding-left: 20px;
-}
-#toc .toc-active {
-    background: none repeat scroll 0 0 #336699;
-    box-shadow: -5px 0 10px -5px #000000 inset;
-}
-pre {
-    background: none repeat scroll 0 0 #333333;
-    color: #F8F8F8;
-    display: block;
-    padding: 0.5em;
-}
-pre .shebang, pre .comment, pre .template_comment, pre .javadoc {
-    color: #7C7C7C;
-}
-pre .keyword, pre .tag, pre .ruby .function .keyword, pre .tex .command {
-    color: #96CBFE;
-}
-pre .function .keyword, pre .sub .keyword, pre .method, pre .list .title {
-    color: #FFFFB6;
-}
-pre .string, pre .tag .value, pre .cdata, pre .filter .argument, pre .attr_selector, pre .apache .cbracket, pre .date {
-    color: #A8FF60;
-}
-pre .subst {
-    color: #DAEFA3;
-}
-pre .regexp {
-    color: #E9C062;
-}
-pre .function .title, pre .sub .identifier, pre .pi, pre .decorator, pre .ini .title, pre .tex .special {
-    color: #FFFFB6;
-}
-pre .class .title, pre .haskell .label, pre .constant, pre .smalltalk .class, pre .javadoctag, pre .yardoctag, pre .phpdoc, pre .nginx .built_in {
-    color: #FFFFB6;
-}
-pre .symbol, pre .ruby .symbol .string, pre .ruby .symbol .keyword, pre .ruby .symbol .keymethods, pre .number, pre .variable, pre .vbscript, pre .literal {
-    color: #C6C5FE;
-}
-pre .css .tag {
-    color: #96CBFE;
-}
-pre .css .rules .property, pre .css .id {
-    color: #FFFFB6;
-}
-pre .css .class {
-    color: #FFFFFF;
-}
-pre .hexcolor {
-    color: #C6C5FE;
-}
-pre .number {
-    color: #FF73FD;
-}
-pre .tex .formula {
-    opacity: 0.7;
-}
-.github-repo {
-    background: url("images/Octocat.png") no-repeat scroll right bottom rgba(0, 0, 0, 0);
-    border: 1px solid #CCCCCC;
-    border-radius: 5px;
-    box-shadow: 0 0 3px #333333;
-    font-family: Helvetica,Arial,sans-serif;
-    font-size: 14px;
-    letter-spacing: 1px;
-    position: relative;
-}
-.github-repo a {
-    text-decoration: none;
-}
-.github-repo a:hover {
-    text-decoration: underline;
-}
-.github-repo .repo-header {
-    background: none repeat scroll 0 0 rgba(240, 240, 240, 0.7);
-}
-.github-repo .repo-header .repo-stats {
-    float: right;
-    font-size: 12px;
-    line-height: 20px;
-    margin: 5px 10px 0 0;
-}
-.github-repo .repo-header .repo-stats span, .github-repo .repo-header .repo-stats a {
-    color: #000000;
-    padding: 0 5px 0 25px;
-}
-.github-repo .repo-header .repo-stats .repo-watchers {
-    background: url("images/repostat.png") no-repeat scroll 5px -5px rgba(0, 0, 0, 0);
-}
-.github-repo .repo-header .repo-stats .repo-forks {
-    background: url("images/repostat.png") no-repeat scroll 5px -55px rgba(0, 0, 0, 0);
-}
-.github-repo .repo-header .repo-stats .repo-twitter {
-    float: right;
-    margin-left: 5px;
-}
-.github-repo .repo-header .repo-name {
-    display: block;
-    font-size: 18px;
-    letter-spacing: 2px;
-    padding: 5px 10px;
-}
-.github-repo .repo-commit {
-    padding: 10px;
-}
-.github-repo .repo-commit .repo-commit-message {
-    color: #000000;
-}
-.github-repo .repo-commit .repo-commit-date {
-    color: #333333;
-    display: block;
-    font-size: 12px;
-    font-style: italic;
-    letter-spacing: 0;
-    margin-top: 10px;
-}
-</style>
-
-        <script src="js/vendor/modernizr-2.6.2.min.js"></script>
-
-        <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
-        <!--[if lt IE 9]>
-        <script src="js/vendor/bootstrap-3.0.0/assets/html5shiv.js"></script>
-        <script src="js/vendor/bootstrap-3.0.0/assets/respond.min.js"></script>
-        <![endif]-->
-    </head>
-    <body>
-        <!--[if lt IE 7]>
-            <p class="chromeframe">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> or <a href="http://www.google.com/chromeframe/?redirect=true">activate Google Chrome Frame</a> to improve your experience.</p>
-        <![endif]-->
-<div id="toc">
-</div>
-<div id="wrapper">
-<aside>
-    <h1>Mifos Platform Software Architecture Document</h1>
-    <section>
-        <h2>Summary</h2>
-        <p>
-            This document captures the major architectural decisions in platform. The purpose of the document is to provide a guide to the overall structure of the platform; where it fits in the overall context of an MIS solution and its internals so that contributors can more effectively understand how changes that they are considering can be made, and the consequences of those changes.
-        </p>
-        <p>
-            The target audience for this report is both system integrators (who will use the document to gain an understanding of the structure of the platform and its design rationale) and platform contributors who will use the document to reason about future changes and who will update the document as the system evolves.
-        </p>
-    </section>
-
-  <section>
-    <h2>Introduction</h2>
-    <section>
-        <h4>The Idea</h4>
-        <p>Mifos was an idea born out of a wish to create and deploy technology that allows the microfinance industry to scale. The goal is to:
-            <ul>
-                <li>Produce a gold standard management information system suitable for microfinance operations</li>
-                <li>Acts as the basis of a <strong>platform for microfinance</strong></li>
-                <li>Open source, owned and driven by member organisations in the community</li>
-                <li>Enabling potential for eco-system of providers located near to MFIs</li>
-            </ul>
-        </p>
-
-        <h4>History</h4>
-        <p>
-            <ul>
-                <li>2006: Project intiated by <a href="http://www.grameenfoundation.org/" target="_blank">Grameen Foundation</a></li>
-                <li>Late 2011: Grameen Foundation handed over full responsibility to open source community.</li>
-                <li>2012: Mifos X platform started. Previous members of project come together under the name of Community for Open Source Microfinance (COSM / <a href="http://www.openmf.org" target="_blank">OpenMF</a>)</li>
-                <li>2013: COSM / OpenMF officially rebranded to <strong>Mifos Initiative</strong> and receive US 501c3 status.</li>
-            </ul>
-        </p>
-
-        <h4>Project Related</h4>
-        <p>
-            <ul>
-                <li>Project url is <a href="https://github.com/openMF/mifosx" target="_blank">https://github.com/openMF/mifosx</a>
-                </li>
-                <li>Download from <a href="https://sourceforge.net/projects/mifos/" target="_blank">https://sourceforge.net/projects/mifos/</a>
-                </li>
-                <li><a href="https://sourceforge.net/projects/mifos/files/Mifos%20X/stats/timeline?dates=2012-04-25+to+2013-11-16" target="_blank">Download stats</a>
-                </li>
-            </ul>
-        </p>
-    </section>
-  </section>
-
-    <section>
-        <h2>System Overview</h2>
-        <img src="diagrams/platform-systemview.png" alt="System view diagram" />
-        <p>
-            Financial institutions deliver their services to customers through a variety of means today.
-            <ul>
-                <li>Customers can call direct into branches (teller model)</li>
-                <li>Customers can organise into groups (or centers) and agree to meetup at a location and time with FI staff (traditional microfinance).</li>
-                <li>An FI might have a public facing information portal that customers can use for variety of reasons including account management (online banking).</li>
-                <li>An FI might be integrated into a ATM/POS/Card services network that the customer can use.</li>
-                <li>An FI might be integrated with a mobile money operator and support mobile money services for customer (present/future microfinance).</li>
-                <li>An FI might use third party agents to sell on products/services from other banks/FIs.</li>
-            </ul>
-        </p>
-        <p>
-            As illustrated in the above diagram, the various stakeholders leverage <strong>business apps</strong> to perform specific customer or FI related actions. The functionality contained in these business apps can be bundled up and packaged in any way. In the diagram, several of the apps may be combined into one app or any one of the blocks representing an app could be further broken up as needed.
-        </p>
-        <p>
-            The platform is the <strong>core engine of the MIS</strong>. It hides alot of the complexity that exists in the business and technical domains needed for an MIS in FIs behind a relatively simple API. It is this API that <strong>frees up app developers to innovate and produce apps</strong> that can be as general or as bespoke as FIs need them to be.
-        </p>
-    </section>
-
-    <section>
-        <h2>Functional Overview</h2>
-        <p>As ALL capabilities of the platform are exposed through an API, The API docs are the best place to view a detailed breakdown of what the platform does. See <a href="https://demo.openmf.org/api-docs/apiLive.htm" target="_blank">online API Documentation</a>.
-        </p>
-        <img    src="diagrams/platform-categories.png" 
-                alt="platform functionality view" />
-        <p>At a higher level though we see the capabilities fall into the following categories:
-            <ul>
-                <li>
-                    Infrastructure
-                    <ul>
-                        <li>Codes</li>
-                        <li>Extensible Data Tables</li>
-                        <li>Reporting</li>
-                    </ul>
-                </li>
-                <li>
-                    User Administration
-                    <ul>
-                        <li>Users</li>
-                        <li>Roles</li>
-                        <li>Permissions</li>
-                    </ul>
-                </li>
-                <li>Organisation Modelling
-                    <ul>
-                        <li>Offices</li>
-                        <li>Staff</li>
-                        <li>Currency</li>
-                    </ul>
-                </li>
-                <li>Product Configuration
-                    <ul>
-                        <li>Charges</li>
-                        <li>Loan Products</li>
-                        <li>Deposit Products</li>
-                    </ul>
-                </li>
-                <li>
-                    Client Data
-                     <ul>
-                        <li>Know Your Client (KYC)</li>
-                    </ul>
-                </li>
-                <li>Portfolio Management
-                    <ul>
-                        <li>Loan Accounts</li>
-                        <li>Deposit Accounts</li>
-                        <li>Client/Groups</li>
-                    </ul>
-                </li>
-                <li>GL Account Management 
-                    <ul>
-                        <li>Chart of Accounts</li>
-                        <li>General Ledger</li>
-                    </ul>
-                </li>
-            </ul>
-        </p>
-    </section>
-
-    <section>
-        <h2>Technology</h2>
-        <p>
-            <ul>
-                <li>Java 7: <a href="http://www.oracle.com/technetwork/java/javase/downloads/index.html" target="_blank">http://www.oracle.com/technetwork/java/javase/downloads/index.html</a></li>
-
-                <li>JAX-RS 1.0: <a href="https://wikis.oracle.com/display/Jersey/Overview+of+JAX-RS+1.0+Features" target="_blank">using Jersey (1.17.x)</a></li>
-
-                <li><a href="http://www.json.org/" target="_blank">JSON</a> using <a href="http://code.google.com/p/google-gson/" target="_blank">Google GSON</a></li>
-
-                <li>
-                    Spring I/O Platform: <a href="http://spring.io/platform" target="_blank">http://spring.io/platform</a>
-                    <ul>
-                        <li><a  href="http://projects.spring.io/spring-framework"
-                                target="_blank">Spring Framework</a></li>
-                        <li><a  href="http://projects.spring.io/spring-security"
-                                target="_blank">Spring Security</a></li>
-                        <li><a  href="http://projects.spring.io/spring-data/"
-                                target="_blank">Spring Data (JPA) backed by Hibernate</a></li>
-                    </ul>
-                </li>
-                
-                <li>MySQL: <a href="http://www.oracle.com/us/products/mysql/overview/index.html" target="_blank">http://www.oracle.com/us/products/mysql/overview/index.html</a></li>
-            </ul>
-        </p>
-    </section>
-
-    <section>
-        <h2>Principals</h2>
-        <h3>RESTful API</h3>
-        <p>
-            The platform exposes all its functionality via a <strong>practically-RESTful API</strong>, that communicates using JSON.<p>
-        <p>
-            We use the term <strong>practically-RESTful</strong> in order to make it clear we are not trying to be <a href="http://en.wikipedia.org/wiki/Representational_state_transfer" target="_blank">fully REST compliant</a> but still maintain important RESTful attributes like:
-            <ul>
-                <li>
-                    Stateless: platform maintains no conversational or session-based state. The result of this is ability to scale horizontally with ease.
-                </li>
-                <li>
-                    Resource-oriented: API is focussed around set of resources using HTTP vocabulary and conventions e.g GET, PUT, POST, DELETE, HTTP status codes. This results in a simple and consistent API for clients.
-                </li>
-            </ul>
-
-            See <a href="https://demo.openmf.org/api-docs/apiLive.htm" target="_blank">online API Documentation</a> for more detail.
-        </p>
-        <h3>Multi-tenanted</h3>
-        <p>
-            The mifos platform has been developed with support for multi-tenancy at the core of its design. This means that it is just as easy to use the platform for Software-as-a-Service (SaaS) type offerings as it is for local installations.
-        </p>
-        <p>
-            The platform uses an approach that isolates an FIs data per database/schema (<a href="http://msdn.microsoft.com/en-us/library/aa479086.aspx#mlttntda_topic2" target="_blank">See Separate Databases and Shared Database, Separate Schemas</a>). 
-        </p>
-        <h3>Extensible</h3>
-        <p>
-            Whilst each tenant will have a set of core tables, the platform tables can be extended in different ways for each tenant through the use of <a href="#datatables">Data tables</a> functionality.
-        </p>
-
-        <h3>Command Query Seperation</h3>
-        <p>We seperate <strong>commands</strong> (that change data) from <strong>queries</strong> (that read data).</p>
-        <p>Why? There are numerous reasons for choosing this approach which at present is not an attempt at full blown CQRS. The main advantages at present are:
-            <ul>
-                <li>State changing commands are persisted providing an audit of all state changes.</li>
-                <li>Used to support a general approach to <strong>maker-checker</strong>.</li>
-                <li>State changing commands use the Object-Oriented paradign (and hence ORM) whilst querys can stay in the data paradigm.</li>
-            </ul>
-        </p>
-
-        <h3>Maker-Checker</h3>
-        <p>Also known as <strong>four-eyes principal</strong>. Enables apps to support a maker-checker style workflow process. Commands that pass validation will be persisted. Maker-checker can be enabled/disabled at fine-grained level for any state changing API.</p>
-
-        <h3>Fine grained access control</h3>
-        <p>A fine grained permission is associated with each API. Administrators have fine grained control over what roles or users have access to.</p>
-    </section>
-
-    <section>
-        <h2>Code Packaging</h2>
-        <p>
-            The intention is for platform code to be packaged in a vertical slice way (as opposed to layers).<br>
-            Source code starts from <a href="https://github.com/openMF/mifosx/tree/master/mifosng-provider/src/main/java/org/mifosplatform">mifosng-provider/src/main/java/org/mifosplatform</a><br>
-            
-            <ul><strong>org.mifosplatform.</strong>
-                <li>accounting</li>
-                <li>useradministration</li>
-                <li>infrastructure</li>
-                <li>portfolio
-                     <ul>
-                        <li>charge</li>
-                        <li>client</li>
-                        <li>fund</li>
-                        <li>loanaccount</li>
-                    </ul>
-                </li>
-                <li>accounting</li>
-            </ul>
-
-            Within each vertical slice is some common packaging structure:
-
-             <ul><strong>org.mifosplatform.useradministration.</strong>
-                <li>api - XXXApiResource.java - REST api implementation files</li>
-                <li>handler - XXXCommandHandler.java - specific handlers invoked</li>
-                <li>service - contains read + write services for functional area</li>
-                <li>domain - OO concepts for the functional area</li>
-                <li>data - Data concepts for the area</li>
-                <li>serialization - ability to convert from/to API JSON for functional area</li>
-            </ul>
-        </p>
-    </section>
-
-    <section>
-        <h2>Design Overview</h2>
-        <p><strong>Note</strong>: The implementation of the platform code to process commands through handlers whilst supporting maker-checker and authorisation checks is a little bit convoluted at present and is an area pin-pointed for clean up to make it easier to on board new platform developers. In the mean time below content is used to explain its workings at present.</p>
-        <img src="diagrams/command-query.png" alt="Command-Query Overview" />
-        <p>
-            Taking into account example shown above for the <strong>users</strong> resource.
-            <ol>
-                <li>Query: GET /users</li>
-                <li>HTTPS API: retrieveAll method on org.mifosplatform.useradministration.api.UsersApiResource invoked</li>
-                <li>UsersApiResource.retrieveAll: Check user has permission to access this resources data.</li>
-                <li>UsersApiResource.retrieveAll: Use 'read service' to fetch all users data ('read services' execute simple SQL queries against Database using JDBC)</li>
-                <li>UsersApiResource.retrieveAll: Data returned to coverted into JSON response</li>
-            </ol>
-
-            <ol>
-                <li>Command: POST /users (Note: data passed in request body)</li>
-                <li>HTTPS API: <strong>create</strong> method on <strong>org.mifosplatform.useradministration.api.UsersApiResource</strong> invoked</li>
-            </ol>
-
-<pre><code>@POST
-@Consumes({ MediaType.APPLICATION_JSON })
-@Produces({ MediaType.APPLICATION_JSON })
-public String create(final String apiRequestBodyAsJson) {
-
-    final CommandWrapper commandRequest = new CommandWrapperBuilder() //
-            .createUser() //
-            .withJson(apiRequestBodyAsJson) //
-            .build();
-
-    final CommandProcessingResult result = this.commandsSourceWritePlatformService.logCommandSource(commandRequest);
-
-    return this.toApiJsonSerializer.serialize(result);
-}
-</code></pre>
-<p><em>Description:</em> Create a CommandWrapper object that represents this create user command and JSON request body. Pass off responsiblity for processing to <strong>PortfolioCommandSourceWritePlatformService.logCommandSource</strong>.</p>
-
-<pre><code>
-@Override
-public CommandProcessingResult logCommandSource(final CommandWrapper wrapper) {
-
-    boolean isApprovedByChecker = false;
-    // check if is update of own account details
-    if (wrapper.isUpdateOfOwnUserDetails(this.context.authenticatedUser().getId())) {
-        // then allow this operation to proceed.
-        // maker checker doesnt mean anything here.
-        isApprovedByChecker = true; // set to true in case permissions have
-                                    // been maker-checker enabled by
-                                    // accident.
-    } else {
-        // if not user changing their own details - check user has
-        // permission to perform specific task.
-        this.context.authenticatedUser().validateHasPermissionTo(wrapper.getTaskPermissionName());
-    }
-    validateIsUpdateAllowed();
-
-    final String json = wrapper.getJson();
-    CommandProcessingResult result = null;
-    try {
-        final JsonElement parsedCommand = this.fromApiJsonHelper.parse(json);
-        final JsonCommand command = JsonCommand.from(json, parsedCommand, this.fromApiJsonHelper, wrapper.getEntityName(),
-                wrapper.getEntityId(), wrapper.getSubentityId(), wrapper.getGroupId(), wrapper.getClientId(), wrapper.getLoanId(),
-                wrapper.getSavingsId(), wrapper.getCodeId(), wrapper.getSupportedEntityType(), wrapper.getSupportedEntityId(),
-                wrapper.getTransactionId(), wrapper.getHref(), wrapper.getProductId());
-
-        result = this.processAndLogCommandService.processAndLogCommand(wrapper, command, isApprovedByChecker);
-    } catch (final RollbackTransactionAsCommandIsNotApprovedByCheckerException e) {
-
-        result = this.processAndLogCommandService.logCommand(e.getCommandSourceResult());
-    }
-
-    return result;
-}
-</code></pre>
-<p><em>Description:</em> check user has permission for this action. if ok, a) parse the json request body, b) create a JsonCommand object to wrap the command details, c) use <strong>CommandProcessingService</strong> to handle command.</p>
-<p><strong>Note</strong>: if a RollbackTransactionAsCommandIsNotApprovedByCheckerException occurs at this point. The original transaction will of been aborted and we only log an entry for the command in the audit table setting its status as 'Pending'.</p>
-
-<pre><code>@Transactional
-@Override
-public CommandProcessingResult processAndLogCommand(final CommandWrapper wrapper, final JsonCommand command, final boolean isApprovedByChecker) {
-
-    final boolean rollbackTransaction = this.configurationDomainService.isMakerCheckerEnabledForTask(wrapper.taskPermissionName())
-            && !isApprovedByChecker;
-
-    final NewCommandSourceHandler handler = findCommandHandler(wrapper);
-    final CommandProcessingResult result = handler.processCommand(command);
-
-    final AppUser maker = this.context.authenticatedUser();
-
-    CommandSource commandSourceResult = null;
-    if (command.commandId() != null) {
-        commandSourceResult = this.commandSourceRepository.findOne(command.commandId());
-        commandSourceResult.markAsChecked(maker, DateTime.now());
-    } else {
-        commandSourceResult = CommandSource.fullEntryFrom(wrapper, command, maker);
-    }
-    commandSourceResult.updateResourceId(result.resourceId());
-    commandSourceResult.updateForAudit(result.getOfficeId(), result.getGroupId(), result.getClientId(), result.getLoanId(),
-            result.getSavingsId(), result.getProductId());
-
-    String changesOnlyJson = null;
-    if (result.hasChanges()) {
-        changesOnlyJson = this.toApiJsonSerializer.serializeResult(result.getChanges());
-        commandSourceResult.updateJsonTo(changesOnlyJson);
-    }
-
-    if (!result.hasChanges() && wrapper.isUpdateOperation() && !wrapper.isUpdateDatatable()) {
-        commandSourceResult.updateJsonTo(null);
-    }
-
-    if (commandSourceResult.hasJson()) {
-        this.commandSourceRepository.save(commandSourceResult);
-    }
-
-    if (rollbackTransaction) { throw new RollbackTransactionAsCommandIsNotApprovedByCheckerException(commandSourceResult); }
-
-    return result;
-}
-</code></pre>
-        <ol>
-            <li>Check that if maker-checker configuration enabled for this action. If yes and this is not a 'checker' approving the command - rollback at the end. We rollback at the end in order to test if the command will pass 'domain validation' which requires commit to database for full check.</li>
-            <li>findCommandHandler - Find the correct <strong>Hanlder</strong> to process this command.</li>
-            <li>Process command using handler (In transactional scope).</li>
-            <li>CommandSource object created/updated with all details for logging to 'm_portfolio_command_source' table.</li>
-            <li>In update scenario, we check to see if there where really any changes/updates. If so only JSON for changes is stored in audit log.</li>
-        </ol>
-        </p>
-    </section>
-
-</aside>
-<!-- end of wrapper -->
-</div>
-
-    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
-    <script>window.jQuery || document.write('<script src="js/vendor/jquery-1.9.1.min.js"><\/script>')</script>
-    <script src="js/plugins.js"></script>
-    <script src="js/vendor/bootstrap-3.0.0/bootstrap.min.js"></script>
-    <script src="js/vendor/toc-0.1.2/jquery.toc.min.js"></script>
-    <script>
-        $('#toc').toc();
-    </script>
-    </body>
-</html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/66cee785/docs/system-architecture/js/plugins.js
----------------------------------------------------------------------
diff --git a/docs/system-architecture/js/plugins.js b/docs/system-architecture/js/plugins.js
deleted file mode 100644
index 9683075..0000000
--- a/docs/system-architecture/js/plugins.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Avoid `console` errors in browsers that lack a console.
-(function() {
-    var method;
-    var noop = function () {};
-    var methods = [
-        'assert', 'clear', 'count', 'debug', 'dir', 'dirxml', 'error',
-        'exception', 'group', 'groupCollapsed', 'groupEnd', 'info', 'log',
-        'markTimeline', 'profile', 'profileEnd', 'table', 'time', 'timeEnd',
-        'timeStamp', 'trace', 'warn'
-    ];
-    var length = methods.length;
-    var console = (window.console = window.console || {});
-
-    while (length--) {
-        method = methods[length];
-
-        // Only stub undefined methods.
-        if (!console[method]) {
-            console[method] = noop;
-        }
-    }
-}());
-// Place any jQuery/helper plugins in here.
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/66cee785/docs/system-architecture/js/vendor/bootstrap-3.0.0/assets/application.js
----------------------------------------------------------------------
diff --git a/docs/system-architecture/js/vendor/bootstrap-3.0.0/assets/application.js b/docs/system-architecture/js/vendor/bootstrap-3.0.0/assets/application.js
deleted file mode 100644
index 81b644b..0000000
--- a/docs/system-architecture/js/vendor/bootstrap-3.0.0/assets/application.js
+++ /dev/null
@@ -1,83 +0,0 @@
-// NOTICE!! DO NOT USE ANY OF THIS JAVASCRIPT
-// IT'S ALL JUST JUNK FOR OUR DOCS!
-// ++++++++++++++++++++++++++++++++++++++++++
-
-!function ($) {
-
-  $(function(){
-
-    var $window = $(window)
-    var $body   = $(document.body)
-
-    var navHeight = $('.navbar').outerHeight(true) + 10
-
-    $body.scrollspy({
-      target: '.bs-sidebar',
-      offset: navHeight
-    })
-
-    $window.on('load', function () {
-      $body.scrollspy('refresh')
-    })
-
-    $('.bs-docs-container [href=#]').click(function (e) {
-      e.preventDefault()
-    })
-
-    // back to top
-    setTimeout(function () {
-      var $sideBar = $('.bs-sidebar')
-
-      $sideBar.affix({
-        offset: {
-          top: function () {
-            var offsetTop      = $sideBar.offset().top
-            var sideBarMargin  = parseInt($sideBar.children(0).css('margin-top'), 10)
-            var navOuterHeight = $('.bs-docs-nav').height()
-
-            return (this.top = offsetTop - navOuterHeight - sideBarMargin)
-          }
-        , bottom: function () {
-            return (this.bottom = $('.bs-footer').outerHeight(true))
-          }
-        }
-      })
-    }, 100)
-
-    setTimeout(function () {
-      $('.bs-top').affix()
-    }, 100)
-
-    // tooltip demo
-    $('.tooltip-demo').tooltip({
-      selector: "[data-toggle=tooltip]",
-      container: "body"
-    })
-
-    $('.tooltip-test').tooltip()
-    $('.popover-test').popover()
-
-    $('.bs-docs-navbar').tooltip({
-      selector: "a[data-toggle=tooltip]",
-      container: ".bs-docs-navbar .nav"
-    })
-
-    // popover demo
-    $("[data-toggle=popover]")
-      .popover()
-
-    // button state demo
-    $('#fat-btn')
-      .click(function () {
-        var btn = $(this)
-        btn.button('loading')
-        setTimeout(function () {
-          btn.button('reset')
-        }, 3000)
-      })
-
-    // carousel demo
-    $('.bs-docs-carousel-example').carousel()
-})
-
-}(window.jQuery)

http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/66cee785/docs/system-architecture/js/vendor/bootstrap-3.0.0/assets/customizer.js
----------------------------------------------------------------------
diff --git a/docs/system-architecture/js/vendor/bootstrap-3.0.0/assets/customizer.js b/docs/system-architecture/js/vendor/bootstrap-3.0.0/assets/customizer.js
deleted file mode 100644
index 5abfe42..0000000
--- a/docs/system-architecture/js/vendor/bootstrap-3.0.0/assets/customizer.js
+++ /dev/null
@@ -1,290 +0,0 @@
-window.onload = function () { // wait for load in a dumb way because B-0
-  var cw = '/*!\n * Bootstrap v3.0.0\n *\n * Copyright 2013 Twitter, Inc\n * Licensed under the Apache License v2.0\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Designed and built with all the love in the world @twitter by @mdo and @fat.\n */\n\n'
-
-  function showError(msg, err) {
-    $('<div id="bsCustomizerAlert" class="bs-customizer-alert">\
-        <div class="container">\
-          <a href="#bsCustomizerAlert" data-dismiss="alert" class="close pull-right">&times;</a>\
-          <p class="bs-customizer-alert-text"><span class="glyphicon glyphicon-warning-sign"></span>' + msg + '</p>' +
-          (err.extract ? '<pre class="bs-customizer-alert-extract">' + err.extract.join('\n') + '</pre>' : '') + '\
-        </div>\
-      </div>').appendTo('body').alert()
-    throw err
-  }
-
-  function showCallout(msg, showUpTop) {
-    var callout = $('<div class="bs-callout bs-callout-danger">\
-       <h4>Attention!</h4>\
-      <p>' + msg + '</p>\
-    </div>')
-
-    if (showUpTop) {
-      callout.appendTo('.bs-docs-container')
-    } else {
-      callout.insertAfter('.bs-customize-download')
-    }
-  }
-
-  function getQueryParam(key) {
-    key = key.replace(/[*+?^$.\[\]{}()|\\\/]/g, "\\$&"); // escape RegEx meta chars
-    var match = location.search.match(new RegExp("[?&]"+key+"=([^&]+)(&|$)"));
-    return match && decodeURIComponent(match[1].replace(/\+/g, " "));
-  }
-
-  function createGist(configData) {
-    var data = {
-      "description": "Bootstrap Customizer Config",
-      "public": true,
-      "files": {
-        "config.json": {
-          "content": JSON.stringify(configData, null, 2)
-        }
-      }
-    }
-    $.ajax({
-      url: 'https://api.github.com/gists',
-      type: 'POST',
-      dataType: 'json',
-      data: JSON.stringify(data)
-    })
-    .success(function(result) {
-      history.replaceState(false, document.title, window.location.origin + window.location.pathname + '?id=' + result.id)
-    })
-    .error(function(err) {
-      showError('<strong>Ruh roh!</strong> Could not save gist file, configuration not saved.', err)
-    })
-  }
-
-  function getCustomizerData() {
-    var vars = {}
-
-    $('#less-variables-section input')
-        .each(function () {
-          $(this).val() && (vars[ $(this).prev().text() ] = $(this).val())
-        })
-
-    var data = {
-      vars: vars,
-      css: $('#less-section input:checked')  .map(function () { return this.value }).toArray(),
-      js:  $('#plugin-section input:checked').map(function () { return this.value }).toArray()
-    }
-
-    if ($.isEmptyObject(data.vars) && !data.css.length && !data.js.length) return
-
-    return data
-  }
-
-  function parseUrl() {
-    var id = getQueryParam('id')
-
-    if (!id) return
-
-    $.ajax({
-      url: 'https://api.github.com/gists/' + id,
-      type: 'GET',
-      dataType: 'json'
-    })
-    .success(function(result) {
-      var data = JSON.parse(result.files['config.json'].content)
-      if (data.js) {
-        $('#plugin-section input').each(function () {
-          $(this).prop('checked', ~$.inArray(this.value, data.js))
-        })
-      }
-      if (data.css) {
-        $('#less-section input').each(function () {
-          $(this).prop('checked', ~$.inArray(this.value, data.css))
-        })
-      }
-      if (data.vars) {
-        for (var i in data.vars) {
-          $('input[data-var="' + i + '"]').val(data.vars[i])
-        }
-      }
-    })
-    .error(function(err) {
-      showError('Error fetching bootstrap config file', err)
-    })
-  }
-
-  function generateZip(css, js, fonts, complete) {
-    if (!css && !js) return showError('<strong>Ruh roh!</strong> No Bootstrap files selected.', new Error('no Bootstrap'))
-
-    var zip = new JSZip()
-
-    if (css) {
-      var cssFolder = zip.folder('css')
-      for (var fileName in css) {
-        cssFolder.file(fileName, css[fileName])
-      }
-    }
-
-    if (js) {
-      var jsFolder = zip.folder('js')
-      for (var fileName in js) {
-        jsFolder.file(fileName, js[fileName])
-      }
-    }
-
-    if (fonts) {
-      var fontsFolder = zip.folder('fonts')
-      for (var fileName in fonts) {
-        fontsFolder.file(fileName, fonts[fileName])
-      }
-    }
-
-    var content = zip.generate({type:"blob"})
-
-    complete(content)
-  }
-
-  function generateCustomCSS(vars) {
-    var result = ''
-
-    for (var key in vars) {
-      result += key + ': ' + vars[key] + ';\n'
-    }
-
-    return result + '\n\n'
-  }
-
-  function generateFonts() {
-    var glyphicons = $('#less-section [value="glyphicons.less"]:checked')
-    if (glyphicons.length) {
-      return __fonts
-    }
-  }
-
-  function generateCSS() {
-    var $checked = $('#less-section input:checked')
-
-    if (!$checked.length) return false
-
-    var result = {}
-    var vars = {}
-    var css = ''
-
-    $('#less-variables-section input')
-        .each(function () {
-          $(this).val() && (vars[ $(this).prev().text() ] = $(this).val())
-        })
-
-    css += __less['variables.less']
-    if (vars) css += generateCustomCSS(vars)
-    css += __less['mixins.less']
-    css += __less['normalize.less']
-    css += __less['scaffolding.less']
-    css += $checked
-      .map(function () { return __less[this.value] })
-      .toArray()
-      .join('\n')
-
-    css = css.replace(/@import[^\n]*/gi, '') //strip any imports
-
-    try {
-      var parser = new less.Parser({
-          paths: ['variables.less', 'mixins.less']
-        , optimization: 0
-        , filename: 'bootstrap.css'
-      }).parse(css, function (err, tree) {
-        if (err) {
-          return showError('<strong>Ruh roh!</strong> Could not parse less files.', err)
-        }
-        result = {
-          'bootstrap.css'     : cw + tree.toCSS(),
-          'bootstrap.min.css' : cw + tree.toCSS({ compress: true })
-        }
-      })
-    } catch (err) {
-      return showError('<strong>Ruh roh!</strong> Could not parse less files.', err)
-    }
-
-    return result
-  }
-
-  function generateJavascript() {
-    var $checked = $('#plugin-section input:checked')
-    if (!$checked.length) return false
-
-    var js = $checked
-      .map(function () { return __js[this.value] })
-      .toArray()
-      .join('\n')
-
-    return {
-      'bootstrap.js': js,
-      'bootstrap.min.js': cw + uglify(js)
-    }
-  }
-
-  var inputsComponent = $('#less-section input')
-  var inputsPlugin    = $('#plugin-section input')
-  var inputsVariables = $('#less-variables-section input')
-
-  $('#less-section .toggle').on('click', function (e) {
-    e.preventDefault()
-    inputsComponent.prop('checked', !inputsComponent.is(':checked'))
-  })
-
-  $('#plugin-section .toggle').on('click', function (e) {
-    e.preventDefault()
-    inputsPlugin.prop('checked', !inputsPlugin.is(':checked'))
-  })
-
-  $('#less-variables-section .toggle').on('click', function (e) {
-    e.preventDefault()
-    inputsVariables.val('')
-  })
-
-  $('[data-dependencies]').on('click', function () {
-    if (!$(this).is(':checked')) return
-    var dependencies = this.getAttribute('data-dependencies')
-    if (!dependencies) return
-    dependencies = dependencies.split(',')
-    for (var i = 0; i < dependencies.length; i++) {
-      var dependency = $('[value="' + dependencies[i] + '"]')
-      dependency && dependency.prop('checked', true)
-    }
-  })
-
-  $('[data-dependents]').on('click', function () {
-    if ($(this).is(':checked')) return
-    var dependents = this.getAttribute('data-dependents')
-    if (!dependents) return
-    dependents = dependents.split(',')
-    for (var i = 0; i < dependents.length; i++) {
-      var dependent = $('[value="' + dependents[i] + '"]')
-      dependent && dependent.prop('checked', false)
-    }
-  })
-
-  var $compileBtn = $('#btn-compile')
-  var $downloadBtn = $('#btn-download')
-
-  $compileBtn.on('click', function (e) {
-    e.preventDefault()
-
-    $compileBtn.attr('disabled', 'disabled')
-
-    generateZip(generateCSS(), generateJavascript(), generateFonts(), function (blob) {
-      $compileBtn.removeAttr('disabled')
-      saveAs(blob, "bootstrap.zip")
-      createGist(getCustomizerData())
-    })
-  })
-
-  // browser support alerts
-  if (!window.URL && navigator.userAgent.toLowerCase().indexOf('safari') != -1) {
-    showCallout("Looks like you're using safari, which sadly doesn't have the best support\
-                 for HTML5 blobs. Because of this your file will be downloaded with the name <code>\"untitled\"</code>.\
-                 However, if you check your downloads folder, just rename this <code>\"untitled\"</code> file\
-                 to <code>\"bootstrap.zip\"</code> and you should be good to go!")
-  } else if (!window.URL && !window.webkitURL) {
-    $('.bs-docs-section, .bs-sidebar').css('display', 'none')
-
-    showCallout("Looks like your current browser doesn't support the Bootstrap Customizer. Please take a second\
-                to <a href=\"https://www.google.com/intl/en/chrome/browser/\"> upgrade to a more modern browser</a>.", true)
-  }
-
-  parseUrl()
-}

http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/66cee785/docs/system-architecture/js/vendor/bootstrap-3.0.0/assets/filesaver.js
----------------------------------------------------------------------
diff --git a/docs/system-architecture/js/vendor/bootstrap-3.0.0/assets/filesaver.js b/docs/system-architecture/js/vendor/bootstrap-3.0.0/assets/filesaver.js
deleted file mode 100644
index adecc88..0000000
--- a/docs/system-architecture/js/vendor/bootstrap-3.0.0/assets/filesaver.js
+++ /dev/null
@@ -1,169 +0,0 @@
-/* Blob.js
- * A Blob implementation.
- * 2013-06-20
- *
- * By Eli Grey, http://eligrey.com
- * By Devin Samarin, https://github.com/eboyjr
- * License: X11/MIT
- *   See LICENSE.md
- */
-
-/*global self, unescape */
-/*jslint bitwise: true, regexp: true, confusion: true, es5: true, vars: true, white: true,
-  plusplus: true */
-
-/*! @source http://purl.eligrey.com/github/Blob.js/blob/master/Blob.js */
-
-if (typeof Blob !== "function" || typeof URL === "undefined")
-if (typeof Blob === "function" && typeof webkitURL !== "undefined") self.URL = webkitURL;
-else var Blob = (function (view) {
-  "use strict";
-
-  var BlobBuilder = view.BlobBuilder || view.WebKitBlobBuilder || view.MozBlobBuilder || view.MSBlobBuilder || (function(view) {
-    var
-        get_class = function(object) {
-        return Object.prototype.toString.call(object).match(/^\[object\s(.*)\]$/)[1];
-      }
-      , FakeBlobBuilder = function BlobBuilder() {
-        this.data = [];
-      }
-      , FakeBlob = function Blob(data, type, encoding) {
-        this.data = data;
-        this.size = data.length;
-        this.type = type;
-        this.encoding = encoding;
-      }
-      , FBB_proto = FakeBlobBuilder.prototype
-      , FB_proto = FakeBlob.prototype
-      , FileReaderSync = view.FileReaderSync
-      , FileException = function(type) {
-        this.code = this[this.name = type];
-      }
-      , file_ex_codes = (
-          "NOT_FOUND_ERR SECURITY_ERR ABORT_ERR NOT_READABLE_ERR ENCODING_ERR "
-        + "NO_MODIFICATION_ALLOWED_ERR INVALID_STATE_ERR SYNTAX_ERR"
-      ).split(" ")
-      , file_ex_code = file_ex_codes.length
-      , real_URL = view.URL || view.webkitURL || view
-      , real_create_object_URL = real_URL.createObjectURL
-      , real_revoke_object_URL = real_URL.revokeObjectURL
-      , URL = real_URL
-      , btoa = view.btoa
-      , atob = view.atob
-
-      , ArrayBuffer = view.ArrayBuffer
-      , Uint8Array = view.Uint8Array
-    ;
-    FakeBlob.fake = FB_proto.fake = true;
-    while (file_ex_code--) {
-      FileException.prototype[file_ex_codes[file_ex_code]] = file_ex_code + 1;
-    }
-    if (!real_URL.createObjectURL) {
-      URL = view.URL = {};
-    }
-    URL.createObjectURL = function(blob) {
-      var
-          type = blob.type
-        , data_URI_header
-      ;
-      if (type === null) {
-        type = "application/octet-stream";
-      }
-      if (blob instanceof FakeBlob) {
-        data_URI_header = "data:" + type;
-        if (blob.encoding === "base64") {
-          return data_URI_header + ";base64," + blob.data;
-        } else if (blob.encoding === "URI") {
-          return data_URI_header + "," + decodeURIComponent(blob.data);
-        } if (btoa) {
-          return data_URI_header + ";base64," + btoa(blob.data);
-        } else {
-          return data_URI_header + "," + encodeURIComponent(blob.data);
-        }
-      } else if (real_create_object_URL) {
-        return real_create_object_URL.call(real_URL, blob);
-      }
-    };
-    URL.revokeObjectURL = function(object_URL) {
-      if (object_URL.substring(0, 5) !== "data:" && real_revoke_object_URL) {
-        real_revoke_object_URL.call(real_URL, object_URL);
-      }
-    };
-    FBB_proto.append = function(data/*, endings*/) {
-      var bb = this.data;
-      // decode data to a binary string
-      if (Uint8Array && (data instanceof ArrayBuffer || data instanceof Uint8Array)) {
-        var
-            str = ""
-          , buf = new Uint8Array(data)
-          , i = 0
-          , buf_len = buf.length
-        ;
-        for (; i < buf_len; i++) {
-          str += String.fromCharCode(buf[i]);
-        }
-        bb.push(str);
-      } else if (get_class(data) === "Blob" || get_class(data) === "File") {
-        if (FileReaderSync) {
-          var fr = new FileReaderSync;
-          bb.push(fr.readAsBinaryString(data));
-        } else {
-          // async FileReader won't work as BlobBuilder is sync
-          throw new FileException("NOT_READABLE_ERR");
-        }
-      } else if (data instanceof FakeBlob) {
-        if (data.encoding === "base64" && atob) {
-          bb.push(atob(data.data));
-        } else if (data.encoding === "URI") {
-          bb.push(decodeURIComponent(data.data));
-        } else if (data.encoding === "raw") {
-          bb.push(data.data);
-        }
-      } else {
-        if (typeof data !== "string") {
-          data += ""; // convert unsupported types to strings
-        }
-        // decode UTF-16 to binary string
-        bb.push(unescape(encodeURIComponent(data)));
-      }
-    };
-    FBB_proto.getBlob = function(type) {
-      if (!arguments.length) {
-        type = null;
-      }
-      return new FakeBlob(this.data.join(""), type, "raw");
-    };
-    FBB_proto.toString = function() {
-      return "[object BlobBuilder]";
-    };
-    FB_proto.slice = function(start, end, type) {
-      var args = arguments.length;
-      if (args < 3) {
-        type = null;
-      }
-      return new FakeBlob(
-          this.data.slice(start, args > 1 ? end : this.data.length)
-        , type
-        , this.encoding
-      );
-    };
-    FB_proto.toString = function() {
-      return "[object Blob]";
-    };
-    return FakeBlobBuilder;
-  }(view));
-
-  return function Blob(blobParts, options) {
-    var type = options ? (options.type || "") : "";
-    var builder = new BlobBuilder();
-    if (blobParts) {
-      for (var i = 0, len = blobParts.length; i < len; i++) {
-        builder.append(blobParts[i]);
-      }
-    }
-    return builder.getBlob(type);
-  };
-}(self));
-
-/*! @source http://purl.eligrey.com/github/FileSaver.js/blob/master/FileSaver.js */
-var saveAs=saveAs||(navigator.msSaveOrOpenBlob&&navigator.msSaveOrOpenBlob.bind(navigator))||(function(h){"use strict";var r=h.document,l=function(){return h.URL||h.webkitURL||h},e=h.URL||h.webkitURL||h,n=r.createElementNS("http://www.w3.org/1999/xhtml","a"),g=!h.externalHost&&"download" in n,j=function(t){var s=r.createEvent("MouseEvents");s.initMouseEvent("click",true,false,h,0,0,0,0,0,false,false,false,false,0,null);t.dispatchEvent(s)},o=h.webkitRequestFileSystem,p=h.requestFileSystem||o||h.mozRequestFileSystem,m=function(s){(h.setImmediate||h.setTimeout)(function(){throw s},0)},c="application/octet-stream",k=0,b=[],i=function(){var t=b.length;while(t--){var s=b[t];if(typeof s==="string"){e.revokeObjectURL(s)}else{s.remove()}}b.length=0},q=function(t,s,w){s=[].concat(s);var v=s.length;while(v--){var x=t["on"+s[v]];if(typeof x==="function"){try{x.call(t,w||t)}catch(u){m(u)}}}},f=function(t,u){var v=this,B=t.type,E=false,x,w,s=function(){var F=l().createObjectURL(t);b.push(F);retur
 n F},A=function(){q(v,"writestart progress write writeend".split(" "))},D=function(){if(E||!x){x=s(t)}if(w){w.location.href=x}else{window.open(x,"_blank")}v.readyState=v.DONE;A()},z=function(F){return function(){if(v.readyState!==v.DONE){return F.apply(this,arguments)}}},y={create:true,exclusive:false},C;v.readyState=v.INIT;if(!u){u="download"}if(g){x=s(t);n.href=x;n.download=u;j(n);v.readyState=v.DONE;A();return}if(h.chrome&&B&&B!==c){C=t.slice||t.webkitSlice;t=C.call(t,0,t.size,c);E=true}if(o&&u!=="download"){u+=".download"}if(B===c||o){w=h}if(!p){D();return}k+=t.size;p(h.TEMPORARY,k,z(function(F){F.root.getDirectory("saved",y,z(function(G){var H=function(){G.getFile(u,y,z(function(I){I.createWriter(z(function(J){J.onwriteend=function(K){w.location.href=I.toURL();b.push(I);v.readyState=v.DONE;q(v,"writeend",K)};J.onerror=function(){var K=J.error;if(K.code!==K.ABORT_ERR){D()}};"writestart progress write abort".split(" ").forEach(function(K){J["on"+K]=v["on"+K]});J.write(t);v.abort=
 function(){J.abort();v.readyState=v.DONE};v.readyState=v.WRITING}),D)}),D)};G.getFile(u,{create:false},z(function(I){I.remove();H()}),z(function(I){if(I.code===I.NOT_FOUND_ERR){H()}else{D()}}))}),D)}),D)},d=f.prototype,a=function(s,t){return new f(s,t)};d.abort=function(){var s=this;s.readyState=s.DONE;q(s,"abort")};d.readyState=d.INIT=0;d.WRITING=1;d.DONE=2;d.error=d.onwritestart=d.onprogress=d.onwrite=d.onabort=d.onerror=d.onwriteend=null;h.addEventListener("unload",i,false);return a}(self));
\ No newline at end of file