This is the default web application built on top of the Apache Fineract platform. The Mifos X Web App (formerly called Community App) is maintained by the Mifos Initiative as a reference solution for the financial inclusion community. It is a Single-Page App (SPA) written in web standard technologies like JavaScript, CSS and HTML5. It leverages common popular frameworks/libraries such as AngularJS 1.5, Bootstrap and Font Awesome
Go to file
2013-08-14 11:31:45 +05:30
font added AngularUI and client list 2013-08-12 20:10:02 +05:30
html added organization and system pages 2013-08-13 05:25:02 +05:30
image adding user form dialog 2013-07-28 09:28:49 +10:00
js removed console logs 2013-08-14 11:31:45 +05:30
lib added AngularUI and client list 2013-08-12 20:10:02 +05:30
stylesheets added AngularUI and client list 2013-08-12 20:10:02 +05:30
test added overlay when saving user 2013-08-05 10:04:03 +10:00
.gitignore added .idea in gitignore 2013-08-12 20:21:31 +05:30
index.html added AngularUI and client list 2013-08-12 20:10:02 +05:30
README.md added small troubleshooting info to README file 2013-06-24 20:07:10 +10:00

prototype-app

Repository for putting prototype work from Thoughtworks HSP around building single page web app

Background

The Mifos project (http://www.mifos.org/about) was originally setup and guided by Grameen Foundation. It has been open source since inception but in recent years the community for open source microfinance (http://www.openmf.org) took over maintanance and future development of the Mifos project.

Whilst the community continues to maintain and support the original Mifos MIS project, most development has shifted to the Mifos X project.

Mifos X

Mifos X is a MIS platform for microfinance. Its capabilities are exposed through a RESTful API.

Setting up Mifos X server

Troubleshooting

In case you get 'PermGen - Out of space' errors when running the tomcatRunWar task, increase the memory of your java process through the GRADLE_OPTS env variable

export GRADLE_OPTS="-Xmx512m -XX:MaxPermSize=265m"  

Scope of Work

For the prototype the following scenarios should suffice:

1 Navigate to Role-based landing screen after login

This scenario will involve:

  • provide login screen that will use platform authentication api (https://demo.openmf.org/api-docs/apiLive.htm#authentication)
  • on failure handle error response from platform authentication api
  • on success display appropriate screen based on the organisational role associated with authenticated user.

Existing users on demo server:

  • mifos/passowrd has a 'Super user' role
  • joejoe/password has a 'Branch Manager' role
  • jackjack/password has a 'Funder' role

Authentication API response

{
  "username": "mifos",
  "userId": 1,
  "base64EncodedAuthenticationKey": "bWlmb3M6cGFzc3dvcmQ=",
  "authenticated": true,
  "staffId": 1, 
  "staffDisplayName": "Director, Program", 
  "organisationalRole": { 
     "id": 100, 
     "code": 
     "staffOrganisationalRoleType.programDirector", 
     "value": "Program Director" 
  },
  "roles": [
    {
      "id": 1,
      "name": "Super user",
      "description": "This role provides all application permissions."
    }
  ],
  "permissions": [
    "ALL_FUNCTIONS"
  ]
}

On each of the different landing screens for 'Super user', 'Branch Manager' and 'Funder' role it would suffice to just indicate that these are different screens through static content. If you wish you can invoke different platform API calls on each of the different landing pages e.g.

2 CRUD screens around typical administrative area like users

Implement CRUD behaviour around the users resource (https://demo.openmf.org/api-docs/apiLive.htm#users)

Objective

Along with code to demostrate how the scenarios in scope of work can be implemented, the objective of this prototype/spike is to demonstrate a clean way of developing a single page app which exhibits the following qualities:

  1. Structured Approach
  2. Automation of dev code into production artifacts
  3. Localisation and Internationalisation
  4. Customisable and Extensible

Together with code to demostrate how the scenarios in scope of work are implemented