2019 Google Summer of Code Wrap-Up

Another Google Summer of Code has come and gone again and as our intern community grows it’s hard to keep up with sharing back with the community the product of their efforts. This year we worked with our biggest class of Mifos Initiative GSOC interns with 14 and also worked directly with 2 Apache Fineract GSOC interns and 2 Outreachy interns with the support of DIAL. Apart from the valuable code contributions our interns make, they are a critical organic growth engine for the community which has helped to yield some of our most impactful contributors to the community like Avik Ganguly of Fynarfin. So give them a big shout-out via the lists or social media and encourage them to keep on contributing and fighting poverty with financial inclusion.

This year our students worked across the entire stack from back to front-end on top of both of generations of Mifos/Fineract. On our mobile apps, we added new functionalities, enhanced the user experience, integrated with external payment systems and did refactoring across our mobile field operations app for Fineract and Fineract CN, our Mifos Mobile mobile banking apps for Finerct and Fineract CN, our mobile wallet app, and a new Fiinwallet app contributed by Fintecheando. On the web app front, we had two interns continue rewriting the web app into the latest version of Angular and continued enhancing our Online Banking App. On the back-end we hardened Fineract by tackling some of the backlog, updated our Swagger API documentation, integrated our payment hub with the GSMA mobile money APIs and continued to push the frontier of new innovation with enhancements to our chatbot, machine learning-based scorecard, and a new mobile app to capture the PPI using cloud vision and automated detection of objects in images. On the back-end of Fineract CN, we completed the removal of Category X dependencies to prepare for a 1.0 release of Fineract CN. Our Outreachy interns worked on our community infrastructure by migrating our Mifos mailing lists to a Discourse forum and our user manual to a Gitbook user manual.

This post highlights their work with links to their final reports. We’ll also be conducting a couple showcases to demo their work so please register for the Showcase on October 4 or the Showcase on October 8 at 1300GMT via Zoom Webinar.  Our reflections post will soon follow to help you get to know these interns and keep them immersed and involved in the community.

Thank You!

Before we take a closer look at the results of the summer, we want to first off thank everyone who made Google Summer of Code another successful year.

Google Open Source Programs Office

First off we want to once again thank the Google Open Source Programs office for giving us the opportunity to participate once again in Google Summer of Code. Our mentors, Rahul and Tarun, are looking forward to seeing the entire team at the Mentor Summit in Germany this October!  We are always impressed by the awesome job they do in coordinating such a massive global collaboration handling all the moving pieces so smoothly. We look forward to participating in GCI and GSOC for many years to come!

Mentors & Co-Org Admin

A huge thank you to all our mentors who are the most critical piece of the puzzle in having a successful Google Summer of Code. Without our mentors being there at each step of the way to help guide our students in their journey, we couldn’t get through the summer. A big thank you to Rahul Goel especially for stepping up as Co Org-Admin and really being on top of ensuring all our student evaluations were submitted on time by mentors. We are eager to grow our mentor participation for next year so welcome any community members who’d like to make the leap, to step forward now!

Thank you to our mobile development mentors – Rajan Maurya, Tarun Mudgal, , Naman Dwivedi, Abhilash G, Anamika, and Ishan Khanna. Thank you to our web development mentors – Gaurav Saini, Pranjal Goswami, Kelvin Okome, and Ankit Ohja.  Thanks to our mentors on the platform side – Avik Ganguly, Nayan Ambali, Aleksandar Vidakovic, Lalit Mohan, Steve Conrad, Courage Angeh, Rahul Goel, Sanyam Goel, Raul Sibaja, Karina Munoz, and Victor Romero. Thank you to our Fineract CN mentors –  Isaac Kamga. Thank you to Courage and Ruphine for their Outreachy mentorship.

DIAL & Outreachy

Thank you to DIAL for supporting one of our Outreachy interns and to the Outreachy general fund for supporting the other – the meaningful contributions our interns made will greatly impact the community.

Our Interns

Last, but certainly not least, thank you to our interns from across the globe who poured their energy into their projects. This year they were ever-perseverant in working on brand new codebases, changing requirements on the fly, and working on experimental solutions. What is always most rewarding is seeing how collaborative and supportive the interns are of each other helping to solve coding problems, helping with collaboration tools and just being great all-around community members. We wish them the best of luck in whatever they pursue next and look forward to their continued contributions to the Mifos Initiative. Already, despite the program being officially over, many of our interns have continued making contributions and wrapping up loose ends of their projects. 

Summary

2019 Interns

Student

Mentor

Category

Project

Final Report

Android Android Field Officer App Version 6.0 https://gist.github.com/moksh-mahajan/cf080d66b72659713dbc8336ca19976e
Android Mifos Mobile 4.0 https://gist.github.com/prashantkh19/ee02d6955ee17c3e44e6253c175caf97
Android Mobile Wallet 3.0 https://gist.github.com/shiv07tiwari/acb5a7266fe685e8332498fd32b00bf0
Android FiinWallet https://gist.github.com/manigedit/542031cfaff35325d19409a73cb8c6c6
Android – Fineract CN Fineract CN Mobile 3.0 https://gist.github.com/miPlodder/c1cec05d019bef444401004eb0453efe
Android – Fineract CN Fineract CN Mobile 2.0 https://gist.github.com/abhijitramesh/807768da9097455ae2823c6fc47523bf
Web Apps Web App Rewrite https://gist.github.com/abhaychawla/6cbb79aceec7ad516097e9083543c785
Web Apps Online Banking App 3.0 https://gist.github.com/CajetanRodrigues/b2b14b55f0f2c97ea276eb764209c4d9
Web Apps Web App Rewrite https://gist.github.com/Jov03/feb00a8a921668cf0ee9cd725ee881a2
Fineract 1.x Platform & Modules Integrate Payment Hub with GSMA Mobile Money APIs https://gist.github.com/sidhant-gupta-004/090a9e95b3066e5dd0f8f6005ea60d04

Apoorva MK

Fineract 1.x Platform & Modules Computer Vision PPI https://gist.github.com/apoorva-mk/a6661ca04b9b6b5d098e8bee41c35ddf

Raul Sibaja

Platform & Integration Mifos Chatbot 2.0 https://gist.github.com/iosdev747/2b7de87cd9b028bb97433ee2e26ad18d
Fineract 1.x Platform & Integration Machine Learning Scorecard for Credit Risk Assessment https://gist.github.com/SupreethSudhakaranMenon/a20251271adb341f949dbfeb035191f7
Fineract CN Hardening of Fineract https://gist.github.com/DylanRobson/5353817529f37d477f3b480dc0166343
(Apache) Kang Breder Fineract Update Swagger APIs https://gist.github.com/kangbreder/034f47e2e8015cee10b48b7c5f1b8df1
(Apache)

Fineract CN Replace Hibernate with Eclipselink https://gist.github.com/ebenezergraham/b0f46714b4821650db62cb68b03f50f2
(Outreachy)

Kerlyn Nkep
Ruphine Kagne
Community Infrastructure Migrate Mifos Mailing Lists to Discourse
(Outreachy)

Massabe Lydiane

Courage Angeh
Community Infrastructure Convert User Manual to Gitbook

Mobile Apps

We had a total of six interns working on our mobile apps across both Fineract and Fineract CN. For our Mifos X mobile apps, Mifos Mobile 4.0 is now ready to support external payment systems and is more skinnable, our Android Client 6.0 is further refactored with additional functionalities, our Mobile Wallet 3.0 framework continues to be extended to be a valuable foundation for mobile wallet apps, and we now have a hybrid wallet app, FiinWallet that has been contributed by Fintecheando. For our apps on Fineract, we continued refactoring both Finearct CN Mobile 3.0 and Mifos Mobile CN 2.0. Mifos Mobile CN 2.0 is now prepared to consume the soon to be released Open Banking APIs via our API gateway.    These are great reference apps to demo what Mifos and Fineract can support but they’re also great “starting dough” for any partner looking to see what can be built on top of Mifos X or Fineract CN  and wanting a reliable open source foundation to start from.

Mifos Mobile 4.0 – Prashant Khandelwal 

Prashant spent the summer working under the mentorship of Rajan Maurya, completing a mix of functional, architectural, and design improvements to the reference mobile banking app, Mifos Mobile 4.0.  Some of his major accomplishments include improving the outbound notification system by migrating from GCM to FCM, support for Google Authenticator as the second factor for two-factor authentication, updates to several views and filters in the app to better visualize details, initial integration with RocketChat for direct customer support between staff and clients, a dark theme and better support for skinning, and phase 1 of integration with Mojaloop via the payment hub. With the payment hub and API Gateway now in place, next we look to add additional mobile money and. payment system integrations into the app as well as having the app connect via the Open Banking API rather than the self-service APIs. Take a look at everything Prashant worked on in his final report on Gist.

 

Mobile Wallet Framework 3.0 – Shivansh Tiwari 

Shivansh worked under the guidance of Naman Dwivedi and was able to accomplish a substantial amount including improving user experience and redesigning the app, support for Kotlin, integration with two Mojaloop transaction flows via the Paymeht Hub, adding improving Deeplinks, support for standing instructions and more well-rounded support for merchant transactions.  On the UX front, Shivansh added filters to improve searching history, added additional search bars, improved QR Code generation and scanning, refactored the sign up process to include a password strength checker and password display option, and redesigned the receipt view with support for generating a PDF.  The app now supports deep links for receipts and invoices which allow URLs to open up directly in the wallet application with support for auth handling when the user hasn’t entered his/her passcode.   Standing instruction support is now provided whereby new standing instructions can be created and existing ones viewed.  Integrating with external payment systems like mobile money will soon be possible now that the payment hub has been integrated supporting two Mojaloop use cases, a peer to peer transfer via MSISDN and merchant payment via dynamic QR code. The mobile wallet now provides an even more robust framework to either manage a consumer or agent-facing wallet for a mobile money or wallet operator or to build a consumer wallet to unify multiple transactional accounts in one interface.  On the roadmap is integrating with the Hover SDK for USSD Automation, and using the API Gateway to more securely connect to Fineract or Fineract CN. We are eager to identify users who would like to provide use cases to further develop the mobile wallet.  Please view gifs for each enhancement in Shivansh’s gist final report.

Mifos X Mobile Field Operations App 6.0 – Moksh Mahajan

With Tarun Mudgal as his primary mentor, Moksh Mahajan, overcome widespread internet outages across his region to still have a very productive Google Summer of Code working on Version 6.0 of the Android Client including adding support for fingerprint authentication, bulk approval of tasks via Checker Inbox, migration of the project to Android X and support for Kotlin as well as a number of bug fixes and minor enhancements. Moksh added improvements to a number of the views including displaying mobile number and group name in client details as well as ability to add a photo while creating a new client.  The entire project has been migrated to Android X (Jetpack) making it consistent with our other Android apps – support for Kotlin has also been added. On the functional side, a major enhancement is the implementation of the checker inbox allowing users to view a list of tasks and bulk approve, create, disburse, etc. Lastly Moksh added support for fingerprint authentication and made it part of the passcode library so now any of our Android apps can also utilize fingerprint authentication. View his final report on gist to learn more.

 

Mifos Mobile CN 2.0 – Abhijit Ramesh

Abhijit worked on the second iteration of Mifos Mobile CN, the mobile banking app for Fineract CN, under the mentorship of Rajan Maurya and Abhilash G. Abhijit added a significant amount of new functionality and screens to enhance user experience and began preparing the app for connecting securely to Fineract CN via the soon-to-be-released API gateway providing support for an Open Banking API. Abhijit improved the app from all regards including the client page, the loans and deposits pages, as well as upgrading the app to Android X, the rebranded support libraries provided by Google. Enhancements include the ability for the client to upload and edit their profile photo and a new customer details page to review their current loan and savings products and all their details including ID cards, current status, and recent activities. When applying for a loan, a client can now review details of the loan application before submitting. The amount of information available via the loan and deposit details pages has now been greatly expanded to include all details, plus viewing of the repayment schedule and debt to income report; likewise details of deposit accounts can now be viewed. An About Us page was also added to the repo, a Gitter channel and Travis CI badge. To view details and links to pull requests for all the work, please view Abhijit’s final gist submission.

Fineract CN Mobile 2.0 – Saksham Handu

Saksham, in his second stint as a Mifos GSOC intern, worked under the guidance of Rajan Maurya to build out version 3 of our field operations app on top of the next generation Fineract architecture, Fineract CN Mobile 3.0.  Like other interns, he also upgraded the app to Android X and added a number of architectural and functional enhancements. On the architectural side, to make Fineract CN mobile an offline first app, integration with Couchbase is needed. Saksham has begun the migration from REST API calls to Couchbase calls starting with syncing functionality for Customers that can be carried over to other modules of the app. Search functionality previously relied on REST calls back to the server but now it can be done by filtering locally on the Android device. The ability to create new groups via the app has been added along with the ability to view details for Accounts, Ledgers, Tellers, and Products. A settings section to the app has now been added, a new splash screen, and the app is now integrated with the passcode library. View Saksham’s final report at https://gist.github.com/miPlodder/c1cec05d019bef444401004eb0453efe. 

 

Fiinwallet – Manish Kumar

Manish Kumar, under the mentorship of Victor Romero and Karina Muñoz,  worked on the Fiinwallet app, a hybrid mobile app which was recently contribute to the community by Fintecheando. Fiinwallet is cross-platform hybrid app built on the Ionic framework and interacts with a middleware to call the self-service APIs providing an extra layer of abstraction for security. The app allows a user to open a basic savings account, make transfers, view statements, apply for loans, etc. Manish started work around enabling a selfie to ID card for verification but that still in progress. Of the work he completed it included adding a new dashboard screen, support for adding savings charges adding a page to view beneficiaries, listing of accounts and account details page. New middleware endpoints were added and a new KYC page to upload client photos has also been added.  View a final report on Manish’s work at https://gist.github.com/manigedit/542031cfaff35325d19409a73cb8c6c6

 

Web Apps

On the web app front, we focused our interns on entirely re-writing the web app into Angular 7 and extending the online banking app. One of the major GSOC projects we took on in 2018 was the rewrite of the Mifos X web app into the latest version of Angular. Although we continued the work in 2019 with two very talented web developers, we still have a lot to go and welcome the community’s contributions. You can test out the progress of development on the new UI at https://openmf.github.io/web-app/ with credentials, mifos/password.

Online Banking App 3.0 – Cajetan Rodrigues

Cajetan, was our third web development intern and worked on Online Banking App 3.0 with Ankit Ohja as his mentor. Cajetan also began his project by uploading to the latest version of Angular. For the Dashboard and for the Login screens, Cajetan has created the UI and integrated with the APIs. For all of the following features, the UI screens have been implemented and the integration with the API is pending: adding OTP verification during user signup, adding a forgot and reset password functionliaty, support for viewing charges, functionality to apply for a new loan, transferring amongst accounts and via third parties, submitting surveys, adding beneficiaries, a client help/support screen, support for notifiications, and an improved client profile page. View screenshot of all this work at https://gist.github.com/CajetanRodrigues/b2b14b55f0f2c97ea276eb764209c4d9

 

 

Mifos X Web App Rewrite – Abhay Chawla

For the second year in a row, Abhay was slated to work on a different web app project but ultimately focused on rewriting of the core Mifos X web app. This year, Abhay was going to implement a self-guided configuration wizard but instead continued on the rewrite. Just like Abhay, apart from re-implementing the screens, he had to spend large efforts on refactoring to improve the re-usability and consistency of the code. Abhay began his project by upgrading the Mifos X web app and all of its dependencies to the latest version, Angular 7. Abhay also created a custom component for creating forms dynamically in a dialog to replace the current approach where form fields were being added to a dable.  Since Abhay was focused on the product pages, he also implemented pipes to assist with filtering and integrated with Angular Material Stepper for a consistent wizard-like view while filling out long forms like product creation; previously the entire code for actions for a stepper were cluttered in a single file – code readabilty and re-use has now been greatly improved. The screens that Abhay re-implemented including the list, create, view, and edit sections for the loan products, savings products, and share products. Abhay looks forward to continuing his work and addressing some outstanding questions with the community on handling of translations. View screenshots of all Abhay’s work on this gist at https://gist.github.com/abhaychawla/6cbb79aceec7ad516097e9083543c785

Mifos X Web App Rewrite – Jivjyot Singh

Jivjyot spent his summer continuing the rewrite of the Mifos X web app into the latest version of Angular, that Anwesh and Abhay began last summer. With Pranjal, Gaurav, and Kelvin providing supports mentors, Jivjyot focused primarily on rewriting the screens related to clients in Mifos X. His project began with mockups for a redesigned client dashboard page and unifying client and account creation workflows under that. In implementing the new clients UI, Jivjyot had to significantly refactor it to follow coding standards throughout the app including removing partially implementing components, using HttpClient to make API requests, and updating the routing so dynamic bread crumbs would work properly. On the view clients page, to make the UI consistent when navigating amongst different client-level tabs, all the actions were added to the header. Jivjyot’s thoroughness on this project is manifest on the back-end, where he took the initiative to add ehancements to the global stylesheet for storing color related scss variables. Apart from creating the new view client page in the latest version of Angular, Jivjyot also re-implemented the client list page with server side pagination and a togggle to show/hide closed client. He also re-implemented the family members list and adding family member pages, the address tab, the identities tab, the documents tab, the notes tab, and data tables tab. Jivjyot looks forward to continuing his project and will be improving the search implementation and working on the import clients workflow. You can view details screenshots of each view that Jivjyot re-implemented at https://gist.github.com/Jov03/feb00a8a921668cf0ee9cd725ee881a2

 

Fineract 

Once again we had several interns working both directly on Fineract 1.x and as well as ancillary modules to the core.

Computer Vision PPI – Apoorva M. K. 

Apoorva took on a very ambitious project in seeking to build out a brand new mobile application along with developing a machine learning model to leverage cloud vision to detect objects in images to allow for the capture of the PPI survey by simply taking a photo. Being such a frontier project, there were some delays in getting access to enough images to train the model as well as well as full support for the PPI in Mifos X and Fineract. Despite not completing her project fully, Apoorva still accomplish an immense amount and learned even more with the support of her mentors, Rahul, Nayan, and Ishan. Some of the major learnings that Apoorva took away from this summer included extending her proficiency in Android development including her first introduction to Kotlin and famliarization with new libraries such as Work Manager and Retrofit, image augmentation techniques and the AutoML object detection feature on the Google Cloud platform, and how to write production-level code and healthy development practices.  Throughout the summer, Apoorva created the code for a brand new Android app, Vision PPI, with authentication via the Fineract platform APIs, a homepage with client search using the Fineract APIs, a user profile, a basic client profile page with the ability to take a new survey, the ability to take a picture from the camera or gallery and uploaded it to the Google Cloud vision model where it will detect objects found in the image. Due to not having access to specific household images, Apoorva had to train her model on detecting basic objects but now has the foundation in place to continue extend the project along with the support of the Mifos community and the IPA team guiding the PPI. View links to PRs and gifs of all her work at https://gist.github.com/apoorva-mk/a6661ca04b9b6b5d098e8bee41c35ddf

 

Hardening of Fineract – Dylan Robson 

With the support of Courage and Rahul as his mentors, Dylan excelled on a project that challenged him professionally and took him well beyond his previous experiences. Dylan impressed us all with the thoroughness of his development and how intensively he debugged each of the issues he was assigned. Since this was his first time working on a large codebase having to navigate dozens of classes instead of just a few and was learning new domain terminology related to microfinance, Dylan began by creating a Spring Boot app to familiarize himself. From there, Dylan took on the investigation and debugging of several critical and complex issues from the backlog: Fineract-615 to resolve an Amazon S3 issue related to administration configuration error, fixing Fineract-609 to implement group top-up loan functionality by identifying and fixing the error where the server was not sending the Java array containing the IDs of active group loan accounts to be closed, Fineract-722 fixing the issue where certain integration tests only fail on the first day of the month, and Fineract-723 to fix the issue where certain integration tests would fail when run on a system whose time zone was not the same as the tenant’s.  To view the PRs, details for all these fixes, and discussions on the mailing list, see Dylan’s gist at https://gist.github.com/DylanRobson/5353817529f37d477f3b480dc0166343

 

Integrate Payment Hub with GSMA Mobile Money APIs – Sidhant Gupta

Sidhant has taken on the long-needed task of providing a robust real-time integration with mobile money via the growing open APIs that mobile money providers are making available. With the payment hub complete to serve as the middleware in which to integrate external payments systems to both generations of Fineract and Mifos, Sidhant focused on integrating with the GSMA Mobile Money API – an open API standard that GSMA is establishing to harmonize mobile money APIs across the sector. Integrating with this reference mobile money API will provide the blueprint for partners and users to integrate with their local production mobile money APIs that they can gain access to both to synchronize in real-time mobile money transactions that are affecting accounts in Fineract and to initiate transactions via the mobile money network through Fineract or applications built on top of Fineract. Thank you to Sidhan’ts mentors – Avik Ganguly, Steve Conrad, Rahul Goel, and Sanyam Goel, as well as Phil Green for his responsiveness and support for the API. Sidhant completed integration with the merchant payment and peer to peer transfer use cases for Version 1.0 of the GSMA MM API with the payment hub. Since the payment hub is built on Camel, he created new camel routes to support these use cases. He also built out a simple web UI to demonstrate these transactions via the GSMA MM API simulator. Next on the roadmap is to incorporate additional use cases such as bulk transactions and bill payments/requests to pay as these APIs get supported in the simulator.

For details on Sidhant’s work please view: https://gist.github.com/sidhant-gupta-004/090a9e95b3066e5dd0f8f6005ea60d04 and let us know if you would like to join our Digital Payments Working Group.

Mifos Chatbot 2.0 – Anshul Singh

Anshul was very proficient throughout the summer in extending the Mifos Chatbot and Adapter with better authentication, improved Natural Language Processing, and integration with the Slack, Telegram and Facebook messenger platforms. Thank you to Aleksandar Vidakovic, Raul Sibaja, and Ramit Sawhney for the support they provided as mentors.  Anshul extended the 6-module architecture originally created by Dingfan by adding a seventh module, database, for storing user information and the necessary database related methods and templates to authenticate users. For the NLP module, per suggestions of his mentors, Anshul replaced Apache open-NLP with the rasa framework. Anshul focused extensively on the protocol module where he defined and tested new points of integration with Slack, Facebook Messenger, and Telegram.

 

 

Machine Learning-Based Credit Scorecards for Loan Assessment Phase 2 – Supreeth Menon

Supreeth resumed the work that his mentor, Lalit Mohan, had kicked off during the 2018 GSOC around building a machine-learning based scorecard for credit risk assessment. Supreeth focused on developing the user interface and database and API layer for the the feature screen of the scorecard, the configuration of the scorecard, the criteria screen and the scorecard screen itself. The feature screen supports definition of new features based value type – binary, nominal, etc, data type, and category. The configuration screen is used for mapping loan products to the color-coded scores for the loan – green indicates a loan can be given, amber indicates it needs further review and red indicates the loan is rejected. The criteria screen is used to obtain the key values for the feature  to perform the score – the features can be extracted from the DB schema or from an API (XML or JSON). The scorecard screen is used to profile a loan based on the rules recognized in previous screens, statistical methods, or machine learning methods. Supreeth is nearing full completion of the project but still has to implement the back-end for the scorecard screen and do SQL/API validation. On the roadmap are the statistical models and machine learning models to be incorporated. View Supreeth’s gist to learn more

 

 

 

 

Apache Fineract Interns

Mifos took under its wing the GSOC interns accepted under the umbrella of Apache Software Foundation working on both Fineract and Fineract CN.

Remove Category X Dependencies from Fineract CN – Ebenezer Graham (Apache)

Ebenezer completed his second term as a Google Summer of Code intern for Apache working on removing Category X dependencies for Fineract CN as well as continuing to contribute to the notifications microservice he had built last summer. He worked with Isaac Kamga as his mentor. While he waited to get the scope of his core project finalized, Ebenezer enhanced the notifications microservice by containerizing it, adding email templating and removing dedicating user and adding tests for API endpoints. He also helped with the continuous integration infrastructure for the project by adding an after failure procedure for all builds in Fineract. For his core project, Ebenezer, had to work on the migration from MariaDB/MySQL to PostgreSQL and replacing Hibernate as the ORM. On the database front, Ebenezer did the final polishing to complete the work that Isaac had led on the migration of the database, testing all of the new configurations. To replace the ORM, Ebenezer first provided a thorough analysis of why EclipseLink was a much better alternative to OpenJPA as Apache-compliant ORM to replace Hibernate. After leading a thorough discussion with the community on the mailing list, the decision was clear and Ebenezer took up the work to complete migration of the ORM to EclipseLink. Ebenezer looks forward to continue to actively contribute to Fineract CN including the upgrading the key dependencies of the project like Sprint Boot. Read over Ebenezer’s gist for links to his code and to learn more.

Update Swagger APIs – Kang Breder (Apache)

Kang was the second Apache intern that worked alongside the Mifos GSOC interns this summer. With Sanyam as her mentor, she sought to bring to full production the conversion of the Fineract APIs to Swagger/OpenAPI format that Sanyam had led and Chirag had contributed to as well. The focus of her project consisted of completing Swagger documentation of the remaining APIs, incorporating the description of each API into the Swagger docs, including the Try It Out button for our Swagger APIs, automatic generation of Swagger Docs from the Fineract Build, navigation bar for the Swagger UI, migrating the overview section from our static API docs, completing a Swagger guide on how to add a new Swagger doc to any Fineract API and lastly QA. Kang was able to achieve nearly half of these goals and is continuing to wrap up the remaining milestones in the project. Kang has converted the remaining APIs that were added since Sanyam’s project that needed to be documented in Swagger format including the search APi, new self-service APIs, the pocket API and Audts API just to name a few. Kang included the description of each section of APIs so the Swagger Docs now has the same level of description that the static API docs did.  Kang spent significant time determining how to add the header params on all endpoints using swagger-annotations to enable the Try It Out button to work. Once Kang resolves in issue with the Swagger UI javascript, this feature will be complete. Kang is midway through completing usage of the swagger-gradle-plugin to save JSON during the build process and could use help from the community to help her resolve her exceptions. QA is nearly complete and the remaining milestones are still in progress with Kang aiming to complete them post-GSOC. Please view her gist to see progress of all her work.

Outreachy

Migrate Mifos Mailing Lists to Discourse – Kerlyn Nkep

Kerlyn, with former GSOC intern, Ruphine Kagne, as her mentor, embarked on migrating our implementing a Discourse Forum for the Mifos community and migrate our Mifos-users and Mifos-developer mailing lists and Google Groups to this new collaboration tool for the community. With the Apache Fineract dev list providing the main point of mailing list communication for our communities, Discourse would provide a valuable way to broaden the functional, technical and general fintech discussion and support processes that occur in the Mifos community. It’s forum interface with the ability to subscribe to posts allows us to have both the benefits of mailing-list style communications but the ease of navigation and searchability of a forum. The gamification components will also help to create a culture of supporting others throughout the community. Kerlyn has completed the setup and configuration of Discourse on a Mifos-hosted Azure instance to our community specifications and is wrapping up migration of the historical content and user databases of our Mifos mailing lists to Discourse. Stay tuned as we’ll have the test version of the site available and will begin the migration process over with the community.

Convert Mifos X User Manual to Gitbook Format – Massabe Lydiane

Massabe worked with the support of Courage Angeh to convert our user manual to a more approachable and easier to maintain Gitbook format – at the same time she also worked on improving the information architecture of the documentation for better ease of navigation and location of information. Massabe completed the conversion and migration of our Mifos X User Manual to the Gitbook format and we’ll soon go live with his new version of the User Manual with the Gitbook serving as the primary place for functional user documentation for Mifos distributions going forward.