Code

Most Mifos configuration options must be entered in the database creation scripts used to create the Mifos database at install time. This makes it difficult for non-technical users to change configuration settings. This project would improve the ease of use of setting up configuration options. It would move configuration items that need to be defined at install time into a separate file and it would build UI screens, including validation logic, for the configuration options that can be set-up and changed after the application has been installed.

Current work being done on this project can be found at: Mifos Configuration Project

Move following configurations to separate file

There are certain configuration options that need to set at install time and shouldn't be changed after the application has been set-up. These configuration options would typically be set in an "installation wizard"-- but because we dont current have a install wizard-- we want to move these items out of the mifos db creation script and into a separate configuration file. Also included in the list below are configuration items that can be changed after application set-up but which we will not being building UI screens for initially.

Bugs/items not implemented based on v1.0 Configuration FS:

Create UI screen to view non-UI configurations

View Organisation Settings

The UI screen will be available in the documents ui workspace directory. Recent UI screens: `25_May_2007 <https://mifos.dev.java.net/source/browse/mifos/documents/ui-workspace/25_May_2007.zip>`_

Create UI screens for selected configurations

UI Screens should be built for the following configuration items. These UI screens will be available in the documents ui-workspace directory. Recent UI screens: [`25_May_2007 <https://mifos.dev.java.net/source/browse/mifos/documents/ui-workspace/25_May_2007.zip>`_

Look-up Values

Accepted Payment Types

Custom Fields

Flow - Define additional fields

Flow - View/Edit additional fields

Permissions must be added for this page

COMPLETED Work

Labels

Hidden Field

Refactor Configuration Code

In addition to implementing the User Interface (UI) screens for configuration, there are a number of internal changes that will be made to improve the Mifos code (these changes are often referred to as "refactoring"). The primary goals of the refactoring work will be to:

Prepare Mifos for localization (translation into multiple languages)

The design goal for localization is to have localized text uniformly stored in standard external properties files. Currently web page text is in properties files while server-side text is stored in the database. This work will move localized text to properties files while having customized text (editable through the UI) stored in the database.

Reduce the time and cost of ongoing Mifos development by simplifying code

Mifos configuration related code will be simplified where possible to make it easier to understand and maintain, thus reducing the time and cost of ongoing development. The primary changes will involve eliminating database tables and related code that can be replaced by code which has been prepared for localization.
Facilitate upgrades of customized Mifos installations to new Mifos releases by restructuring Mifos configuration data

Most configuration data in Mifos currently resides in SQL database script files. For an MFI to customize Mifos they need to modify this SQL script. At the same time, improvements and updates to the Mifos default configuration data are also made in this SQL script. The result is conflicting changes that can prevent an MFI from upgrading to more recent versions of Mifos. This work will move configuration data out of the SQL script file and into configuration files structured such that these conflicts can be avoided.