GSOC 2017 Self-Service Android App Project Plan
Project Summary
Earlier clients were dependent on bank staff (which used Mifos Android Client) for performing any kind of transaction or alteration due to which Self Service app was developed in order to help clients to manage their accounts. Self-Service Android app enables clients to interact with their data. Using Self Service v1, clients can perform basic operation such as viewing their account details, loan and share accounts, apply for a loan, transfer money between their own accounts.Â
Goals
- Allow user to register on app
- Help user to make loan payments
- Allow user to view and update his/her details
- Help user to make Third party transfers
- Allow user to update or delete a pending loan application
- Integrate a mobile wallet
Background, Impact, and User Need
Self-Service currently allow the clients to perform limited functionality so primary goal will be to increase the functionality so that the user can independently and easily manage, transact from their accounts without the need of bank staff.
Project Implementation Plan
Beneficiary for Third Party Transfer(TPT):-Â
Beneficiary for TPT consists of adding, deleting, updating and displaying the list of all the beneficiaries.Â
For Adding a TPT beneficiary
Flow diagram :
Â
Updating and Deleting a TPT beneficiary
On clicking on any beneficiary, it would display the details about that particular beneficiary and also provide options to delete or update the beneficiary.For updating , the user will be allowed to update the name and transfer limit for that particular TPT Beneficiary
Update and Delete a pending approval Loan Application:-
By clicking on one of the loan from loan accounts list , user will be able to delete or update the loan with pending approval state from the menu.These option will only be displayed in the loans with a pending state.
For updating a loan we will follow the following steps:
Fetch a particular loan details in order to obtain the productId.
Use the productId to fetch the loan template for that particular productId and loading it to the layout used for creating a loan.
Updating the loan after client made changes
On clicking on Withdraw loan a dialog will be shown asking for confirmation and reason for cancelling as shown in the mockupÂ
Sign Up through application
Sign Up includes 2 steps:-
Client Account Verification process where client will enter mifos account number and their registered phone number.This step is mandatory in order to check the authenticity of the user.
      Mock : LinkCreating self service account for the user and link the client account to self service account created which can be implemented in 2 ways:
Make Loan Payment
Implement Loan payment feature from mock provided and is explained briefly here
- Loan Repayment can be considered as a Third Party Transfer so , Third Party Account Transfer Template will be used for loading the accounts in spinner and finally N number of Third Party Transfers will take place for N number of saving account chosen.
- As there can be number of Savings Account which would be used for making payments according to the mock , so a dynamic layout will be added every time user click on the Plus Icon
   Dynamic Layout
  Â
   Moreover a Pay From account should only contain Savings Account these will be filtered using rxjava. - During the time of transfer , transfer of funds will take place for all the savings account chosen during 1st step and these will be executed one by one until all the transfers are completed.
Refactoring Charge Feature
Enhance the current Charge Feature and transforming it into a generic type fragment which will work for client, savings and loan charges.Users will be able to see charges for loan account by clicking on a loan account from loan account list and then by clicking on Show Charges button (same goes for the savings charges).
Mobile wallet integration
Need to be discussed.
Schedule/Timeline
Interval | Tasks | |
---|---|---|
Community Bonding Period (4 May -30 May ) | ||
4 May - 16 May |
| |
17 May - 31 May | End Semester Exams | |
Coding Period Begin (30th May) | ||
Week 1 [31th May-6th June] |
| |
Week 2 [7th June-13th June] |
| |
Week 3 [14th June-20th June] |
| |
Week 4 [21th June-27th June] |
| |
Phase 1 evaluations (26th June - 30th June) | ||
Week 5 [30th June-4th July] |
| |
Week 6 [5th July-11th July] |
| |
Week 7 [12th July-18th July] |
| |
Week 8 [19th July-25th July] |
| |
Phase 2 evaluations (24th July - 28th July) | ||
Week 9 [28th July-1st Aug] |
| |
Week 10 [2nd Aug-8th Aug] |
| |
Week 11 [9th Aug-15th Aug] |
| |
Week 12 [16th Aug-20th Aug] |
| |
Final evaluation |
Self-Service API's Status
TPT beneficiaries:-
Name | Endpoints | Status | Issues |
---|---|---|---|
List TPT beneficiaries | /api/v1/self/tptbeneficiaries/tpt/ | Working | None |
Add TPT beneficiaries | /api/v1/self/tptbeneficiaries/tpt | Working | None |
Delete TPT beneficiaries | /api/v1/self/tptbeneficiaries/tpt/{id} | Working | None |
Update TPT beneficiaries | /api/v1/self/tptbeneficiaries/tpt/{id} | Working | None |
Loan Updation and Deletion:-Â Â
Name | Endpoints | Status | Issues |
---|---|---|---|
Template for particular loanProductId | /api/v1/self/loans/template?templateType=individual&clientId={clientId}&productId={productId} | Working | None |
Updation | /api/v1/self/loans/{loanId} | Working | None |
Withdraw | /api/v1/self/loans/{loanId}?command=withdrawnByApplicant | Working | None |
Third Party Account Transfers :
Name | Endpoints | Status | Issues |
---|---|---|---|
Third party transfer template | self/accounttransfers/template?type=tpt&tenantIdentifier=default&pretty=true | Working | |
Third party transfer | /api/v1/self/accounttransfers?type=tpt | Working | The tpt template returns the same values as that for the account transfer template but allows transfer only to the account which are added to the beneficiaries. Need to Clarify. |
Additional Resources
MockUps:Â https://openmf.mybalsamiq.com/projects/mifosandroidself-serviceapp/grid
Product Document:Self-Service Android Application Product Document
User Stories:Â https://mifosforge.jira.com/wiki/display/projects/User+Stories
Roadmap:Â https://mifosforge.jira.com/wiki/display/projects/Self-Service+Android+Application+Roadmap
Self Service Info:Â https://mifosforge.jira.com/wiki/display/MIFOSX/Customer+Self+Service
Self Service Phase 2 Info :Â Customer Self Service - Phase 2