Loan Management System
Loan Management System
USING PYTHON
A Project work submitted in partial fulfillment of the requirements for
the degree of
Bachelor of Computer Applications
to the
Periyar University, Salem-11
By
ARAVIND B
[C21UG155CAP004]
MAR/APR – 2024
Mr. S. Vadamalai M.C.A., M.Phil.., B.Ed.,
Head of the department
PG & Research Department of Computer Science,
Don Bosco College,
Dharmapuri - 636 809.
Place : Dharmapuri,
Date :03-04-2024.
CERTIFICATE
This is to certify that the project work entitled “LOAN MANAGEMENT SYSTEM ”
submitted in partial fulfillment of the requirements of the degree of Bachelor Of Computer
Applications to the Periyar University, Salem is record of bonafide work carried out by
ARAVIND B [REG.NO:C21UG155CAP004] under my supervision and guidance.
I thank the almighty God for the blessings that have been showered upon me to
complete the project successfully. I express my heartfelt thanks to my parents who have
encouraged me in all ways to do my project.
I wish to express my thanks to Rev. Fr. Dr. Robert Ramesh Babu SDB, Secretary
and Rector, Don Bosco College, Dharmapuri, for his constant encouragement.
I render my special thanks to Rev. Fr. Dr. J. Angelo Joseph SDB, Principal, and
Rev.Fr. Dr. S. Bharathi Bernadsha SDB, Vice-Principal, from Don Bosco College,
Dharmapuri, for their support and constant encouragement.
[ARAVIND B]
ABSTRACT
The loan management system project is using in Python. The Loan management
system is important and helps to ensure success or failure of any credit institution. Mortgage
loan problems have always been a key note on the risk of loan loss. The scope of this project
is to provide good communication and communication between the customer and the
manager. The current system can be a user-friendly system, which does not store data in the
proper security. The Financial Management System is designed to perform the functions of
the back offices of a bank and a non-cash financial institution offers any sort of loan. The
system can make daily operations more efficient and provide faster response. Including
adding, editing, retrieving customer information, maintaining and issuing new loans, change
the loan rate. The scope of this project is to use the loan in a very smart way. The project
includes a system analysis and style for obtaining a loan details process, settlement process,
and approving the payment process.
CONTENTS
1 INTRODUCTION
2 SYSTEM STUDY
5 CONCULUSION
6 BIBLIOGRAPHY
7 APPENDENCIES
A. DATA FLOW DIAGRAM
B. TABLE STRUCTURE
C. SAMPLE CODING
D. SAMPLE INPUT
E. SAMPLE OUTPUT
CHAPTER I
INTRODUCTION
Introduction:
• Developing complete feature rich and scalable ERP solutions as per need requirement.
• Innovative products and excellent support that meet or exceed Client's expectations.
• Timely delivery.
• Unassailable support.
• Address.
1.2. SYSTEM SPECIFICATION
2.1.1. Drawbacks
It used to take more time to find customers because there are required
extra manual effort such
to hire candidate,
2.2.1. Description
The proposed system facilitates the patients to fill up their details, and to
give a brief description of a Loan Management System they want to loan apply. This new
system is very helpful for customers who want to hire their loan management system through
this python. This Loan Management System project will enable the user to service a hospital.
The user specifies a type of loan management system Loan Id, Full Name, Mobile no, Aadhar
no, Address, Pincode, Amount of Loan, Number of years, Interest Rate, Monthly Payment,
Total Payment is a GUI based application which is very easy to understand and use. It uses
tkinter module for the GUI. Talking about the application, the user can easily loan apply, add,
update and delete, reset in the customer details.
2.2.2 Features
Real-Time Availability
Customer details
CHAPTER III
SYSTEM DESIGN AND DEVELOPMENT
3.1 FILE DESIGN
3.2 INPUT DESIGN
CODE DESIGN
Control redundancy
Ease of use
Data independence
Accuracy and integrity
Avoiding inordinate delays
Recovery form failure
Privacy and security
3.6 SYSTEM DEVELOPMENT
Modules List :
Login
Loan management system
Login :
Username
Password
Loan management system :
Loan Id, Full Name, Mobile no, Aadhar no, Address, Pincode, Amount
of Loan, Number of years, Interest Rate, Monthly Payment, Total
Payment and then add record, update, delete and reset in the loan
management system.
CHAPTER IV
Testing:
Unit Testing:
Integration Testing:
Functional Testing:
Verify that the system meets the specified functional requirements. Test
different use cases, including scheduling appointments, canceling appointments, and
viewing appointment details.
Ensure that the user interface is intuitive and user-friendly. Verify that all UI elements
are responsive and functional.
Performance Testing:
Test the system's performance under various conditions (e.g., high load).
Security Testing:
Assess the system's security measures to protect patient data. Test for
vulnerabilities and implement measures to secure the system.
Usability Testing:
Conduct usability tests to ensure the system is easy to use for both staff and
patients. Gather feedback on the user experience.
Compatibility Testing:
Ensure the system works correctly on different browsers and devices. Verify
compatibility with various operating systems.
Regression Testing:
Database Setup:
Create and configure the database for storing appointment data. Implement
data models to represent appointments, patients, and other relevant information.
Backend Development:
Frontend Development:
Develop the user interface for staff and patient interactions. Ensure a
responsive design that works well on various devices.
Integration:
Integrate the frontend and backend components. Verify that data is correctly
transferred between the user interface and the server.
Security Implementation:
Provide training sessions for hospital staff to use the new appointment system.
Create user manuals or documentation for reference.
Deployment:
Deploy the system to a staging environment for final testing. Once satisfied,
deploy to the production environment.
Gather feedback from users and stakeholders. Iterate on the system based on
feedback and continuously improve it.
CONCLUTION
CONCLUTION
BIBLIOGRAPHY
6.0. BIBLIOGRAPHY
WEBSITE
1. www.geeksforgeeks.org
2. www.w3schools.com
3, www.learnpython.org
CHAPTER VII
APPENDENCIES
APPENDENCIES
DFD INTRODUCTION
DFD is the abbreviation for Data Flow Diagram. The flow of data of a system or a
process is represented by DFD. It also gives insight into the inputs and outputs of each entity
and the process itself. DFD does not have control flow and no loops or decision rules are
present. Specific operations depending on the type of data can be explained by a flowchart.
Data Flow Diagram can be represented in several ways. The DFD belongs to structured-
analysis modeling tools. Data Flow diagrams are extremely popular because they help us to
visualize the major steps and data involved in software- system processes.
1. process
Input to output transformation in a system takes place because of process
function. The symbols of a process are rectangular with rounded corners, oval,
rectangle, or a circle. The process is named a short sentence, in one word or a
phrase to express its essence.
2. Data Flow
4. Terminator
The Terminator is an external entity that stands outside of the system and
communicates with the system. It can be, for example, organizations like banks,
groups of people like customers or different departments of the same organization,
which is not a part of the model system and is an external entity. Modeled systems
also communicate with terminators.
4. The name of the entity should be easy and understandable without any extra
assistance(like comments).
6. The DFD should maintain consistency across all the DFD levels.
7. A single DFD can have maximum processes up to nine and minimum three
processes.
Levels of DFD
Uses hierarchy to maintain transparency thus multilevel DFD’s can be created.
Levels of DFD are as follows:
7.6 0-level DFD
10. Data Flow Diagram represents detailed and well explained diagram of
system components.
Disadvantages of DFD
13. At times DFD can confuse the programmers regarding the system.
14. Data Flow Diagram takes a long time to be generated, and many times due
to this reasons analyst are denied permission to work on it.
DATA FLOW DIAGRAM
USER
B. TABLE STRUCTURE
Designing a table structure for a hospital appointment system would involve creating
tables to store relevant information.
1. Login:
Username
Password
2. Loan apply:
Loan Id
Full name
Mobile No
Aadhar No
Address
PinCode
Amount of Loan
Number of years
Interest Rate
Monthly Payment
Total Payment
Add record
Update
Delete
Reset
C. SAMPLE CODING
Bank.py
import sqlite3
class LoanManager:
self.root = root
self.root.geometry("1350x720+0+0")
title.pack(side=TOP, fill=X)
self.LoanId = StringVar()
self.name = StringVar()
self.mob = StringVar()
self.aadhar = StringVar()
self.add = StringVar()
self.pin = StringVar()
self.amount = StringVar()
self.year = StringVar()
self.rate = StringVar()
self.mpay = StringVar()
self.tpay = StringVar()
bd=3, textvariable=self.LoanId)
bd=3, textvariable=self.name)
bd=3, textvariable=self.mob)
bd=3, textvariable=self.aadhar)
bd=3, textvariable=self.add)
bd=3, textvariable=self.pin)
txt_pin.grid(row=5, column=1, pady=10, sticky="w")
), bd=3, textvariable=self.year)
), bd=3, textvariable=self.rate)
yscroll.pack(side=RIGHT, fill=Y)
yscroll.config(command=self.employee_table.yview)
self.employee_table.heading("name", text="Name")
self.employee_table['show'] = 'headings'
self.employee_table.column("empId", width=100)
self.employee_table.column("name", width=100)
self.employee_table.column("years", width=100)
self.employee_table.column("rate", width=100)
self.employee_table.column("Mpayment", width=110)
self.employee_table.column("Tpayment", width=100)
self.employee_table.column("mobile", width=100)
self.employee_table.pack(fill=BOTH, expand=1)
self.fetch_data()
self.employee_table.bind("<ButtonRelease-1>", self.get_cursor)
def total(self):
# Get the loan amount, interest rate, and number of years as integers
p = int(self.amount.get())
r = int(self.rate.get())
n = int(self.year.get())
t = (p*r*n*10)/100
m = (p+t)/(n*10)
# Set the monthly payment and total payment amounts in the corresponding
StringVar objects
self.mpay.set(str(round(m, 2)))
self.tpay.set(str(t+p))
def addrecord(self):
else:
self.total()
con = sqlite3.connect('loanDetails.db')
cur = con.cursor()
rows = cur.fetchall()
if row[0] == self.LoanId.get():
messagebox.showerror(
return
self.LoanId.get(),
self.name.get(),
self.mob.get(),
self.aadhar.get(),
self.add.get(),
self.pin.get(),
self.amount.get(),
self.year.get(),
self.rate.get(),
self.mpay.get(),
self.tpay.get(),
))
con.commit()
self.fetch_data()
con.close()
def fetch_data(self):
con = sqlite3.connect('loanDetails.db')
cur = con.cursor()
rows = cur.fetchall()
if len(rows) != 0:
self.employee_table.delete(*self.employee_table.get_children())
con.commit()
con.close()
def update(self):
if self.LoanId.get() == '':
else:
self.total()
con = sqlite3.connect('loanDetails.db')
cur = con.cursor()
self.name.get(),
self.mob.get(),
self.aadhar.get(),
self.add.get(),
self.pin.get(),
self.amount.get(),
self.year.get(),
self.rate.get(),
self.tpay.get(),
self.mpay.get(),
self.LoanId.get()
))
messagebox.showinfo(
con.commit()
con.close()
self.fetch_data()
self.reset()
def delete(self):
if self.LoanId.get() == '':
messagebox.showerror(
else:
con = sqlite3.connect('loanDetails.db')
cur = con.cursor()
(self.LoanId.get(),))
con.commit()
con.close()
self.fetch_data()
self.reset()
def reset(self):
self.LoanId.set('')
self.name.set('')
self.mob.set('')
self.aadhar.set('')
self.add.set('')
self.pin.set('')
self.amount.set('')
self.year.set('')
self.rate.set('')
self.mpay.set('')
self.tpay.set('')
content = self.employee_table.item(cursor_row)
row = content['values']
self.LoanId.set(row[0])
self.name.set(row[1])
self.year.set(row[2])
self.rate.set(row[3])
self.mpay.set(row[4])
self.tpay.set(row[5])
self.mob.set(row[6])
self.aadhar.set(row[7])
self.add.set(row[8])
self.pin.set(row[9])
self.amount.set(row[10])
class Login():
self.root = root
self.username = StringVar()
self.password = StringVar()
# Create a label and entry field for the username
Label(self.root, text="Username:").grid(
Entry(self.root, textvariable=self.username).grid(
Label(self.root, text="Password:").grid(
Entry(self.root, textvariable=self.password,
# Create a login button that calls the login method when clicked
def login(self):
# If the login is successful, destroy the current window and open a new
window
root.destroy()
nroot = Tk()
LoanManager(nroot)
else:
con = sqlite3.connect('loanDetails.db')
cur = con.cursor()
# Execute a SQL query to create a table named 'customer' if it doesn't already exist
root = Tk()
obj = Login(root)
# if u want to skip the login proess then uncomment the below line and comment
the above line
# obj = LoanManager(root)
root.mainloop()
D. SAMPLE INPUT
Bank.py:
E. SAMPLE OUTPUT
Future Enhancement
The system facilitates the patients to fill up their details, and to give a brief
description of a Loan Management System they want to loan apply. This new system is very
helpful for customers who want to hire their loan management system through this python.
This Loan Management System project will enable the user to service a loan amount. The
user specifies a type of loan management system Loan Id, Full Name, Mobile no, Aadhar no,
Address, Pincode, Amount of Loan, Number of years, Interest Rate, Monthly Payment, Total
Payment. After the patients will be finished display in the patients is a GUI based application
which is very easy to understand and use. It uses tkinter module for the GUI. Talking about
the application, the user can easily book, view, update and delete appointments.
Future:
Delete a record
The default username and password are “root” and “root”, you can
always change that later in the code.