This is the default web application built on top of the MifosX platform for the mifos user 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, Bootstrap and Font Awesome.
Access the online demo version here
-
Ensure you have
npm
installed - goto http://nodejs.org/download/ to download installer for your OS.ruby
installed - goto https://www.ruby-lang.org/en/documentation/installation/ to download latest version of ruby.
Note: On Ubuntu Linux you can use 'sudo apt-get install npm nodejs-legacy' (nodejs-legacy is required to avoid the ""/usr/bin/env: node: No such file or directory" problem).
Tip: If you are using Ubuntu/Linux, then doing npm config set prefix ~
prevents you from having to run npm as root.
-
Clone this repository to your local filesystem (default branch is 'develop')
git clone https://github.com/openMF/community-app.git
-
To download the dependencies, and be able to build, first install bower & grunt
npm install -g bower npm install -g grunt-cli
-
Next pull the runtime and build time dependencies by running bower, npm, and gem bundler install commands on the project root folder
bower install
npm install
gem install bundler
bundle install
-
To preview the app, run the following command on the project root folder
grunt serve
or open the 'index.html' file in FIREFOX browser
Note: If you see a warning similar to the one shown below on running
grunt serve
, try increasing the number of open files limit as per the suggestions at http://stackoverflow.com/questions/34588/how-do-i-change-the-number-of-open-files-limit-in-linux/Waiting...Warning: EMFILE, too many open files
-
You can use these credentials to log in
Username: mifos Password: password
You are done.
Edit the value of property "security" in configurations.js to "oauth"
By default, when the app is running from the local filesystem, it will connect to the platform (fineract-provider REST API) deployed on demo.openmf.org.
The app connects to the platform running on the same host/port when deployed on a server.
If you want to connect to the API running elsewhere, then append the baseApiUrl and tenantIdentifier as query parameters,
e.g. http://localhost:9002/?baseApiUrl=https://localhost:8443&tenantIdentifier=default
e.g. http://localhost:9002/?baseApiUrl=https://demo.openmf.org&tenantIdentifier=default
You can also add more dependencies on bower.json. You can search for them in http://sindresorhus.com/bower-components/ or even:
bower search <package>
Grunt tasks are used to automate repetitive tasks like minification, compilation, unit testing, linting, production builds, etc
Following are the tasks integrated.
Validate the JS files to detect errors and potential problems in JavaScript code. All errors output will be written to jshint-log.xml file which get created under project base directory. Checks the markup validity of HTML files. All errors output will be written to console.
grunt validate
Build the code for production deployment.
grunt prod
Use this for development. Start a static server and open the project in the default browser. The application will hit the demo server.
grunt serve
To build a Docker image for the current repo, run:
docker build -t mifos-community-app .
You can then run a Docker Container from the image above like this:
docker run --name mifos-ui -it -d -p 80:80 mifos-community-app
Access the webapp on http://localhost in your browser. The Dockerfile uses a ruby and node base image to build the current repo and deploys the app on nginx which is exposed on port 80 within the container.
grunt compass:dev
Just open test/SpecRunner.html in the browser.
Please read the contribution guidelines
Note: This application will hit the demo server by default.