Calendar Concept and Spec

How Mifos handles calendar?

Mifos does not have Calendar, instead it has Meeting facilities.

Supported features by Meeting

    • Allow to create recurring meeting with below rules
      • Daily (any multiple of a day )
      • On day of a week, Frequency is Weekly (any multiple of a week )
      • On day of a Month, Frequency is Monthly (any multiple of a month )
    • Supports to capture Meeting location

Limitation of Meeting

    • Can’t specify start time and end time of meeting
    • Can’t create one time events
    • Can’t attach event (meeting) to Branch/Group/Member (In Case of Center enabled )
    • Centers can’t have more than one meeting schedule
    • Meeting is always associated loan schedule or saving( Meeting for repayment or savings)
    • Can’t create meeting for general purpose ( training , Internal audit etc )
    • Can’t have reminders
    • Can’t create a weekly meeting which occurs on every Monday and Saturday, similarly other patterns

 

How these new Calendar features address the limitations of Mifos meeting?

A calendar means a list of planned events attached to an entity in Mifos X, allows creating any number events for an entity (Member/SHG/Center/Branch). This can be used for reminders, generating collection sheet etc.

 

Non Goals 

    • All day events: Events lasting entire day(s). – Never supported
    • Time zone sensitive ( always time are with respect to MFIs time zone) – Never supported
    • Holidays (this will be supported in next release - John and Vishwas need to decide)
    • Capturing attendance (this will be supported in next release - John and Vishwas need to decide)
    • Validate busy/available before creating an event (Next release)

 

Key Functional Areas Impacted

    • ·        New Loan Account Creation
    • ·        Center/Group creation

 

Use Case 1: Adding Center meeting (During center creation)



In addition to the current parameters of Center / Group definition, the following changes are needed on New Center / Group creation:

 

    1. Ability to specify meeting name and description
    2. Ability to specify meeting type (Payments [this system defined type, used during loan creation / saving account / collection] / General meeting / Centre Audit [other types are admin defined])
    3. Meeting recurring details can be added.

 

Once Centre/Group is created with event details, this event can be used during child group creation or new loan account creation (within that Centre/Group). In next use case we will see in-detail.

 

Use Case 2: Creating New Loan (mapped to Centre/Group meeting)

 


In addition to the current parameters of loan application, the following changes are needed on new Loan creation:

1.    Ability to specify meeting.
2.    Loan term’s unit will be populated based on “meeting” selected. And it will become un-editable to user
3.    Repaid every’s unit will be populated based on “meeting” selected. And it will become un-editable to user
4.    Expected disbursement on will pre populated as next meeting date. But can be change to any future date.
5.    First repayment on will pre populated as next meeting date. But can be changed to any future meeting date.


Technical Details (implementation approach )

 

Data Model

 

Calendar

 

#

Field

Description

1

Id

System generated

5

createDate

Event created date

6

Title

Name given to the event

7

description

Description

8

Location

Location of the event

9

startDate

Start date of the event

10

endDate

End date of the event

11

durationHour

 

12

durationMinute

 

13

type_

    • Payment Collection (system defined type, collection sheet is generated only against this meeting type)
    • Training ( MFI defined type )
    • Audit ( MFI defined type )
    • General meeting( MFI defined type )

14

Repeating

Yes/No

15

Recurrence

RRULE:FREQ=WEEKLY;UNTIL=20110701T160000Z

RRULE:FREQ=DAILY;UNTIL=20000131T090000Z;BYMONTH=1

16

remindBy

Email / SMS / System alert

17

firstReminder

reminder ( Number of minutes before event start time)

18

secondReminder

reminder ( Number of minutes before event start time)

 

 

 

CalInstance

 

#

Field

Description

1

entityId

Member/Centre/SHG system id

2

entityTypeId

Id indicating entity is a Member/Centre/SHG

3

calId

Calendar Id

 

Attendance

 

#

Field

Description

1

Id

Member/Centre/SHG system id

2

entityId

Member/Centre/SHG system id

3

entityTypeId

Id indicating entity is a Member/Centre/SHG

4

CalId

 

5

MeetingDate

 

6

Enum_attendance

    1. Present
    2. Absent
    3. Approved Leave
    4. Late

 

 

ER Diagram (Calendar)

 

 

 

 

External references