Google Summer of Code 2017 report

Project: Android Field Operation App Version 4

Organization: Mifos Initiative

Overview:

My project consist of adding new features in android-client app.

Below are the features which I have added during GSoC period-
  1. Integrating pass code feature -
    Before GSoC, android-client had a basic authentication system for login. Every time a user had to fill username and password for logging into the app. Now the user can create a 4-digit passcode which can be used instead of the username and password. Implementing this passcode consisted of two parts -
    • Implementing encryption library - Security of 4-digit passcode was a very important issue because we could not simply save that pass code in shared preference. If the phone is rooted then anyone can access shared preference data. So mentors suggested to implement an encryption library and then saving encrypted passcode in the shared preference. I built the encryption library which gives SHA hash of any string. 
    • Implementing passcode activities in the app - Next part was implementing pass code feature in the app. I have implemented screens for saving passcode and verifying passcode. PassCode will be reset automatically if the user will enter wrong passcode more then 3 times.
      Github diff -  https://github.com/openMF/android-client/pull/709/files?diff=split
                            https://github.com/openMF/android-client/pull/728/files?diff=split

      Before GSoC -




      Now -

  2. Extending offline support for center creation - Android client app had offline support for client creation, group creation, loan payment transaction and saving account transaction. I have extended it to center creation. Now, user can create a new center in offline mode and information of that center will be saved in app database. When user is in online mode, that information can be synced with server.
    Github Diff - https://github.com/openMF/android-client/pull/712/files?diff=split

    GIF -

     
  3. Sync entities with app database -
    User could sync details of multiple clients and groups with app database so that details can be visible in offline mode. I have extended this functionality to center and survey. 

  4. Share account feature -
    I have added feature of creating sharing account for clients.
    Github Diff -  https://github.com/openMF/android-client/pull/771/files?diff=split
    GIF -

  5. Offline search feature -
    I tried to add offline search feature but I could not complete due to an error.
    GitHub diff - https://github.com/openMF/android-client/pull/741/files?diff=split
  6. Notification feature -
    I have started work for adding notification feature. It is not completed because work at backend is not completed. I had done basic setup for notification and made POJO.
    GitHub diff - https://github.com/openMF/android-client/pull/759/files?diff=split
  7. Bug Fixing -
    Below are the links of GitHub diff for various bug fixing.

Comments