This gist contains the details about the work done till the first evaluation of My GSoC '21 Project with The Mifos Initiative. During GSoC, I worked on making some functional enhancements to the Fineract-cn-mobile. This year the project was selected under the umbrella organization The Apache Software Foundation as Mifos organization was unfortunately not selected for GSoC'21. My GSoc'21 project plan can be accessed here.
I reviewed the multiple open pull-requests in the project. I reviewed all of them and requested changes wherever required. Once those changes are incorporated, all the pull-requests will be ready to be merged.
The Rest APIs for creating and editing tellers are available in the Fineract-CN so I made the necessary data model mofdifications, service class modifications. I also made the UI fo viewing the Teller Details, Stepperlayout adapter classes for creating or updating tellers. At first, I implemented all the functionalities using the already implemented MVP (Model View Presenter) archietecture but then I had a discussion with my mentor and then we decided to follow MVVM (ModelView View Model) archietecture, which is recommended by Google for Android development. Then, I implemented all the mentioned functionalities using MVVM archietecture and created a PR for same, which has been reviewed by my mentor and will be soon merged in the base development branch of the project. The PR for this feature can be found here
I implemented the Task management features in the teller's section which adds support to close, reopen, and activate the pending teller accounts, using the MVVM archietecture. The PR for this feature can be found here, the changes have been reviewed by my mentor and the PR is ready to be merged.
I started my work on the GIS feature, but after having a discussion with my mentor, we decided to wait for the already raised PR to be merged first. Also, the Endpoints are missing in Fineract-CN platform to store the geo-coordinates, I have asked int eh community if some one is intrested to work on it. You can find the Jira ticket for this feature here
Couchbase Mobile is the complete NoSQL database solution for all data storage, access, sync and security across the entire application stack. It includes an Embedded database, Rest API and Synchronization which is critical for enabling offline-first mobile apps.I went through the documentation available on the couchabse website, some articles and blogs to understand the working of the couchbase-server, couchbase lite Db and sync-gateway. I also attended this course, from the Couchbase team to understand the working and implementation part of Couchbase.
Improved offline functionality of the application using Couchbase database implementation in Teller functionalities
I have implemented Couchbase Lite and sync-gateway in all teller functionalities, replacing the REST API Interaction with the Couhbase-only interaction. Due to this feature, the field officers will be able to update the data in the mobile application even when there is no internet connection in the mobile device, the data changed will be saved in the local databse of the device and sync-gateway will replicate and sync the data to the couchbase-server as soon as the internet conectivity resumes. For more information regarding the implementation, Please refer to this PR. I will also be further extending the offline support in the application to account and other functionalities in the second phase of the project.
As mentioned in the project plan of GSoC'21, I will be starting to work on implementing the various Account functions like creating and updating the Accounts and creating the XMl files for the AccountDetails Screen, StepperLayout Screens and adapter classes for the stepperlayouts. I will also try to implement all the functionalities using the Couchbase instead of REST API interaction.