Ad-Hoc Reporting Builder Tool

Project Resources

Mentor

Nick Gochiashvili

Assigned Contributor

Tengiz Merabishvili

Project Overview

Overview

 

An end-user/administrator should be able to define their own reports (using drag-and-drop/clicks etc.) and without having to understand the internals of the Mifos database tables and columns. The Pentaho report designer cannot be used by end users. So the idea is to give a simpler custom interface for defining “ad-hoc” reports and to run them like any other report.

Background and Business Need

To run any business successfully, one needs insight into the business and that is made easier when one can drill down to the exact information, summarized at the required level and presented in the required format. This will assist in taking the right decisions. And as market scenarios changes very rapidly, Mifos needs to have an Ad-hoc report builder that will help end-users to intuitively build their own reports, rather than work off a set of pre-defined reports.

The Ad-hoc Report Builder will be easy-to-use and will allow user to define reports using UI controls rather than tables and column names.

Deliverables

  • A "Mifos Data Universe" with the following entities defined:
    • Clients
      • All Clients

      • Loan Clients

      • Savings Clients

      • Clients with Overdue Repayments

      • Clients with Any Overdues (Loans and Mandatory Savings) - Mandatory Savings is a new feature being added

    • Loans
    • Saving Accounts
    • Loan Transactions
      • Overdue Loan Transactions
    • Savings Transactions
      Note: The attributes required for each of these entities are present in the attachment

  • A user interface using which a user can
  • A user interface using any user who has access to run an ad-hoc report can run it repeatedly

Project Supporters(s)

Binny Gopinath Sreevas (Conflux Technologies)

Project Details

Assigned contributor for the project will include details of how they plan to implement the feature.  Feel free to supplement as needed with additional child pages of detail. 

Project Status

TBD

Additional Information

Requirements

Use Cases/User Stories

The following use cases is what I have in mind:

a) As an administrator/manager, manage ad hoc reports (create/update/delete etc.) that can be used by other users in the organization. This will involve specifying:

  • Set of entities that will be displayed in this report – for example: set of customers with “Emergency Loans” (Emergency Loans is the name of a loan product here) – we will need to go through the Mifos database schema and identify “entities” that make sense to end users
  • List of attributes for report – for example: Customer ID, Customer Name, Disbursal Date, Disbursed Amount Outstanding
  • Any static filter criteria – for example: show only loans that are currently active
  • Any run-time filter criteria – for example, show only loans disbursed during 2014 (user specifies this at the time of running a report using a date range) and for specific branches
  • List of fields that need totals to be shown
  • Any grouping, group totals that need to be displayed in the report

b) As a business user,

  • From the Mifos UI, run any ad-hoc report created by Administrator (and specify any additional filter criteria when running these reports).
  • Create ad-hoc reports as described above – and which will be visible only to this user

Also, it should be possible for an administrator to see the list of ad-hoc reports created by users and then publish these for access for other user roles too.

Managing of ad-hoc reports will have the following user-stories:

-          As a Business User, I want to select the set or sub-set of Entities that will be displayed in this report

For example: set of customers with “Emergency Loans” (Emergency Loans is the name of a loan product here) – we will need to go through the Mifos database schema and identify “entities” that make sense to end users and define these as queries as mentioned above. If multiple entities are selected, then the join criteria should be more or less automatic (in a way – we could say this is hardcoded).

  • As a Business User I want to select List of attributes for report - For example: Customer ID, Customer Name, Disbursal Date, Disbursed Amount, Outstanding Amount, Outstanding Interest
  • As a Business User I want to specify any static filter criteria for the report – for example: show only loans that are currently active
  • As a Business User I want to specify any run-time filter criteria – for example, show only loans disbursed during 2014 (user specifies this at the time of running a report using a date range) and for specific branches
  • As a Business User I want to specify the list of (numeric or currency) fields that need totals
  • As a Business User I want to specify any grouping and group totals that need to be displayed in the report – For example, for loan officers, do not show all loans, but only show sum of Disbursed Amount  and Outstanding Amount and Interest for this loan officer i.e. group the information by loan officer and show only totals.
  • As a Business User I want to view the report output in a graphical for, for example as line graph, barchart or pie-chart etc.
  • As a Business User I wish to save a report with a name for future re-use (Name and Description to be given)
  • As a Business User I wish to allow others also access to this report by specifying the report as a public report. A public report can be viewed and executed by other users, but may edited only by the “owner”. While a private report can only be viewed, edited and executed by the person who “owns” the report.