The Loan Portal demonstrates how Mendix can be used to provide a great customer experience when applying for personal loans. The responsive web app helps to guide customers through the process of applying for a loan, by first providing an indicative loan repayment calculator. The potential Customer chooses the purpose of the loan from a list and selects the loan advance and the number of repayments to repay the loan. The app displays an indicative APR and the calculated monthly repayment based upon the input values. If the Customer wishes to proceed with the loan application an account is created and personal and financial data is requested. Following a credit check the application may be automatically accepted, rejected outright or referred to an agent for approval.
To summarise, the app allows you to:
As a Customer:
- Calculate the potential cost of a loan using a loan calculator.
- Onboard myself as a customer by completing a loan application using a wizard.
- Receive confirmation of acceptance of a loan application.
- Receive confirmation of rejection of a loan when the costs are too high.
- Receive confirmation of the referral of a loan application when credit checks are not favourable.
- Set up Bank Account details to receive a loan advance and set up direct debit.
As an Agent:
- Review outstanding loan applications which have been referred due to unfavourable credit check results.
- After review either accept or reject the loan application.
As an Administrator:
- View brief details of onboarded loan applications.
- View and maintain onboarded customers.
- Configure the Loan Purposes list.
- Configure the Loan Interest Rate Band list.
- Perform a Reset of the Application.
How to Setup?
To setup the basics of your own version, the Loans Portal App is available via the create new app flow on the private Mendix AppStore. Currently, the Experian credit score interface is not working, util we have some credentials and subscriber information to use. The app mocks a credit score (see the section below).
Open the app in Mendix Studio Pro version 9.2.0 or later.
Ensure that the Constant AutoLogin.AutoLogin_Enabled is set to True. (Open app Settings – Edit Configuration – ensure AutoLogin.AutoLogin_Enabled is in the list of Constants and set to True).
A small amount of test/demo data is set up when the app first runs. This can be reset using the Administrator’s App Reset option.
The data will be imported automatically when you execute the app for the first time. However, if you want to clean the data that you may have added (new clients/loan applications for example), you can open the website of the app and follow these steps. This will delete and reset the loan purposes and rates, delete all Client (Customer) users, delete all Loan Applications and Agreements and associated data and ensure that the default demo users are in place (see section below).
- Log into the app as administrator or as MxAdmin.
- Click the App Reset button.
As part of the demo setup the following users are created.
administrator (role: administrator)
agent (role: agent)
email@example.com (role: client)
All demo users are, by default, created with a password of ABCabc123$$$ but this can be changed by modifying the app Constant LoanManagement.DemoPasswords to the required password, and then logging in as MxAdmin and running the app reset function as described above.
The Johhny B Good client is created with a single Loan Application which was accepted, with the Agreement and payments set up.
Explaining the Model
This model has been built to be easily extendable and contains a few core functions that the main processes require.
These are the key Entities:
Client – This is a Specialisation of Administration.Account and System.User used to hold the basic identity information for the Client.
Occupation – Holds basic Client employment information as supplied by the Client.
Finances – Holds the monthly income/expenses information entered by the Client.
Address – Holds the Client’s home address as supplied by the Client.
Application – Holds the primary information relating to the Loan Application – some are user-entered and the rest are updated by the app when calculating repayments.
UploadedDocument – Along with FileUpload this hold uploaded Documents that the Client has supplied in support of their Loan Application.
LoanPurpose – A reference data table with the supported Loan Purposes.
InterestRateBand – A reference data table with the interest rate bands for each of the Loan Purposes.
Agreement – Holds the finally agreed Loan details when set up along with the Bank Account details entered by the Client for the Loan.
Referral – Used to refer a Loan Application to an Agent for Approval (a Mendix WorkflowContext).
Approval – Holds details of the Loan Applications Approval or Rejection.
Score – Holds the credit score that the credit check returned for the Loan Application.
LoanCalculator – A non-persistent object used to run the Loan Calculator Page for an anonymous user.
Loan Application Process
The process followed when a Loan Application is being made is as follows:
- The potential Client connects to the app and follows the link to Apply for a Loan.
- The potential Client enters the Loan Purpose, Loan Amount and Term into the Loan Calculator and receives a dynamically-updated indication of the Monthly Repayment and Total Repayments for such a loan.
- If the potential Client wants to proceed then the next page asks for an Email Address and password.
- Clicking on Apply then creates the Client’s account and logs the Client in using those credentials.
- The Client is then taken through a series of pages asking for Identity Information, Citizenship, Residential Address, Employment Details, Monthly Finances, Identity and Residency documents.
- The Summary page is shown with the data entered and the user can click on Apply for Loan to make the application.
At this point the application goes through the approval process.
- If the monthly Loan Repayment + the Client’s monthly expenses entered exceeds their monthly income the load is immediately Rejected.
- The Client’s Credit Score is obtained (see section below).
- The applied for Loan Amount and Term and the Client's Credit Score are then used to look up in the Interest Rate Bands for a Band record which matches.
- If a matching Interest Rate Band record is not found (i.e. the Credit Score is not acceptable) then the Loan Application is Referred to an Agent to consider Approval and the Client is informed.
- Otherwise the Client is immediately informed of the terms to be applied to the Loan and given the option to Accept the terms and set up the Loan, or decline.
Referred Loan Applications appear in the Workflow-controlled Agent’s home page. On that page an Agent can assign a Referral to themselves, open the referral and view the Loan Application details. The Agent should then either mark the Loan as Accepted or Rejected.
At the final stage the Client needs to set up their Bank details into the Agreement so that loan payment and repayment collections can be set up.
Credit Scores are between 0 and 999.
Until such time as an Experian Account has been made available, there is a fallback system in place for this demonstration.
The fallback will take the first three digits of the telephone number entered by the Client in the Loan Application and use that as the Credit Score. In this way the demonstrator can control the Demonstration process through the entered data. If the telephone number does not work (e.g. there are non-digits entered or there is no telephone number at all) then a random score is returned.