GetLoan is a new company that will provide a loan of money to individual members of the public.
There are two types of loan to be offered:
- Secured Loan where the sum loaned is secured by either an asset that the customer can provide or by a person who will act as a guarantor for the loan.
- Unsecured Loan where the customer does not have a means to secure the loan but as a consequence the interest rate of the loan will be higher.
A secured loan can be had on either a long term or short term basis.
Long term means 2 years up to 10 years, short term means less than 2 years
An unsecured loan can be had only on a short term basis.
Rates of Interest
The rate of interest can vary on all loans throughout the period of repayment however all rates are computed from a monthly base rate (B%) as defined by the management of GetLoan.
Y = The year number of the repayment period.
The monthly rate of interest is computed as 5*B/Y
B = 1.2%
Y = 3 (In the third year of the loan period)
Actual monthly rate = (5*1.2/3)% = 2.0%
Thus if at that time the amount of the loan outstanding is $3745.00 then the interest payment for that month is 2.0% of $3745.00= $74.9
Here the monthly rate does not decrease with time.
The monthly rate is always 6*B.
Hence for the example above the monthly rate would be 7.2% throughout the period of the loan.
NOTE the management may wish at any time to change constants in the formulae that compute these rates.
Thus these constants should be part of the definition of the type of loan and be editable by maintenance processes.
Repayment of Capital
The customer will agree to pay off a fixed amount of the capital each month. Hence the actual payment per month will be this fixed amount plus the actual interest for that month. If the monthly base rate is constant and the customer pays all that is due then each month the actual payment per month will reduce for both types of loan.
If the customer defaults on a monthly payment then the default amount is added to the outstanding capital. An increased monthly capital payoff amount will then be computed. (You are not concerned how the detail of the change is communicated to the customer.)
GetLoan will require a computerised database system to run this business.
The database will require at least three tables:
- Types of Loan
- Customer Detail
- Loan Account
To produce robust software that meets the requirements detailed in the Introduction. Although the recommended textbook gives adequate coverage of the fundamentals of Visual Basic any particular assignment may require candidates to investigate other aspects of the language by using the Help facility provided by the Integrated Development Environment of Visual Basic or other references.
Notes on design and implementation
The database will be served by a number of user interfaces.
These interfaces will include:
- Registering a new customer.
- Maintaining customer details.
- Setting up the details of a type of loan.
- Maintaining the types of loan.
- Viewing selections from the Loan Account table.
- Entering payments.
All these user interfaces will involve comprehensive data validation.
Note that this validation must be achieved via VB program code and not set by criteria in the DBMS used.
The Loan Account table will have to involve some computed fields. Careful consideration is required concerning the types of selection that will be required from the Loan Account table. Security will have to be considered.
Although the recommended textbook gives adequate coverage of the fundamentals of VB 2005 any particular assignment may require candidates to investigate other aspects of the language by using the Help facility provided by the Integrated Development Environment of VB 2005.
Design the database structure required.
Using either Microsoft Access or SQL Server set up this structure.
Alternatively you could produce a simple file based system
Design the user interfaces required.
Include the design of the algorithms of all the data validation required.
Include the design of the algorithms required for selection and security.
Implement and test the designs detailed in Task 2.
Design suitable test data for all the elements of the database.
Using the user interfaces already implemented populate the database with the test data.
Carry out comprehensive system testing. Produce evidence of this testing including screen shots.
Produce a publishable working copy of a compiled version of the completed assignment together with some installation notes. The installation notes should include the system requirements.
This publishable copy, that includes a setup file, should be on an appropriate medium (zip disk, CD-ROM, DVD etc.).
The assessment of your project will to a large extent depend upon the quality of the documentation that you have produced. Thus, for each stage of the development of software:
- Give a detailed design including, where appropriate, the design of any algorithms
- Build in error handling to involve meaningful messages that would ease any future maintenance of the software
- Annotate all implementation
- Design a testing strategy
- Design comprehensive test data
- Show evidence of testing
- Where appropriate, detail any major remedial action that you have taken in the light of the testing process.