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-
- 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
Before GSoC -
Github Diff - https://github.com/openMF/android-client/pull/712/files?diff=split
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.
- Sync details of centers - Information of centers, accounts associated with centers, information of groups associated with each center, account associated with groups, information of clients associated with each group, account associated with clients will be synced with app database.
Github Diff - https://github.com/openMF/android-client/pull/717/files?diff=split
- Synced details of the survey - Title of each survey, questions of each survey, choices for answer of each question will be synced with app database.
Github Diff - https://github.com/openMF/android-client/pull/721/files?diff=split
I have added feature of creating sharing account for clients.
Github Diff - https://github.com/openMF/android-client/pull/771/files?diff=split
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
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
Below are the links of GitHub diff for various bug fixing.