Skip to content

Instantly share code, notes, and snippets.

@karantakalkar
Created August 28, 2020 09:44
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save karantakalkar/7a4acb83f31ebfe4f3b827c86c67eec0 to your computer and use it in GitHub Desktop.
Save karantakalkar/7a4acb83f31ebfe4f3b827c86c67eec0 to your computer and use it in GitHub Desktop.
Final Work Product Submission for Google Summer of Code'20 at The Mifos Initiative - Karan Takalkar(@karantakalkar)

GSoC'20

GSoC'20 Work Product Submission Mifos X Web App | Karan Takalkar

Project Overview

Mifos X Web App is the revamped version of the Mifos X Community App, an effective financial inclusion solution and the default web application built on top of the Mifos X platform for the Mifos User Community. It provides the front-end for a core banking system. Due to the limitations of Angular 1.x, the community app is being rewritten as the web app leveraging Angular 9 and Material Design. This project strives to finish the work which began in 2018.

Work Overview

Table of Contents

  1. Dependencies Update
  2. Home Module
  3. Groups Module
  4. Clients Module
  5. Shares Module
  6. Savings Module
  7. FD Module
  8. Organisation Module
  9. Templates Module
  10. Other Work
  11. Credits

Project Progress Trackers

Dependencies Update

New Dependencies:

Angular 9

To keep the web app upto date with the latest released stable version of Angular and to resolve repetitive build failures [1], it was decided to upgrade it to Angular 9.

  • Updated all dependencies to their latest versions.
  • Travis configuration was updated to use Angular 9.
  • Configured Ivy (Angular's next-gen compilation engine).

Upgrade Documentation:

Chart.js

CKEditor5

Related Issues:
[1] openMF/web-app#1216
[2] openMF/web-app#1181
[3] openMF/web-app#772

Related Pull Requests:
[1] openMF/web-app#1215
[2] openMF/web-app#1182
[3] openMF/web-app#773

Groups Module

Features Completed:

  • Primary Components.
Create View Edit
Screenshot from 2020-08-27 17-21-56 View Group Edit Group

Related Issues:
[1] openMF/web-app#217
[2] openMF/web-app#778
[3] openMF/web-app#776
[4] openMF/web-app#777
[5] openMF/web-app#791
[6] openMF/web-app#212
[7] openMF/web-app#1036

Related Pull Requests:
[1] openMF/web-app#784
[2] openMF/web-app#789
[3] openMF/web-app#790
[4] openMF/web-app#793
[5] openMF/web-app#601
[6] openMF/web-app#1037

  • Basic Actions
Activate Delete Close
Group Activate Group Delete Group Close

Related Issues:
[1] openMF/web-app#1032
[2] openMF/web-app#1034
[3] openMF/web-app#1030

Related Pull Requests:
[1] openMF/web-app#1033
[2] openMF/web-app#1035
[3] openMF/web-app#1031

  • Meetings and Attendance
Attach Meeting Edit Meeting Edit Meeting Schedule Attendance
Group Attach Meeting Group Edit Meeting Group Edit Meeting Sch. Group Attendance

Related Issues:
[1] openMF/web-app#1044
[2] openMF/web-app#1051
[3] openMF/web-app#1053
[4] openMF/web-app#1046

Related Pull Requests:
[1] openMF/web-app#1033
[2] openMF/web-app#1052
[3] openMF/web-app#1054
[4] openMF/web-app#1035

  • Manage Members and Transfer Clients
Manage Members Transfer Clients
Group Manage Members Group Transfer Clients

Related Issues:
[1] openMF/web-app#1044
[2] openMF/web-app#1051

Related Pull Requests:
[1] openMF/web-app#1033
[2] openMF/web-app#1052

  • Staff and Role Assign/Unassign
Staff Role
Group Staff Group Role

Related Issues:
[1] openMF/web-app#1028
[2] openMF/web-app#1026

Related Pull Requests:
[1] openMF/web-app#1029
[2] openMF/web-app#1027

Module Progress Tracker:

Pending Work:

  • Entity Data Table Checks implementation (issue).

Clients Module

Features Completed:

  • Primary Components.
Create Edit
Screenshot from 2020-07-24 15-46-23 Screenshot from 2020-08-27 17-25-15

Related Issues:
[1] openMF/web-app#215
[2] openMF/web-app#1146

Related Pull Requests:
[1] openMF/web-app#1153
[2] openMF/web-app#1147

Known Issues:
Create client address step options unavailable on staging.mifos.io and dev.mifos.io
[1] Web App Ticket

  • Basic Actions
Activate Delete Close
Screenshot from 2020-08-27 19-15-29 Screenshot from 2020-07-13 12-49-55 Screenshot from 2020-07-13 11-44-10
Reject Withdraw Update Savings
Screenshot from 2020-07-13 12-17-24 Screenshot from 2020-07-13 15-32-40 Screenshot from 2020-07-13 17-08-43
Reactivate Undo Rejection Add Charge
Screenshot from 2020-07-15 12-27-42 Screenshot from 2020-07-15 13-09-13 Screenshot from 2020-07-15 13-52-38

Related Issues:
[1] openMF/web-app#1074
[2] openMF/web-app#1072
[3] openMF/web-app#1070
[4] openMF/web-app#1068
[5] openMF/web-app#1076
[6] openMF/web-app#1078
[7] openMF/web-app#1100
[8] openMF/web-app#1102
[9] openMF/web-app#1104

Related Pull Requests:
[1] openMF/web-app#1075
[2] openMF/web-app#1073
[3] openMF/web-app#1071
[4] openMF/web-app#1069
[5] openMF/web-app#1077
[6] openMF/web-app#1079
[7] openMF/web-app#1101
[8] openMF/web-app#1103
[9] openMF/web-app#1105

  • Transfer Actions
Transfer Undo Transfer Reject Transfer Accept Transfer
Screenshot from 2020-07-13 18-26-31 Screenshot from 2020-07-13 20-10-08 Screenshot from 2020-07-14 10-31-46 Screenshot from 2020-07-14 10-51-43

Related Issues:
[1] openMF/web-app#1044
[2] openMF/web-app#1051
[3] openMF/web-app#1053
[4] openMF/web-app#1046

Related Pull Requests:
[1] openMF/web-app#1033
[2] openMF/web-app#1052
[3] openMF/web-app#1054
[4] openMF/web-app#1035

  • Signature and Image Actions
Upload Signature View Signature Delete Signature
Screenshot from 2020-07-16 16-37-31 Screenshot from 2020-07-16 16-38-05 Screenshot from 2020-07-16 16-37-52
Upload Image Capture Image Delete Image
Screenshot from 2020-07-17 11-44-49 Screenshot from 2020-08-27 19-20-34 Screenshot from 2020-07-17 11-44-31

Related Issues:
[1] openMF/web-app#1119
[2] openMF/web-app#1121
[3] openMF/web-app#1129

Related Pull Requests:
[1] openMF/web-app#1120
[2] openMF/web-app#1122
[3] openMF/web-app#1130

Known Issues:
Backend errors while uploading client image or signature.
[1] ASF JIRA Ticket

  • Staff Actions and Screen Reports
Staff Screen Reports
Screenshot from 2020-07-13 11-00-01 Screenshot from 2020-07-19 13-36-27

Related Issues:
[1] openMF/web-app#1066
[2] openMF/web-app#1140

Related Pull Requests:
[1] openMF/web-app#1067
[2] openMF/web-app#1141

Module Progress Tracker:

Pending Work:

  • Entity Data Table Checks implementation (issue).
  • Client Charges design and functionality needs refactoring (issue).
  • Create Self Service User screen.(issue)
  • At certain places wrong/missing permissions were there in community app need to harden permissions in this module.

Shares Module

Features Completed:

  • Primary Components.
Create View Edit
Create Shares Account View Shares Account Edit Shares Account

Related Issues:
[1] openMF/web-app#224
[2] openMF/web-app#223
[3] openMF/web-app#880

Related Pull Requests:
[1] openMF/web-app#868
[2] openMF/web-app#877
[3] openMF/web-app#881

  • Basic actions
Activate Delete Close
Screenshot from 2020-06-23 21-26-58 Screenshot from 2020-06-23 16-47-10 Screenshot from 2020-06-23 19-39-26
Approve Undo Approval Reject
Screenshot from 2020-06-21 21-02-36 Screenshot from 2020-06-23 22-15-43 Screenshot from 2020-06-23 16-03-02

Related Issues:
[1] openMF/web-app#889
[2] openMF/web-app#891
[3] openMF/web-app#893
[4] openMF/web-app#895
[5] openMF/web-app#897
[6] openMF/web-app#899

Related Pull Requests:
[1] openMF/web-app#890
[2] openMF/web-app#892
[3] openMF/web-app#894
[4] openMF/web-app#896
[5] openMF/web-app#898
[6] openMF/web-app#900

  • Shares based actions
Apply Shares Redeem Shares Approve Shares Reject Shares
Screenshot from 2020-06-24 01-09-49 Screenshot from 2020-06-24 14-48-31 Screenshot from 2020-06-24 23-47-57 Screenshot from 2020-06-25 03-18-48

Related Issues:
[1] openMF/web-app#901
[2] openMF/web-app#903
[3] openMF/web-app#907
[4] openMF/web-app#909

Related Pull Requests:
[1] openMF/web-app#902
[2] openMF/web-app#904
[3] openMF/web-app#908
[4] openMF/web-app#910

Module Progress Tracker:

Savings Module

Features Completed:

  • Primary Components.
Create View Edit
Screenshot from 2020-06-19 16-11-39 Screenshot from 2020-06-10 01-24-23 Screenshot from 2020-06-20 16-47-11

Related Issues:
[1] openMF/web-app#225
[2] openMF/web-app#1004
[3] openMF/web-app#226
[4] openMF/web-app#1010

Related Pull Requests:
[1] openMF/web-app#959
[2] openMF/web-app#960
[3] openMF/web-app#1005
[4] openMF/web-app#1001
[5] openMF/web-app#1011

  • Basic actions
Activate Delete Close
Screenshot from 2020-06-26 13-13-59 Screenshot from 2020-06-25 15-58-04 Screenshot from 2020-06-28 23-36-23
Approve Undo Approval Reject
Screenshot from 2020-06-24 21-20-44 Screenshot from 2020-06-26 14-13-05 Screenshot from 2020-06-25 15-26-17
Withdraw Post Interest Calculate Interest
Screenshot from 2020-06-25 16-53-52 Screenshot from 2020-06-27 01-20-47 Screenshot from 2020-08-27 20-13-22

Related Issues:
[1] openMF/web-app#905
[2] openMF/web-app#911
[3] openMF/web-app#913
[4] openMF/web-app#915
[5] openMF/web-app#942
[6] openMF/web-app#918
[7] openMF/web-app#920
[8] openMF/web-app#928
[9] openMF/web-app#930

Related Pull Requests:
[1] openMF/web-app#906
[2] openMF/web-app#912
[3] openMF/web-app#914
[4] openMF/web-app#916
[5] openMF/web-app#943
[6] openMF/web-app#919
[7] openMF/web-app#921
[8] openMF/web-app#929
[9] openMF/web-app#931

  • Staff and Tax actions
Assign Staff Unassign Staff
Screenshot from 2020-06-26 18-52-18 Screenshot from 2020-06-26 19-37-07
Enable Disable
Screenshot from 2020-06-29 00-47-16 Screenshot from 2020-06-29 00-47-35

Related Issues:
[1] openMF/web-app#924
[2] openMF/web-app#926
[3] openMF/web-app#944

Related Pull Requests:
[1] openMF/web-app#925
[2] openMF/web-app#927
[3] openMF/web-app#931

  • Apply Annual Fees and Post Interest as on
Apply Annual Fees Post Interest as on
Screenshot from 2020-06-30 13-12-08 Screenshot from 2020-06-26 15-12-41

Related Issues:
[1] openMF/web-app#957
[2] openMF/web-app#922

Related Pull Requests:
[1] openMF/web-app#958
[2] openMF/web-app#923

  • Transactions actions
View Trasaction Edit Transaction
Screenshot from 2020-06-27 17-07-39 Screenshot from 2020-06-30 00-15-25
View Reciept Export
Screenshot from 2020-06-29 17-20-16 Screenshot from 2020-06-29 18-04-58

Related Issues:
[1] openMF/web-app#932
[2] openMF/web-app#953
[3] openMF/web-app#948
[4] openMF/web-app#946

Related Pull Requests:
[1] openMF/web-app#933
[2] openMF/web-app#954
[3] openMF/web-app#949
[4] openMF/web-app#950

  • Charges actions
View Charge
Screenshot from 2020-06-27 22-02-18
Delete Edit
Screenshot from 2020-06-29 20-03-45 Screenshot from 2020-06-29 20-03-37
Pay Waive Inactivate
Screenshot from 2020-06-27 22-02-47 Screenshot from 2020-06-27 22-02-53 Screenshot from 2020-06-27 22-02-59

Related Issues:
[1] openMF/web-app#938
[2] openMF/web-app#951

Related Pull Requests:
[1] openMF/web-app#939
[2] openMF/web-app#952

Module Progress Tracker:

Pending Work:

  • Entity Data Table Checks implementation (issue).

Fixed Deposits Module

Features Completed:

  • Primary Components.
Create View Edit
Screenshot from 2020-07-07 00-26-56 Screenshot from 2020-07-02 19-26-46 Screenshot from 2020-07-07 20-28-08

Related Issues:
[1] openMF/web-app#225
[2] openMF/web-app#1004
[3] openMF/web-app#226
[4] openMF/web-app#1010

Related Pull Requests:
[1] openMF/web-app#959
[2] openMF/web-app#960
[3] openMF/web-app#1005
[4] openMF/web-app#1001
[5] openMF/web-app#1011

  • Basic actions
Activate Delete Close on Maturity
Screenshot from 2020-07-03 16-49-45 Screenshot from 2020-07-03 14-31-43 Screenshot from 2020-06-28 23-36-23
Approve Undo Approval Premature Close
Screenshot from 2020-07-03 13-13-30 Screenshot from 2020-07-03 17-37-47 Screenshot from 2020-07-05 16-14-20
Withdraw by Client Reject Add Charge
Screenshot from 2020-07-03 18-58-43 Screenshot from 2020-07-03 13-39-19 Screenshot from 2020-07-04 19-39-09

Related Issues:
[1] openMF/web-app#962
[2] openMF/web-app#964
[3] openMF/web-app#966
[4] openMF/web-app#976
[5] openMF/web-app#996
[6] openMF/web-app#994
[7] openMF/web-app#972
[8] openMF/web-app#974
[9] openMF/web-app#992

Related Pull Requests:
[1] openMF/web-app#963
[2] openMF/web-app#965
[3] openMF/web-app#967
[4] openMF/web-app#977
[5] openMF/web-app#997
[6] openMF/web-app#995
[7] openMF/web-app#973
[8] openMF/web-app#975
[9] openMF/web-app#993

  • Calculate and Post Interest
Calculate Interest Post Interest
Screenshot from 2020-07-03 14-53-03 Screenshot from 2020-08-27 20-31-18

Related Issues:
[1] openMF/web-app#968

Related Pull Requests:
[1] openMF/web-app#969

  • Enable and Disable withhold tax
Enable Disable
Screenshot from 2020-07-03 15-45-20 Screenshot from 2020-07-03 15-45-30

Related Issues:
[1] openMF/web-app#970

Related Pull Requests:
[1] openMF/web-app#971

  • Transactions
View Trasaction
Screenshot from 2020-07-04 15-45-03

Related Issues:
[1] openMF/web-app#988

Related Pull Requests:
[1] openMF/web-app#989

  • Charges
Delete Edit
Screenshot from 2020-06-29 20-03-45 Screenshot from 2020-06-29 20-03-37
Pay Waive Inactivate
Screenshot from 2020-06-27 22-02-47 Screenshot from 2020-06-27 22-02-53 Screenshot from 2020-06-27 22-02-59

Related Issues:
[1] openMF/web-app#990

Related Pull Requests:
[1] openMF/web-app#991

Module Progress Tracker:

Organisation Module

Features Completed:

  • SMS Campaigns
Create View Edit
Screenshot from 2020-06-07 16-42-04 Screenshot from 2020-06-07 16-42-47 Screenshot from 2020-06-07 16-43-10
Close Reactivate Activate Delete
Screenshot from 2020-08-01 18-22-43 Screenshot from 2020-08-01 18-23-30 Screenshot from 2020-08-01 18-23-01 Screenshot from 2020-08-01 18-23-19

Related Issues:
[1] openMF/web-app#167
[2] openMF/web-app#764
[3] openMF/web-app#563
[4] openMF/web-app#1163

Related Pull Requests:
[1] openMF/web-app#835
[2] openMF/web-app#851
[3] openMF/web-app#1164

  • Teller Cashier Management
View Cashiers View Cashier Transactions Create Cashier
Screenshot from 2020-06-23 02-05-36 Screenshot from 2020-07-11 23-25-08 Screenshot from 2020-07-12 14-08-04

Related Issues:
[1] openMF/web-app#757
[2] openMF/web-app#760
[3] openMF/web-app#161

Related Pull Requests:
[1] openMF/web-app#888
[2] openMF/web-app#1061
[3] openMF/web-app#1064

  • Bulk Imports
View Bulk Imports
Screenshot from 2020-07-28 12-23-02

Bulk-Imports have been implemented in a way that a single component can be re-used for all 18 Bulk-Imports pages.

Related Issues:
[1] openMF/web-app#633

Related Pull Requests:
[1] openMF/web-app#637

  • Provisioning Criterias
Create Provisioning Criteria Edit Provisioning Criteria
Screenshot from 2020-08-02 16-28-04 Screenshot from 2020-08-03 14-07-50

Related Issues:
[1] openMF/web-app#570
[2] openMF/web-app#644

Related Pull Requests:
[1] openMF/web-app#1167
[2] openMF/web-app#1168

  • View Office
View Office
Screenshot from 2020-05-31 22-38-49

Related Issues:
[1] openMF/web-app#635

Related Pull Requests:
[1] openMF/web-app#828

  • Standing Instructions History
Input Form Output Table
Screenshot from 2020-08-05 16-28-17 Screenshot from 2020-08-05 16-27-24

Related Issues:
[1] openMF/web-app#1176

Related Pull Requests:
[1] openMF/web-app#1177

  • Fund Mapping
Fund Mapping
Screenshot from 2020-08-06 16-38-44

Related Issues:
[1] openMF/web-app#1179

Related Pull Requests:
[1] openMF/web-app#1180

  • Manage Funds and Manage Currencies
Manage Funds Manage Currencies
Screenshot from 2020-06-22 15-35-28 Screenshot from 2020-06-22 23-00-39

Related Issues:
[1] openMF/web-app#155
[2] openMF/web-app#152

Related Pull Requests:
[1] openMF/web-app#886
[2] openMF/web-app#887

  • Edit Adhoc Query and Create Holiday
Edit Adhoc Query Create Holiday
Screenshot from 2020-08-27 19-34-52 Screenshot from 2020-08-27 19-41-14

Related Issues:
[1] openMF/web-app#752
[2] openMF/web-app#154

Related Pull Requests:
[1] openMF/web-app#1065
[2] openMF/web-app#1195

Pending Work:

  • Create Holiday Checkbox Tree implementation (issue).
  • Hardening of Bulk imports permissions (issue).

Other Work

Features:

  • Notifications Tray.

Screenshot from 2020-08-04 17-09-58

  • Notifications Page
Notifications Page
Screenshot from 2020-08-03 16-12-06

Related Issues:
[1] openMF/web-app#1171
[2] openMF/web-app#1169

Related Pull Requests:
[1] openMF/web-app#1172
[2] openMF/web-app#1170

Known Issues:
Routing to a particular notification is blocked.
[1] Web App Ticket
[2] ASF JIRA Ticket

  • Master Search Tool.

Screenshot from 2020-08-10 16-37-42

  • Master Search Results Page.
Master Search Results Page
Screenshot from 2020-08-10 16-40-56

Related Issues:
[1] openMF/web-app#1189

Related Pull Requests:
[1] openMF/web-app#1190

  • User Profile.
User Profile Page
Screenshot from 2020-08-16 16-11-47

Related Issues:
[1] openMF/web-app#1208

Related Pull Requests:
[1] openMF/web-app#1208

  • Automate frequently accessed side-nav icons.

Screenshot from 2020-08-26 13-02-01

Related Issues:
[1] openMF/web-app#1210

Related Pull Requests:
[1] openMF/web-app#1211

  • Language and Date Format settings.

Screenshot from 2020-08-26 15-12-38

Language and Date Format settings have been initialized in the App, however we need to replace all harcoded instances with the centralized settings service.

Related Issues:
[1] openMF/web-app#1213

Related Pull Requests:
[1] openMF/web-app#1214

Refactored and merged reports module.

I had developed Reports Module as a pre-GSoC Contribution.

Related Issues:
[1] openMF/web-app#232
[2] openMF/web-app#628
[3] openMF/web-app#592

Related Pull Requests:
[1] openMF/web-app#561
[2] openMF/web-app#629
[3] openMF/web-app#592

Refactoring and Fixes.

  • Permissions, documentations and functionality refactoring.

I had developed the has-permission directive as a pre-GSoC task.

Related Issues:
[1] openMF/web-app#1196
[2] openMF/web-app#721
[3] openMF/web-app#794

Related Pull Requests:
[1] openMF/web-app#1197
[2] openMF/web-app#1199
[3] openMF/web-app#1200
[4] openMF/web-app#1201
[5] openMF/web-app#1202
[6] openMF/web-app#1203
[7] openMF/web-app#1207
[8] openMF/web-app#1226
[9] openMF/web-app#1227
[10] openMF/web-app#722
[11] openMF/web-app#795

  • Other miscellaneous refactoring/fixes.

Related Issues:
[1] openMF/web-app#1224
[2] openMF/web-app#1154
[3] openMF/web-app#1116
[4] openMF/web-app#1111

Related Pull Requests:
[1] openMF/web-app#1225
[2] openMF/web-app#1155
[3] openMF/web-app#1117
[4] openMF/web-app#1112

Reviewed pending pull requests as a bonding period task.

  • 51 reviewed, 37 merged, 14 closed.

Further work possible for future:

  • Runtime Translations can be enabled with Ivy using i18n and @angular/localize.
  • Implementing unit and e2e tests using protractor and karma.
  • Stricter type checking can spot bugs at compilation itself, no need to build the app during travis we can replace npm run build:prod with ng test and ng e2e once testing suite is in place.
  • Replicating the few remaining screens from community app.

Credits

I would like to acknowledge the efforts of following people for authoring the given major software components which could enable me to easily replicate functionality for analogous use cases.

  • Jivjyot Singh : Clients View Skeleton, Notes Tab, Data-Tables Tabs, Custom Theming and Mat-Accordian usage.
  • Abhay Chawla : Overall Material Stepper Skeleton and delicate functionality in Charges & Interest Rate Chart steps.
  • Abhijeet Singh : Add Charge Component.

Overall Experience

I would like to thank Abhay Chawla and Jivjyot Singh for very active mentoring throughout the programme. A special thanks to Ed Cable, Sanyam Goel and Rahul Goel for administrative support and Bharath Gowda for providing clarification with community app use cases. It has been a great experience working with the Mifos community and I am looking forward to continue the same in the future.

Thank you Mifos Initiative and Google Open Source Team for this great opportunity! 👍 🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment