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
https://github.com/openMF/android-client/pull/728/files?diff=split
Before GSoC -
Now - - 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 -
- 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. - 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
https://github.com/openMF/android-client/pull/724/files?diff=split
https://github.com/openMF/android-client/pull/753/files?diff=split
GIF -
- 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
GIF - - 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 - - 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 - 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 - Bug Fixing -
Below are the links of GitHub diff for various bug fixing. - https://github.com/openMF/android-client/pull/700/files?diff=split
- https://github.com/openMF/android-client/pull/735/files?diff=split
- https://github.com/openMF/android-client/pull/736/files?diff=split
- https://github.com/openMF/android-client/pull/750/files?diff=split
- https://github.com/openMF/android-client/pull/755/files?diff=split
- https://github.com/openMF/android-client/pull/756/files?diff=split
- https://github.com/openMF/android-client/pull/757/files?diff=split
- https://github.com/openMF/android-client/pull/763/files?diff=split
- https://github.com/openMF/android-client/pull/769/files?diff=split
- https://github.com/openMF/android-client/pull/764/files?diff=split
- https://github.com/openMF/android-client/pull/765/files?diff=split
- https://github.com/openMF/android-client/pull/773/files?diff=split
Very detailed analysis and work
ReplyDeleteThanks. :)
Delete