Design

= = =Design= The iterations of our design in the form of class diagrams, flow charts, and/or pseudocodes. Go to Home, Implementation, or Journal instead.

=Interview Transcript=


 * Interviewer:** Please tell me about your business.
 * Interviewee:** We are a lending company – we give loans to businessmen, professionals and employees, which they have to pay within the agreed time period (minimum of 1 month). In addition to the principal loan, they must pay a monthly interest of 3% of the principal loan, and a one-time processing fee for the first month at 5% of the principal loan. The payments are usually done by checks, which they give to us at the time we give out the loan. They give a check for each month of the agreed time period; 12 checks for 12 months, for example.


 * Interviewer:** Do you give out cash or check?
 * Interviewee:** We give checks.
 * Interviewer:** Do you want to keep track of check numbers?
 * Interviewee:** Yes, and keep track of the specific banks.

Businessmen must have collateral to secure a loan, in addition to the monthly personal checks that I described that given at the start of the loan. Collaterals may be land or building with value no less than the loan of the client. Professionals are not required to have collateral, but they also give monthly personal checks at the start of the loan. Employees usually do not have checking accounts, so those who come from Local Government Units must secure a Memorandum of Agreement between the company and their treasurer, so that the treasurer deducts the monthly amount from the employee’s monthly income and gives us a check. The treasurer aggregates the loans of all employees in that particular Local Government Unit, so if there are 20 people from one company who signed up for a loan, we receive a single check with the amount of 20 people’s monthly amortization. Employees who come from private companies and who do not have checks may pay in cash on a monthly basis, but the application is subject to our approval.
 * Interviewer:** Are the loans of businessmen, professionals and employees different from each other?
 * Interviewee:** We differentiate loans based on the client. The different loans are the Business Loan, Professional Loan, and the Employee’s Loan.

Keep track of the spouse’s details. Name, address, contact number, e-mail address, birth date, age, citizenship, civil status. Keep track of the borrower’s business name (or company name), address of business, the collateral name and description. You can give an ID to collaterals if you want. Keep track of the name of the borrower’s endorser and the co-maker. And it would be good if you could record the borrower’s justification for the loan. Most importantly, keep track of the loan details – the kind of loan (Business Loan, etc.), the amount of the loan, the time period, and the manager’s remarks. Keep track of the Promissory Note Number. We assign one Promissory Note Number (P.N. No.) to each borrower, but employees from the same LGU share just one. The PN Nos. start at 1 and continue upwards.
 * Interviewer:** What are the borrower’s details you want the program to keep track of?
 * Interviewee:** Everything in the loan application: name of borrower, address of borrower, contact number, e-mail address, birth date, age, citizenship, civil status, number of children and their ages, and profession.


 * Interviewer:** Can a client who already has a loan take out another loan?
 * Interviewee:** If we found it that the client is capable (for instance, his collateral is big enough), then he could. The client will incur another fee of 5% of the second principal loan, as one-time processing fee for the first month, as well as an interest of 3% of the second principal loan, per month that the loan isn’t paid.


 * Interviewer:** Who are other people that are important in the business?
 * Interviewee:** The investors and the stockholders. The stockholders gave the initial investment. The investors invest money for a given period of time. We give them 1.5% of their principal investment on a monthly basis. They cannot withdraw the money they invested within the time period.


 * Interviewer:** What are the details we need to keep track of?
 * Interviewee:** The investors are our friends, but you can record their names, addresses, numbers, e-mail addresses, birth dates, citizenships, business or company names, business or company addresses, and professions. Of course, record their investment or investments, and the time frames.

The program would be used by both of them, so it would be nice if there was a log-in system so that any transaction would show who was responsible for it.
 * Interviewer:** What about your employees?
 * Interviewee:** We have one manager and one secretary. You can record their names, addresses, numbers, e-mail addresses, TIN numbers, SSS numbers, and their positions. You can also record their emergency contact’s name, and that person’s contact details.

It would be nice if there are summaries that show how the business is doing, how much money is left in the bank, what is the expected profit by the end of the year, etc. I’d require a table of all loans that will be easy to see; add to that a table of all borrowers, a table of all investors, a table of all employees, and a table of all stockholders. It would be nice if there is a list of all late loans. Finally, a history of recent activity. It would also be required that I could update the details of everyone. It is of course required to be able to update the status of a loan when a borrower pays, for example. It would be nice to have a calendar or just a simple list of the next important dates – days when clients should pay, days when we should pay our investors, etc Sometimes, also, the client desires to pay the loan before the time agreed upon. In that case, make you to cancel the interest for the remaining months. That is, clear it from the total earnings, and clear the check numbers from the history. Sometimes, the client is unable to pay the loan by the time agreed upon. In that case, be sure there is an ability to extend the loan's time frame and add the monthly interests until the loan is paid. Those are all the features at the top of my head, but you can add features if you think it would help.
 * Interviewer:** What do you to be able to do with the program?
 * Interviewee:** I expect to be able to record our loan applications. I want to be able to search for specific borrowers by their details (like their name, their spouse’s name, their business, etc.); then, see complete details of that borrower, which would include all of his loans, his balance, and his next payment day. I also require being able to search for specific loans. It would have to show complete details of that loan – how much is paid, how much left to be paid, the principal amount, the monthly interest, etc. I require same search functionalities and summaries for the employees, stockholders and investors.


 * Interviewer:** Do you require any program specifications?
 * Interviewee:** Well, the company’s computer’s OS is Windows, so make sure it would run on that. We don’t have Internet connection, so store the information on the computer.

=Sample Forms and Reports=

Although there exists more forms, we are only supplied by the client their Loan Application form with the reason that the rest are just for formality. Thus, we present here the form used by our clients:
 * DOCX Format: [|Cagayan Valley Perpetual Trust Lending Corporation.docx]
 * PDF Format: [|Cagayan Valley Perpetual Trust Lending Corporation.pdf]

=Conceptual Data Model=

**Entities: Attributes, and Descriptions**

 * PERSON -** a superclass for the three person entities (borrower, employee, stakeholder)
 * __Person ID__ - a unique number assigned to a person entity
 * First name - string containing the first name of the person
 * Last name - string, last name
 * Birth date - date, date of birth of the person
 * Email address - an email address
 * Contact no. - landline or cellphone number(s)
 * Address - current address of the person


 * BORROWER** - a subtype of Person, details about the person making the loan
 * __Person ID__ - inherited from Person type
 * Citizenship - the borrower's citizenship
 * Endorser - the person who endorsed this company to the borrower
 * Co-maker - if any, the person/s who shares the loan


 * Borrower subtype: Businessperson** - a businessperson type makes a Business loan
 * __Person ID__ - inherited from Person type
 * Monthly check no. - check number
 * Collateral - name or value of collateral


 * Borrower subtype: Professional** - makes a Professional loan
 * __Person ID__ - inherited from Person type
 * Monthly check no.


 * Borrower subtype: Employee** -
 * __Person ID__ - inherited from Person type
 * Company - the company issuing the checks
 * Monthly check no.


 * LOAN** - the details of the loan
 * __Loan ID__ - unique number used to identify a loan
 * Person ID - the person making a loan
 * Amount - full amount of loan in Pesos
 * Time Period - interval of time in which the borrower shall pay the loan
 * Promissory Note no. - a unique note number


 * TRANSACTION** - the details of a loan's (monthly) transactions
 * __Transaction ID__ - unique number to identify a transaction
 * Loan ID - loan identification number
 * Person ID* - EMPLOYEE's person ID, used to identify who handles a given transaction
 * Date - date of transaction
 * Amount - amount paid in current transaction
 * Check no.


 * COMPANY** - details about the company
 * __Company ID__ - currently a number to identify the company, will be renamed to "Branch ID" if the company expands
 * Funds - amount of company's funds in Pesos


 * EMPLOYEE** - the details about the company's employees
 * __Person ID__ - inherited from Person type
 * Position - indicates position in the company (manager, secretary, etc)
 * Password - a password for secure access to the software
 * SSS - employee's SSS number
 * TIN - employee's TIN number


 * STAKEHOLDER** - information about stockholders and investors of the company
 * __Person ID__ - inherited from Person type
 * Profession - the stakeholder's professions
 * Citizenship - the stakeholder's citizenship
 * Company name - name of stakeholder's company, to ensure
 * Company address


 * Stakeholder subtype: Stockholder**
 * __Person ID__ - inherited from Person type
 * Stocks - value of stocks held


 * Stakeholder subtype: Investor**
 * __Person ID__ - inherited from Person type
 * Investment - amount of investment in Pesos
 * Time Period - the length of time that the investor will invest in the company

**Physical Database Design Model**




=JDBC Design Pattern=