Skip to content

Instantly share code, notes, and snippets.

@jawidMuhammadi
Last active July 2, 2020 07:29
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 jawidMuhammadi/6557a7bdda794c6a7478f641b0bffacf to your computer and use it in GitHub Desktop.
Save jawidMuhammadi/6557a7bdda794c6a7478f641b0bffacf to your computer and use it in GitHub Desktop.
I am working on Fineract-CN-Mobile project as a student developer in Google Summer of Code this year, it is an android app for Digital Financial services, that is built on top of the Fineract-CN platform which is used by Field Officers. In this gist file I explained the work that I finished in the first phase of the program.


Work done so far:

1. Extended Kotlin support in-app and changed Java classes to Kotlin

There was more than 15 java classes needed to be converted to Kotlin. I converted all the classes to Kotlin and tested the app to make sure the changes have not broken any code. I did convertion in two categories Retrofit model classes and Service inerfaces. I created two different PR for each:

2. Reviewed all Pull Reqeust of the project

There was more than 30 pull requests in the repo, I went through all of them one by one. There were many pull request that needed changes so I requested changes on them and the contributers had a great response, they implemented nearly all of my requested changes in their pull requests. So rihgt now, most of them are ready to be merged in the base development branch.

3. Implement MVVM architecture in the project

Fineract CN Mobile project has been developed using MVP (Model View Presenter) architecture but after having a discussion with my mentor we decided to go wiht MVVM (ModelView View Model) architecture which is Google's sugested architecture for android app development. I'll implement the new features using this architecture, as an example take a look to my Adds support for all functionalities of a Group PR which is under review and will be merged soon.

4. Researched Offline First approach using CouchbaseDB

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. In this period of GSoC I researched how to implement it, and also I created a mini project to practice it's implementation. Here is the project. I will continue to implement this feature in 3rd phase of the program.

5. Tested all functionalities of the app with the new Fineract CN instance demo

The Fineract CN mobile app has been developed with a layer of mockup data. I went throgh the Fineract CN API documentation, changed the base URL of the app to the new demo instane of the Fineract CN and tested all functionalities of the App. There were many bugs which were causing the app to crash, I solved them and raised a solution pull request. You can take a look in here.

6. Completed all remained functionalitis of Role/Permission

The APIs for editing, creating, and deleting functionality of Role/Permission has been developed in Fineract CN so I implmente it in Fineract CN Mobile too, actually I have started woking on this feature early (before coding period). For screenshots and more details, please review the raised pull request.

Screenshot_1593287840 (1) Screenshot_1593287845 Screenshot_1593287853 Screenshot_1593287873 Screenshot_1593287886 Screenshot_1593287940

7. Started working on GIS feature like location trakcing

As a task of GSoC I started working on GIS (Geographical Information System),I craeted a Jira Ticket about my implementaton plan and uploaded mockup screens for the same, you can find more details about my implementation plan from here and to see all my created mockup screens click here.

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