Skip to content

Instantly share code, notes, and snippets.

@abhi40308
Last active September 2, 2020 21:51
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 abhi40308/21cf6f1ac78efe309faaf6a0d6d971e4 to your computer and use it in GitHub Desktop.
Save abhi40308/21cf6f1ac78efe309faaf6a0d6d971e4 to your computer and use it in GitHub Desktop.
GSoC 2020 final submission report, work done and future scope for project

Google Summer Of Code 2020 Report

Organisation: Mifos Initiative (OpenMf)

Project-Name: Digital-Bank UI for staff on Fineract CN

Student: Abhijeet Singh Khangarot

Mentors: Giorgio Zoppi, Pranjal Goswami and Gaurav Saini

Project Description :

Apache Fineract CN is an Application Framework for Digital Financial Services. It is a system to support nationwide financial transactions and to support the creation of an inclusive, interconnected digital economy for every nation in the world.

Fineract CN operates on the principle that financial services are an innovative space and so each Fineract microservice encapsulates a domain that can be combined with other microservices to create new platform offerings. Fineract CN microservices can be combined to create new software platforms for digital financial service providers.

The purpose of this project is to create a back-office UI/ staff UI on top of Fineract CN to be used by the up and coming digital and neo banks that are focused on individuals.

  • Link to the Digital-bank-UI repository can be found Here
  • Link to the live version of current progress can be found Here. Ask for credentials in the org mailing list.

Commit made during gsoc :

Link :Commits

Project Implementation

The project started with an open and evolving scope, with work being started by discussions about design and product requirements. With other Mifos projects, mainly the web-app we were facing issue with building everything from scratch, a considerable effort was going into it and still, the UI wasn't looking that good. So we decided to use a custom angular theme: Ngx-admin which provides a lot of UI components out of the box. This summer I focused on implementing various modules and categorized them in 3 parts: Admin, Dashboard, and Customers.

  • Admin section contains Create/manage Roles and permissions, Create/manage offices, Create/manage users, and create/manage deposit product functionalities.
  • Customer section is the most important part for a digital bank focussed mainly on individual customers. Currently, we have a customer table, create/edit customers, customer tasks (used for verification/activation of customers), customer deposits/savings account page, and other supporting functionalities like uploading identity cards and creating custom fields. Among these customer savings account is build using mock data, and is required to be updated as we have more capabilities in Fineract CN backend.
  • A dashboard, which currently represents what we have in the app, and is required to be updated as the app evolves. I have used a lot of original code present in fims-web-app. There are other remaining parts in fims-web-app which can be used as required.

Roadmap for future progress

Check out this roadmap for contributing to digital-bank-UI. You can also check out the current progress video link there.

Challenges I faced

Some of the challenges which I faced, and how I got through them, which might help future contributors facing similar challenges.

  • We are using ngrx for state management, and reactive programming with rxjs. Starting out with ngrx store and rxjs is a bit challenging. I read ngrx documentation and blogs on rxjs, but what actually helped me was trying to build a sample project in ngrx, and discussing/explaining with a friend.
  • Fims-web-app has a few bugs and is written with older versions of everything (angular http, rxjs, ngrx). There are a lot of breaking changes, so while using the code I had to migrate to newer versions while removing the errors which was sort of challenging initially, but after some time I got used to it by practice and reading migration guides and blogs. My best work happened in the last month of GSOC after getting familiar with everything.

Conclusion

Contributing to Mifos Organisation has been an amazing experience, I have learned a lot of things from the Fineract community and have improved on my engineering especially by working on cloud-native applications and Micro-services.

I would like to thank the Mifos Initiative for giving me this opportunity.

I would like to thank Edward Cable (President, Mifos Initiative) for being of great help during the whole GSOC period, and my mentors Giorgio Zoppi, Pranjal Goswami and Gaurav Saini who have guided me through till the end of this summer internship.
Special thanks to Giorgio Zoppi for putting in a lot of effort in the project.

Also thanks to Bharath Gowda (Lead Implementation Analyst | Mifos Initiative), Abhay Chawla and Karan Takalkar for their help.

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