Microfinance
Microfinance
Microfinance
SUBMITTED IN PARTIAL FULFILLMENT OF THE REQUIREMENT FOR QUALIFYING B.Sc.I.T. SEMESTER-VI EXAMINATION APRIL 2011
KIRTI M. DOONGURSEE COLLEGE OF ARTS, SCIENCE AND COMMERCE DADAR (W), MUMBAI 400028.
T.Y.BSc.I.T
Microfinance
D.E SOCIETYS Kirti .M. Doongursee College of Arts, Science and Commerce Dadar, Mumbai- 400028.
CERTIFICATE
This is to certify that Mr. MAHENDRA R. KAWDE With Seat No. ______ Mr. VINIT D. KADU With Seat No. ______ Mr. PRANAV S. SHETKAR With Seat No. ______ Mr. ASHISH A. SAWANT With Seat No. ______ Has successfully completed project entitled
MICROFINANCE
Under the precious guidance of Prof. VANITA ABHALE In the partial fulfillment of B.Sc. (I.T) Degree (Semester VI) has completed with all required Phases of the project development in the academic year. 2010 - 2011
Project Guide Head of Department
Internal Examiner
External Examiner
Page 1
T.Y.BSc.I.T
Microfinance
Declaration
I Mr. MAHENDRA R. KAWDE With Seat No. ______ I Mr. VINIT D. KADU With Seat No. ______ I Mr. PRANAV S. SHETKAR With Seat No. ______ I Mr. ASHISH A. SAWANT With Seat No. ______ Declare that the project named MICROFINANCE Has undertaken for the partial fulfillment of B.Sc. (I.T) Degree (Semester VI) In the academic year 2010 2011. I hereby declare that this Project Report submitted by me is based on actual work carried out by me under the guidance and supervision of Prof. VANITA ABHALE. Any reference to work done by any other person or institution or any material obtained from other sources have been duly cited and referenced. It is further to state that this work is not submitted anywhere else for any examination. MAHENDRA R. KAWDE VINIT D. KADU PRANAV S. SHETKAR ASHISH A. SAWANT DATE:
Page 2
T.Y.BSc.I.T
Microfinance
Preface
We take great pleasure and pride in presenting the report in partial fulfillment of the project undertaken as a part of the B.Sc.I.T Curriculum. It has been an experience of a life time working towards the completion of project we start out as a group of individuals as a limited practical knowledge this opportunity has been most beneficial to the development of our practical knowledge as well as to the application of our theoretical knowledge. In the course of this project, we have come across many crossroads and have been able to make right turns. It has also been our sincere effort to make this report as lucid as possible and to make Microfinance as easy to understand as possible. We hope that this report will be most beneficial to those who refer to it in the future. We also hope that the reader will understand and appreciate the finer nuances of Microfinance.
Page 3
T.Y.BSc.I.T
Microfinance
Acknowledgement
This project is incomplete without saying a few words of appreciation gratitude for all those who directly or indirectly have helped me in the completion of my project. Justification will never sound good if we do not express our vote of thanks to all our faculty members of our college. We are grateful to all of them & wish to thank them, without whom the success of the project would have been impossible. We are thankful to the faculty members for their valueable time and giving me project in first place. We could not have managed without their valueable inputs and co-operation in all aspects of project. We express our sincere gratitude towards my internal project guide Miss.Vanita Abhale, who guided us, rending confidence within me & got the best of me and who have been source of inspiration and motivation to us. We wish to thanks all our faculty members who helped us various stages of our project. And last but not the least we would like to thank our colleagues of T.Y.Bsc(I.T) for just being what they are and for being our friends.
Page 4
T.Y.BSc.I.T
Microfinance
Table of Contents
1. INTRODUCTION..7 1.1 WHAT IS MICROFINANCE?......................................................8 2. SYSTEM ANALYSIS9 2.1 SYSTEM OVERVIEW..10 2.2 PRODUCT FUNCTION11 2.3 OBJECTIVE AND SCOPE OF PROJECT...12 2.4 SYSTEM REQUIREMENTS....13 2.5 FEASIBILTY STUDIES...14 2.6 SOFTWARE DEVELOPMENT MODEL15 3. SYSTEM DESIGN19 3.1 PERT CHART..20 3.2 EVENT TABLE....21 3.3 DATA FLOW DIAGRAM24 3.4 E-R DIAGRAM.29 3.5 CLASS DIAGRAM..30 3.6 USE CASE MODEL.31 3.7 SEQUENCE DIAGRAM..34 3.8 STRUCTURE CHART.38 3.9 ACTIVITY DIAGRAM39 4. DATABASE DICTIONARY.40 5. SCREEN LAYOUTS.47
Page 5
T.Y.BSc.I.T
Microfinance
6. CODING73 7. TESTING...104
8. ANNEXURE..106 8.1 WHY JAVA SERVER PAGES? ..107 8.2 WHY MySQL? .109 8.3 USER MANUAL...111 8.4 CONCLUSION..113 8.5 BIBLIOGRAPHY .114
Page 6
T.Y.BSc.I.T
Microfinance
Introduction
Page 7
T.Y.BSc.I.T
Microfinance
What is Microfinance?
Microfinance is the provision of financial services to low-income clients or solidarity lending groups including consumers and the self-employed, who traditionally lack access to banking and related services. More broadly, it is a movement whose object is "a world in which as many poor and nearpoor households as possible have permanent access to an appropriate range of high quality financial services, including not just credit but also savings, insurance, and fund transfers." Those who promote microfinance generally believe that such access will help poor people out of poverty. The industry began by providing small loans to emerging entrepreneurs to start or expand businesses. Opportunity International was one of the first nonprofit organizations to recognize the benefits of providing capital to people struggling to work their way out of poverty. Over the years, with Opportunity leading the way, the microfinance sector has expanded its financial service offerings to better meet client needs. Along with providing more flexible loan products and business and personal development training, Opportunity offers savings and insurance to help clients effectively navigate the daily hardships they face. Without these services, clients are continually at risk of slipping back into poverty because of unforeseen circumstances. As the microfinance industry continues to mature, there is a danger that it will drift toward a more secure client base. It is critical that microfinance organizations continue to focus on those with the greatest needs those who have been displaced; those in rural areas, those who traditional institutions consider unbankable the most marginalized people. Maintaining that focus, microfinance can help create a world in which the underserved have fair access to economic opportunities and the hope to move beyond poverty.
Page 8
T.Y.BSc.I.T
Microfinance
System Analysis
Page 9
T.Y.BSc.I.T
Microfinance
System Overview
This is a web-based that can be exclusively used for financial institutions which provide financial services like savings, loans to low- income or self employed people. This system is mainly designed to provide automation for the services this kind of financial institutions provide by keeping track of customer transactions. The system is mainly divided in three parts Users, Administrators and Manager. Operator:
Identification of anyone assisting the user in using the application.
History of loans, repayments, future options. Roadmap for financing and returns on effort invested. Details of financed individual. Maintain the details of donors and borrowers.
Administrator: Details of financed individual. History of repayments and other borrowing behavior. History of kinds of transactions conducted. List of possible assistance from bank / institution. Planning future activities. Most productive investments. Assistance to be provided to these individuals. Most productive loans employee. Details of financed individual. History of repayments and other borrowing behaviour. History of kinds of transactions conducted.
Manager:
Page 10
T.Y.BSc.I.T
Microfinance
Product Function
Providing financial services to the clients online, which include loan, savings. Allowing registration for each every counterparts of organization according to their designation. Maintaining the details of financed individuals. Maintaining the details of Donors and Borrower. Maintaining the history of repayment and other borrowing behavior. Maintaining the transaction details Generating Reports for Analysis & Transactions. Allowing Administrator to introduce new Products and Services.
Enabling personalize view to each counterparts of organization according to their designation. Enables the 360 degree view of clients while their interaction with organization counterparts.
Maintaining repayments details of each and every clients or lenders of organization. Maintaining donation details of each and every donors of organization. Allowing to manipulate the clients details to only responsible counterparts of organization. Ensuring authentication through username & password policy.
Page 11
T.Y.BSc.I.T
Microfinance
To provide a user friendly, easy to use and an efficient web based system for automating the transactions within micro financial institutions. To keep Brief and relevant history of kinds of transactions conducted in micro financial institutions. Speedy processing increased efficiency, transparent policing and better interaction with the Clients. Design a system that will make the report generation job easier for micro financial institutes. To avoid misplacing of records and store them in an efficient manner. To provide validation to application in order to avoid incorrect or missing information Making searching a record that will require less time. 24 X 7 availability.
Scope:
Existing microfinance institutions can expand their operations to areas where there are no microfinance programs. More NGOs can incorporate microfinance as one of their programs. In places where there are no microfinance institutions, the government channels at the grassroots level may be used to serve the poor with microfinance. Postal savings banks may participate more not only in mobilizing deposits but also in providing loans to the poor and on lending funds to the MFIs. International NGOs and agencies may develop or may help develop Microfinance programs in areas or countries where micro financing is not a very familiar concept in reducing poverty.
Page 12
T.Y.BSc.I.T
Microfinance
System Requirements
Software Interface:
Front End Client: J2EE Web Server: Apache Tomcat Data Base Server: Back End: MySQL Hardware Interface:
Client Side: Pentium-IV + machine 512 MB RAM 1.80 GHz 160 GB HDD Server Side: Pentium-IV + machine 8 GB RAM 1 TB HDD
Page 13
T.Y.BSc.I.T
Microfinance
Feasibility Studies
The feasibility study purpose is one or more conceptual solution to the problems set for the project, this conceptual solutions gives idea of new system how it looks like i.e. they define which part of the system is to become computerized and which part remain manual. They also indicate that what input is required for the system and what is the output of the system. The solution given must be feasible and preferable solution is accepted the criteria to accept the solution based on three major things as follows: Technical Feasibility Operational Feasibility Economic Feasibility Technical Feasibility: At first it is necessary to check that the system (proposed system) is technically feasible or not and to determine the technology and skills necessary to carry out the project. If they are not available then find out the solution to obtain them. Operational Feasibility: The operational feasibility has obtained by consulting with the system users. Check that the proposed solution satisfied the user needs or not? There is no resistance from the user. Since new system is helpful. Economic Feasibility: When system is installed and implemented then how many hours are required to put in and cost of the development also be considered. Most common known as cost / benefit analysis. It is the procedure to determine benefits and savings accepted from candidate system and compare them with cost. "If benefits outweigh costs" decision is made to design and implement.
Page 14
T.Y.BSc.I.T
Microfinance
Page 15
T.Y.BSc.I.T
Microfinance
Waterfall Model
This model is often referred to as the classic life cycle or water fall model. It involves a systematic progression through the stages of analysis, design, coding, testing, and support, and is the most widely used procedural model for software engineering. The Linear Sequential Model involves the following activities, which occur in sequence.
Requirements analysis: This first step is also the most important, because it involves gathering information about what the customer needs and defining, in the clearest possible terms, the problem that the product is expected to solve. Analysis includes understanding the customer's business context and constraints, the functions the product must perform, the performance levels it must adhere to, and the external systems it must be compatible with. Techniques used to obtain this understanding include customer interviews, use cases, and "shopping lists" of software features. The results of the analysis are typically captured in a formal requirements specification, which serves as input to the next step.
Design: This step consists of "defining the hardware and software architecture, components, modules, interfaces, and data...to satisfy specified requirements"). It involves defining the hardware and software architecture, specifying performance and security parameters, designing data storage containers and constraints, choosing the IDE and programming language, and indicating strategies to deal with issues such as exception handling, resource management and interface connectivity. This is also the stage at which user interface design is addressed, including issues relating to navigation and accessibility. The output of this stage is one or more design specifications, which are used in the next stage of implementation.
Page 16
T.Y.BSc.I.T
Implementation:
Microfinance
This step consists of actually constructing the product as per the design specification(s) developed in the previous step. Typically, this step is performed by a development team consisting of programmers, interface designers and other specialists, using tools such as compilers, debuggers, interpreters and media editors. The output of this step is one or more product components, built according to a pre-defined coding standard and debugged, tested and integrated to satisfy the system architecture requirements. For projects involving a large team, version control is recommended to track changes to the code tree and revert to previous snapshots in case of problems.
Testing: In this stage, both individual components and the integrated whole are methodically verified to ensure that they are error-free and fully meet the requirements outlined in the first step. An independent quality assurance team defines "test cases" to evaluate whether the product fully or partially satisfies the requirements outlined in the first step. Three types of testing typically take place: unit testing of individual code modules; system testing of the integrated product; and acceptance testing, formally conducted by or on behalf of the customer. Defects, if found, are logged and feedback provided to the implementation team to enable correction. This is also the stage at which product documentation, such as a user manual, is prepared, reviewed and published.
Installation: This step occurs once the product has been tested and certified as fit for use, and involves preparing the system or product for installation and use at the customer site. Delivery may take place via the Internet or physical media, and the deliverable is typically tagged with a formal revision number to facilitate updates at a later date.
Page 17
T.Y.BSc.I.T
Maintenance:
Microfinance
This step occurs after installation, and involves making modifications to the system or an individual component to alter attributes or improve performance. These modifications arise either due to change requests initiated by the customer, or defects uncovered during live use of the system. Typically, every change made to the product during the maintenance cycle is recorded and a new product release (called a "maintenance release" and exhibiting an updated revision number) is performed to enable the customer to gain the benefit of the update.
Page 18
T.Y.BSc.I.T
Microfinance
System Design
Page 19
T.Y.BSc.I.T
Microfinance
Pert Chart
Requirement Analysis
Database Designing
18/11/10
10/12/10
26/12/10
31/12/10
Documentation
Documentation
Documentation
Implementation
Coding
Form Designing
11/03/11
18/03/10
21/01/11
10/03/11
01/01/11
20/01/11
Documentation
Testing
Documentation
Documentation
Page 20
T.Y.BSc.I.T
Microfinance
Event Table
Source Operator
Destination Database
Operator
Operator
Update Donations
Update /Delete donors details in database Store donation details of each individual donor in database Update/Delet e donation details in database Store organization details
Database Donors details added successfully/ fail to add details Donors details Database modified/delete d successfully/ fail to modify or delete details Donation Database Details added successfully/ fail to add details
Operator
Donation details Database modified/delete d successfully/ fail to modify or delete details Database Organizations details added successfully/ fail to add details
Page 21
T.Y.BSc.I.T
7 Update/Delet e organization details Update organization Operator/ Admin/ Manager Update / delete organization details in database Store borrowing details in database Update / delete product details in database Store transaction details for each client Add repayment details to database View repayment details from database Update client details in database
Microfinance
Organization details modified /deleted successfully/ fail to modify or delete details Borrowing details added successfully/ fail to add details Borrowing details modified/delete d successfully /fail to modify or delete details Transaction details added successfully/ fail to add details Repayment details added successfully/ fail to add details Repayment details displayed successfully Client details modified successfully/ fail to modify or delete details Service details added successfully/ fail to add Database
Operator
Database
Database
10
Operator
Database
11
Operator
Database
12
View repayment
Database
13
Update client
Operator
14
Administrat or
Database
Page 22
T.Y.BSc.I.T
15 Enter Loan details Add Loan Details Administrat or Add Loan details to database
Microfinance
details Loan details added successfully/ fail to add details Service details modified successfully/ fail to modify or delete details Service details modified successfully/ fail to modify or delete details Report displayed Database
16
Update / delete service details Update / delete service details View Reports
Update service
Database
Update service details in database Update service details in database Display specified report
Admin/ Manager
17
Update service
Database
Admin/ Manager
18
Database
Page 23
T.Y.BSc.I.T
Microfinance
Page 24
T.Y.BSc.I.T
Microfinance
Page 25
T.Y.BSc.I.T
Microfinance
Page 26
T.Y.BSc.I.T
Microfinance
Page 27
T.Y.BSc.I.T
Microfinance
Page 28
T.Y.BSc.I.T
Microfinance
E-R Diagram
Loan Borrowing
Made Towards
Organization
Ask
Takes
Employee
Approac h Makes
Approac h
Client
Repayment
Donor
Create
Makes
Makes
Account
Transaction
Donation Page 29
T.Y.BSc.I.T
Microfinance
Class Diagram
Borrowing Loan
Service_id Name
Rate_Of_Interest
Organization
Organization_Id Name Address
Employee
Employee_Id
Donor Client
Client_Id Client_Name Address Name Donor_Id Address Donor_Name Contact_Details Address
Repayment
Contact_Details Repayment_Id Amount Date
Contact_Details
Donation
Donation_Id
Account
Account_Id Client_Id Date Balance
Transaction
Transaction_Id Amount Date
Amount Date
Page 30
T.Y.BSc.I.T
Microfinance
Make Repayment
Deposit
Withdrawal
Page 31
T.Y.BSc.I.T
Microfinance
2.
Page 32
T.Y.BSc.I.T
3.
Microfinance
4.
Manager
Page 33
T.Y.BSc.I.T
Microfinance
Sequence Diagram
1.
Client Service Loan Repayment Account
Client
AddClient()
ViewClient()
ViewService()
RequestForService()
ViewLoanDetails()
RequestForLoan()
CheckLoanStatus()
LoanRepayment()
OpenAccount()
Deposit()
Withdraw()
Transfer()
ViewAccountDetails()
Page 34
T.Y.BSc.I.T
2.
Donor Bank Donation
Microfinance
Borrowings
Operator
AddDonor()
ViewDonor()
AddBank()
ViewBank()
MakeDonation()
ViewDonation()
EnterBorrowings()
ViewBorrowings()
Page 35
T.Y.BSc.I.T
3.
Loan Repayment Borrowings
Microfinance
Admin
RequestReport()
ShowRepaymentReport()
RequestReport()
ShowBorrowingReport()
Page 36
T.Y.BSc.I.T
4.
Microfinance
Employee
Manager
RequestForProgressiveEmp()
ViewProgressiveEmp()
Page 37
T.Y.BSc.I.T
Microfinance
Structure Chart
Start
Open Account
View Services
No
Yes Deposit
Yes
Make Withdrawal
Make Deposit
Withdrawal
No
End
Repayment of Loan
Page 38
T.Y.BSc.I.T
Microfinance
Activity Diagram
Employee Login
Client
Enter Bank details Request Service Enter Client Details Request Withdrawal Deposit Bank Transfer Request for balance statement View Account Balance
Make Withdrawal
Page 39
T.Y.BSc.I.T
Microfinance
Database Dictionary
Page 40
T.Y.BSc.I.T
Microfinance
ClientDetails
Page 41
T.Y.BSc.I.T
Microfinance
Donormaster
ServiceMaster
LoanMaster
Page 42
T.Y.BSc.I.T
Microfinance
ClientLoanDetails
Employeemaster
Page 43
T.Y.BSc.I.T
RepaymentDetails
Microfinance
OrganisationMaster
Borrowings
Page 44
T.Y.BSc.I.T
Microfinance
Donations
TransactionMaster
AccountMaster
Page 45
T.Y.BSc.I.T
Microfinance
NomineeDetails:
Page 46
T.Y.BSc.I.T
Microfinance
Screen Layouts
Page 47
T.Y.BSc.I.T
Microfinance
Homepage
Page 48
T.Y.BSc.I.T
Microfinance
LoginPage
Page 49
T.Y.BSc.I.T
Microfinance
InvalidLogin
Page 50
T.Y.BSc.I.T
Microfinance
OperatorHome:-
Page 51
T.Y.BSc.I.T
Microfinance
AdminHome
Page 52
T.Y.BSc.I.T
Microfinance
ManagerHome
Page 53
T.Y.BSc.I.T
Microfinance
Page 54
T.Y.BSc.I.T
Microfinance
NomineeDetails
Page 55
T.Y.BSc.I.T
Microfinance
AccountDetails
Page 56
T.Y.BSc.I.T
Microfinance
ClientLoanDetails
Page 57
T.Y.BSc.I.T
Microfinance
ClientsFinalInfo
Page 58
T.Y.BSc.I.T
Microfinance
Donors Registration
Donorsdetails
Page 59
T.Y.BSc.I.T
Microfinance
RegardPage
Page 60
T.Y.BSc.I.T
Microfinance
Employee Registration
Employeeregistration
Page 61
T.Y.BSc.I.T
Microfinance
Page 62
T.Y.BSc.I.T
Microfinance
ClientupdateRegard
Page 63
T.Y.BSc.I.T
Microfinance
DonorDeleteRagardpage
Page 64
T.Y.BSc.I.T
Microfinance
NewService
Page 65
T.Y.BSc.I.T
Microfinance
RepaymentDetails
Page 66
T.Y.BSc.I.T
Microfinance
Reports
ClientTransactionreport
Page 67
T.Y.BSc.I.T
Microfinance
DonorsReport
Page 68
T.Y.BSc.I.T
Microfinance
RepaymentDetails
Page 69
T.Y.BSc.I.T
Microfinance
OrganizationReport
Page 70
T.Y.BSc.I.T
Microfinance
LoanReport
Page 71
T.Y.BSc.I.T
Microfinance
ServiceReport
Page 72
T.Y.BSc.I.T
Microfinance
Coding
Page 73
T.Y.BSc.I.T
HomePage.jsp
Microfinance
<html> <head> <title>Miccrofinance Institute</title> </head> <body> <body background="images/res_4.jpg" vlink="orange" > <table height="2%" width="100%" align="right" > <tr>
<td align="right"><a href="LoginPageDisplayer"><font color="white" font face="Bell MT">LogIn </font></a></td> </tr> </table> <table height="30%" width="100%" align="center" > <tr > <td ><jsp:include page="Header.jsp" /></td> </tr> </table> <table height="2%" width="100%"> <tr><td><hr color="white" size="2%" width="100%"></td></tr> </table>
Page 74
T.Y.BSc.I.T
<tr> <td><jsp:include page="SidePanel.jsp" /></td> </tr> </table> <table border color="white" height="60%" width="80%" align="right" > <tr><td></td></tr> </table>
Microfinance
<table border width="100%" cellspacing="20" valign="bottom" rules="columns"> <tr> <td><jsp:include page="Footer.jsp" /></td> </tr> </table>
</body> </html>
Page 75
T.Y.BSc.I.T
LoginServlet.java
package Microfinance.servlet;
Microfinance
import Microfinance.dao.EmployeeMasterDAO; import Microfinance.entity.EmployeeMaster; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession;
protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); try { System.out.println();
T.Y.BSc.I.T
String strpwd = request.getParameter("txtpwd");
Microfinance
String EmpName = em.getEmployeeFirstName(); String Designation = em.getDesignation(); HttpSession session = request.getSession(); session.setAttribute("LoggedInEmp", em); if(Designation.equals("Operator")) { request.setAttribute("UN", em); RequestDispatcher rd = request.getRequestDispatcher("OperatorHome.jsp"); rd.forward(request, response); return; } else if(Designation.equals("Administrator")) { request.setAttribute("UN", em); RequestDispatcher rd = request.getRequestDispatcher("AdminHome.jsp"); rd.forward(request, response); return; } else {
Page 77
T.Y.BSc.I.T
request.setAttribute("UN", em);
Microfinance
} finally { out.close(); } } }
Page 78
T.Y.BSc.I.T
OperatorSidePanel:-
Microfinance
<font color="white" font size="50"> <% Object obj = session.getAttribute("LoggedInEmp"); EmployeeMaster em = (EmployeeMaster)obj; String strDesg = em.getDesignation(); if(strDesg.equals("Operator")) { %> <tr><td align="center"><a href="OperatorHome.jsp"><font color="white" font face="Bell MT">Home</font></a> </td></tr> <tr><td align="center"><a href="ClientAdder"><font color="white" font face="Bell MT">Client Registration</font></a></td></tr> <tr><td align="center"><a href="DonorsAdder"><font color="white" font face="Bell MT">Enter Donor's Details</font></a></td></tr> <tr><td align="center"><a href="DonationAdder"><font color="white" font face="Bell MT"> Enter Donation Details</font></a></td></tr> <tr><td align="center"> <a href="OrganizationAdder"><font color="white" font face="Bell MT">Enter Organization Details</font></a></td></tr> <tr><td align="center"> <a href="BorrowingAdder"><font color="white" font face="Bell MT">Enter Borrowing Details</font></a></td></tr> <tr><td align="center"><a href="TransactionAdder"><font color="white" font face="Bell MT">Enter Transaction Details</font></a></td></tr> <tr><td align="center"><a href="RepaymentAdder"><font color="white" font face="Bell MT">Enter Repayment Details</font></a></td></tr>
<%
Page 79
T.Y.BSc.I.T
} if(strDesg.equals("Administrator")) { %> <tr>
Microfinance
<td align="center"><a href="AdminHome.jsp"><font color="orange" font face="Bell MT">Home</font></a></td> </tr> <tr> <td align="center"><a href="ServiceAdder"><font color="white" font face="Bell MT">Enter New Service Details</font></a></td> </tr> <tr> <td align="center"><a href="LoanAdder"><font color="white" font face="Bell MT">Enter New Loan Details</font></a></td> </tr> <tr> <td align="center"><a href="EmployeeAdder"><font color="white" font face="Bell MT">Enter New Employee Details</font></a></td> </tr>
T.Y.BSc.I.T
Microfinance
<td align="center"><a href=""><font color="orange" font face="Bell MT">Most productive employee</font></a></td> </tr> <% } %>
<%
if(strDesg.equals("Manager") || strDesg.equals("Administrator")) { %> <tr><td align="center"><a href="LoanReport"><font color="white" font face="Bell MT">Loan Report</font></a></td></tr> <tr><td align="center"><a href="ServiceReport"><font color="white" font face="Bell MT">Service Report</font></a></td></tr> <tr> <td align="center"><a href="ShowService"><font color="white" font face="Bell MT">VIEW/UPDATE Service Details</font></a></td> </tr> <tr> <td align="center"><a href="ShowLoanMaster"><font color="white" font face="Bell MT">VIEW/UPDATE Loan Details</font></a></td> </tr> <tr> <td align="center"><a href="ShowEmployee"><font color="white" font face="Bell
Page 81
T.Y.BSc.I.T
MT">VIEW/UPDATE Employee Details</font></a></td> </tr>
Microfinance
<% } if(strDesg.equals("Operator") || strDesg.equals("Administrator") || strDesg.equals("Manager")) { %> <tr><td align="center"><a href="showClient"><font color="white" font face="Bell MT">VIEW/UPDATE Client</font></a></td></tr> <tr><td align="center"><a href="ShowNominee"><font color="white" font face="Bell MT">VIEW/UPDATE Nominee</font></a></td></tr> <tr><td align="center"><a href="ShowDonor"><font color="white" font face="Bell MT">VIEW/UPDATE Donors</font></a></td></tr> <tr><td align="center"><a href="ShowDonation"><font color="white" font face="Bell MT">VIEW/UPDATE Donations</font></a></td></tr> <tr><td align="center"><a href="ShowOrganization"><font color="white" font face="Bell MT">VIEW/UPDATE Organization</font></a></td></tr> <tr><td align="center"><a href="ShowBorrowing"><font color="white" font face="Bell MT">VIEW/UPDATE Borrowings</font></a></td></tr> <tr><td align="center"><a href="ShowAccount"><font color="white" font face="Bell MT">VIEW/UPDATE Account</font></a></td></tr> <tr><td align="center"><a href="ShowClienLoantDetails"><font color="white" font face="Bell MT">VIEW/UPDATE Client Loan Details</font></a></td></tr> <tr><td align="center"><a href="ShowRepayment"><font color="white" font face="Bell MT">VIEW/UPDATE Repayment</font></a></td></tr> <tr><td align="center"><a href="ShowTransactionReport"><font color="white" font face="Bell MT">Client Transaction Report</font></a></td></tr> <tr><td align="center"><a href="DonorsRecord"><font color="white" font face="Bell MT">Donors
Page 82
T.Y.BSc.I.T
Report</font></a></td></tr>
Microfinance
<tr><td align="center"><a href="ShowRepaymentRecord"><font color="white" font face="Bell MT">Client Repayment Report</font></a></td></tr> <tr><td align="center"><a href="OrganizationReport"><font color="white" font face="Bell MT">Organization Report</font></a></td></tr>
DBConnection:package Microfinance.utility;
public Connection createConnection() throws Exception { String url = "jdbc:mysql://localhost:3306/MFI"; String driver = "com.mysql.jdbc.Driver";
Page 83
T.Y.BSc.I.T
String username = "root"; String password = "admin"; Class.forName(driver); con = DriverManager.getConnection(url, username, password); return con; }
Microfinance
DonorsDetails.jsp
<%@page import="Microfinance.utility.UniqueId "%> <html> <head> <title>Donor's Details</title> </head> <body vlink="orange" bgcolor="black "> <form method="post" action="DonorsDetailsAdder"> <table height="30%" width="100%" align="center" background="images/res_4.jpg"> <tr > <td ><jsp:include page="Header.jsp" /></td> </tr>
Page 84
T.Y.BSc.I.T
Microfinance
</table> <table height="2%" width="100%"> <tr><td><hr color="white" size="2%" width="100%"></td></tr> </table> <table border="1" color="white" align="left" height="80%" width="20%" rules="rows" cellpadding="5" colspan="5" CellSpacing="2" background="images/4.jpg"> <tr> <td><jsp:include page="OperatorSidePanel.jsp" /></td> </tr> </table> <table color="white" height="100%" width="75%" align="right" > <tr> <td> <table width="100%" > <tr> <TR> <TD> <center><font color='white' font face='Bell MT'><h1>Donor's Information</h1></font>
<table align="center"> <tr> <td align="left" valign="top"><font color='white' font face='Bell MT'>Donor's ID</font> </td> <td align="left" valign="top"><input type="text" name="txtDonorsID"
Page 85
T.Y.BSc.I.T
value="<%= (new UniqueId()).getDonorsId()%>" disabled></td>
Microfinance
<input type="hidden" name="txtDonorsID" value="<%= (new UniqueId()).getDonorsId()%>" > </tr> <tr> <td align="left" valign="top"><font color='white' font face='Bell MT'>Donor's Name:</font> </td> <td align="left" valign="top"><input type="text" name="txtDonorsName"></td> </tr> <tr> <td align="left" valign="top"><font color='white' font face='Bell MT'>Donor's Address</font></td> <td align="left" valign="top"><textarea name="taAddress"></textarea></td> </tr> <tr> <td align="left" valign="top"><font color='white' font face='Bell MT'>Donor's Contact No</font></td> <td align="left" valign="top"><input type="text" name="txtContact"></td> </tr> <tr> <td align="left" valign="top"><font color='white' font face='Bell MT'>Donor's Fax No</font></td> <td align="left" valign="top"><input type="text" name="txtFaxNo"></td> </tr> <tr> <td align="left" valign="top"><font color='white' font face='Bell MT'>Donor's Email_ID</font></td>
Page 86
T.Y.BSc.I.T
Microfinance
<td align="left" valign="top"><input type="text" name="txtEmailID"></td> </tr> <tr> <td align="left" valign="top"><font color='white' font face='Bell MT'>Donor's
Website</font></td> <td align="left" valign="top"><input type="text" name="txtWebsite"></td> </tr> </table> </center> </TD> </TR> <tr> <td align="center" colspan="2" valign="top"><input type="submit" value="Save" name="btnSave"> <input type="reset" value="Clear" name="btnClear"> </td> </tr> </table> </form> </td> </tr> </table> </td> </tr> </table> </body> </html>
Page 87
T.Y.BSc.I.T
DonorsDetailsAdder:-
Microfinance
package Microfinance.servlet;
import Microfinance.dao.DonorsMasterDAO; import Microfinance.entity.DonorsMaster; import Microfinance.utility.MicrofinanceConstants; import Microfinance.utility.UniqueId; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;
protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); try { System.out.println();
Page 88
T.Y.BSc.I.T
Microfinance
String strDonorsID = request.getParameter("txtDonorsID"); String strDonorsName = request.getParameter("txtDonorsName"); String strDonorsAddress = request.getParameter("taAddress"); String strDonorsTelNo = request.getParameter("txtContact"); String strDonorsFaxNo = request.getParameter("txtFaxNo"); String strDonorsEmailID = request.getParameter("txtEmailID"); String strDonorsWebSite = request.getParameter("txtWebsite");
if(status) {
Page 89
T.Y.BSc.I.T
UniqueId uid = new UniqueId();
Microfinance
request.setAttribute("status", "Donors details added successfully."); } else { request.setAttribute("status", "<font color='red'>Unable to add Donors Details Due To Some Internal Errors.</font>"); } RequestDispatcher rd = request.getRequestDispatcher("RegardsPage.jsp"); rd.forward(request, response); return; } catch(Exception e) { System.out.println(e.getMessage()); e.printStackTrace(); } finally { out.close(); } } }
Page 90
T.Y.BSc.I.T
DonorsMaster.java
Microfinance
package Microfinance.entity;
import java.io.Serializable; public class DonorsMaster implements Serializable { private String DonorsId; private String DonorsName; private String DonorsAddress; private String DonorsTelNo; private String DonorsFaxNo; private String DonorsEmailId; private String DonorsWebsite;
Page 91
T.Y.BSc.I.T
public String getDonorsEmailId() { return DonorsEmailId; }
Microfinance
Page 92
T.Y.BSc.I.T
public void setDonorsId(String DonorsId) { this.DonorsId = DonorsId; }
Microfinance
Page 93
T.Y.BSc.I.T
public String getDonorsWebsite() { return DonorsWebsite; }
Microfinance
DonorsMasterDAO.java
package Microfinance.dao;
import Microfinance.entity.DonorsMaster; import Microfinance.utility.DBConnection; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.ArrayList; public class DonorsMasterDAO { public boolean add(DonorsMaster dm)throws Exception {
Page 94
T.Y.BSc.I.T
Microfinance
String query = "INSERT INTO DonorsMaster(DonorsId,DonorsName,DonorsAddress,DonorsTelNo,DonorsFaxNo,DonorsEmailId,DonorsWeb site) VALUES(?,?,?,?,?,?,?)"; DBConnection db = new DBConnection(); Connection con = db.createConnection(); PreparedStatement ps = con.prepareStatement(query); ps.setString(1,dm.getDonorsId()); ps.setString(2,dm.getDonorsName()); ps.setString(3,dm.getDonorsAddress()); ps.setString(4,dm.getDonorsTelNo()); ps.setString(5,dm.getDonorsFaxNo()); ps.setString(6,dm.getDonorsEmailId()); ps.setString(7,dm.getDonorsWebsite()); int result = ps.executeUpdate(); db.closeConnection(); if(result > 0) { return true; } else { return false; } } public boolean update(DonorsMaster dm)throws Exception {
Page 95
T.Y.BSc.I.T
Microfinance
String query = "UPDATE DonorsMaster SET DonorsName = ?,DonorsAddress = ?,DonorsTelNo = ?,DonorsFaxNo = ?,DonorsEmailId = ?,DonorsWebsite = ? WHERE DonorsId = ?"; DBConnection db = new DBConnection(); Connection con = db.createConnection(); PreparedStatement ps = con.prepareStatement(query); ps.setString(1,dm.getDonorsName()); ps.setString(2,dm.getDonorsAddress()); ps.setString(3,dm.getDonorsTelNo()); ps.setString(4,dm.getDonorsFaxNo()); ps.setString(5,dm.getDonorsEmailId()); ps.setString(6,dm.getDonorsWebsite()); ps.setString(7,dm.getDonorsId()); int result = ps.executeUpdate(); db.closeConnection(); if(result > 0) { return true; } else { return false; } } public boolean delete(String id)throws Exception {
Page 96
T.Y.BSc.I.T
String query = "DELETE FROM DonorsMaster WHERE DonorsId = ?"; DBConnection db = new DBConnection(); Connection con = db.createConnection(); PreparedStatement ps = con.prepareStatement(query); ps.setString(1,id); int result = ps.executeUpdate(); db.closeConnection(); if(result > 0) { return true; } else { return false; } } public DonorsMaster getById(String id)throws Exception {
Microfinance
String query = "SELECT DonorsId,DonorsName,DonorsAddress,DonorsTelNo,DonorsFaxNo,DonorsEmailId,DonorsWebsite FROM DonorsMaster WHERE DonorsId = ?"; DBConnection db = new DBConnection(); Connection con = db.createConnection(); PreparedStatement ps = con.prepareStatement(query); ps.setString(1,id); ResultSet rs = ps.executeQuery();
Page 97
T.Y.BSc.I.T
DonorsMaster dm = null; if(rs.next()) { dm = new DonorsMaster(); dm.setDonorsId(rs.getString("DonorsId")); dm.setDonorsName(rs.getString("DonorsName")); dm.setDonorsAddress(rs.getString("DonorsAddress")); dm.setDonorsTelNo(rs.getString("DonorsTelNo")); dm.setDonorsFaxNo(rs.getString("DonorsFaxNo")); dm.setDonorsEmailId(rs.getString("DonorsEmailId")); dm.setDonorsWebsite(rs.getString("DonorsWebsite")); } db.closeConnection(); return dm; } public DonorsMaster[] getAll() throws Exception {
Microfinance
String query = "SELECT DonorsId,DonorsName,DonorsAddress,DonorsTelNo,DonorsFaxNo,DonorsEmailId,DonorsWebsite FROM DonorsMaster"; DBConnection db = new DBConnection(); Connection con = db.createConnection(); PreparedStatement ps = con.prepareStatement(query); ResultSet rs = ps.executeQuery(); ArrayList al = new ArrayList(); while(rs.next())
Page 98
T.Y.BSc.I.T
{ DonorsMaster dm = new DonorsMaster(); dm.setDonorsId(rs.getString("DonorsId")); dm.setDonorsName(rs.getString("DonorsName")); dm.setDonorsAddress(rs.getString("DonorsAddress")); dm.setDonorsTelNo(rs.getString("DonorsTelNo")); dm.setDonorsFaxNo(rs.getString("DonorsFaxNo")); dm.setDonorsEmailId(rs.getString("DonorsEmailId")); dm.setDonorsWebsite(rs.getString("DonorsWebsite")); al.add(dm); } db.closeConnection(); Object arrObj[] = al.toArray(); DonorsMaster arrDonorsMaster[] = new DonorsMaster[arrObj.length]; for(int i = 0;i< arrObj.length;i++) { arrDonorsMaster[i] = (DonorsMaster)arrObj[i]; } return arrDonorsMaster; } }
Microfinance
Page 99
T.Y.BSc.I.T
DonorsReport.jsp:<%@page import="Microfinance.entity.DonorsMaster"%>
Microfinance
<% Object obj = request.getAttribute("allDonors"); DonorsMaster dm[] = (DonorsMaster[]) obj; %> <html> <head> <title>Donor's Details</title> </head> <body vlink="orange" bgcolor="black "> <form method="post" action="DonorsDetailsAdder">
<table height="30%" width="100%" align="center" background="images/res_4.jpg"> <tr > <td ><jsp:include page="Header.jsp" /></td> </tr>
</table> <table height="2%" width="100%"> <tr><td><hr color="white" size="2%" width="100%"></td></tr> </table> <table border="1" color="white" align="left" height="80%" width="20%" rules="rows" cellpadding="5"
Page 100
T.Y.BSc.I.T
colspan="5" CellSpacing="2" background="images/4.jpg"> <tr> <td><jsp:include page="OperatorSidePanel.jsp" /></td> </tr> </table> <table color="white" height="100%" width="75%" align="right" > <tr> <td> <table width="100%" > <tr> <TR> <TD>
Microfinance
<center><font color='white' font face='Bell MT'><h1>Donor's Information</h1></font> <table align="center" bgcolor="orange"> <% if(dm.length > 0) { %>
T.Y.BSc.I.T
<th>DonorsFaxNo</th> <th>DonorsEmailId</th> <th>DonorsWebsite</th> </tr> <% for (int i = 0; i < dm.length; i++) { %> <tr> <td align="center"><%= (i+1) %></td> <td align="left"><%= dm[i].getDonorsId() %></td>
Microfinance
<td align="left"><%= dm[i].getDonorsName() %></td> <td align="left"><%= dm[i].getDonorsAddress() %></td> <td align="left"><%= dm[i].getDonorsTelNo() %></td> <td align="left"><%= dm[i].getDonorsFaxNo() %></td> <td align="left"><%= dm[i].getDonorsEmailId() %></td> <td align="left"><%= dm[i].getDonorsWebsite() %></td> </tr> <% } %> </table> <% } else
Page 102
T.Y.BSc.I.T
{ %> No Donors to display . <% } %> </center> </form> </td> </tr> </table> </td> </tr> </table>
Microfinance
</body> </html>
Page 103
T.Y.BSc.I.T
Microfinance
Testing
Page 104
T.Y.BSc.I.T
Microfinance
Test Report
Sr. Test For Action performed Loading Input
Expected Result
User Interface Will Display Login to User Account Module will Select
Remark Type of
Testing Black Box Testing
-------
Success
User Login 2
Loading
Username, password
Logged in
Success
Black Box Testing Black Box Testing Black Box Testing Black Box Testing Black Box Testing
Beta Testing
Module Selection
Module Opens
Appropriate Details
Module Selected
Success
Beta Testing
Menu Selection
Menu Opens
-------
Menu Will select User Details Will be Displayed User Details Will be Updated It Will be Registered
Menu selected
Success
Beta Testing
Display User Details Display User Details With Update Form Load Registration Form
-------
Success
Beta Testing
Success
Beta Testing
Registration
Registered
Success
Beta Testing
View Report
Select Category
Report Generated
Success
Beta Testing
Page 105
T.Y.BSc.I.T
Microfinance
Annexure
Page 106
T.Y.BSc.I.T
Microfinance
Page 107
T.Y.BSc.I.T
Static HTML:-
Microfinance
Regular HTML, of course, cannot contain dynamic information, so static HTML pages cannot be based upon user input or server-side data sources. JSP is so easy and convenient that it is quite reasonable to argument HTML pages that only benefit slightly by the insertion of dynamic data. Previously, the difficulty of using dynamic data precluded its use in all but the most valuable instances.
Page 108
T.Y.BSc.I.T
Microfinance
Why MySQL?
Features of MySQL:Internals and Portability: Written in C and C++. Tested with a broad range of different compilers. Works on many different platforms. The server is available as a separate program for use in a client/server networked environment. It is also available as a library that can be embedded(linked) into standalone applications. Such applications can be used in isolation or in environments where no network is available.
Datatypes: Many data types: signed/ unsigned integers 1, 2, 3,4 and 8 bytes LONG, FLOAT,DOUBLE, CHAR, text, BLOB, DATE, TIME, DATETIME, TIMESTAMP, YEAR, SET, ENUM.. Fixed-length and variable-length records. Security: A privilege and password system that is very flexible and secure,and that allows hostbased verification. Passwords are secure because all password traffic is encrypted when you connect to a server. Scalability and Limits: Handles large databases. UP to 64 indexes per table are allowed. Connectivity: Clients can connect to MySQL Server using protocols: Clients can connect using TCP/IP sockets on any platform.
Page 109
T.Y.BSc.I.T
Microfinance
On Windows systems in the NT family(NT, 2000, XP, 2003 or Vista), clients can connect using named pupes if the server is started with the enable-named-pipes option. MySQL client programs can be written in many languages. A client library written in C is available for clients written in C and C++, or for any language that provides C bindings. APIs for C, C++, Eiffel, Java, Perl, PHP, Python, Ruby and Tcl are available, allowing MySQL clients to be written in many languages. The Connector/ODBC (MyODBC) interface provides MySQL support for client programs that use ODBD (Open Database Connectivity) Connections. Localization: The server can provide error messages to clients in many languages. Full support for several different character sets. All data is saved in the chosen character set.
Page 110
T.Y.BSc.I.T
Microfinance
User Manual
Operator:1. For New Client Registration:Click on Client Registration menu. Enter the Client details, its Nominee details, its Account details and the Loan details by selecting appropriate Client ID and its Account ID. 2. For New Donors Details:Click on Enter Donors Details. 3. For Donation Details:Click on Enter Donation Details. Select appropriate Donor. 4. To VIEW/UPDATE Client Details:Select the appropriate Client and update or delete its details. 5. To Enter Transaction Details:Select appropriate Client ID and its Account ID and enter the Transaction amount by selecting appropriate Transaction Type. 6. To View Transaction Report:Select Client ID for which the transaction is to be shown.
Administrator:1. To Enter New Service Details:First enter Service details and then enter new Loan details by selecting latest Service ID from the ComboBox. 2. To VIEW/UPDATE Service, Loan Details:Select appropriate Client ID and update or delete its details. 3. To View Report:Select the appropriate report which has to be displayed. 4. To Enter New Employee Details:Click on Enter New Employee Details.
Page 111
T.Y.BSc.I.T
Manager:1. To View Most Productive Employee:Select most productive employee. 2. To View Report:Select the appropriate report which has to be displayed.
Microfinance
Page 112
T.Y.BSc.I.T
Microfinance
Conclusion
An attempt is made in all its earnest towards the successful completion of the project. This system was verified with valid as well as with invalid data. This system is user friendly since it has been developed in NetBeans IDE 6.5, a successful GUI environment. Since the connection can be extended to any database. The control will be more powerful. Connecting it to any type of database extends the development control. Any suggestions for future development of the system are welcome. Upgrading the system can be done without affecting the proper functioning of system.
Page 113
T.Y.BSc.I.T
Microfinance
Bibliography
www.mixmarket.org
Page 114