Professional Documents
Culture Documents
B14 Mini Project
B14 Mini Project
B14 Mini Project
Mini Project submitted in partial fulfillment of the requirement for the award of the
degree of
BACHELOR OF TECHNOLOGY
IN
By
November-2023
i
Geethanjali College of Engineering & Technology
(UGC Autonomous)
(Affiliated to JNTUH, Approved by AICTE, New Delhi)
Cheeryal (V), Keesara(M), Medchal Dist.-501 301.
CERTIFICATE
This is to certify that the B. Tech Mini Project report entitled “Bank Loan
Automation System” is a bonafide work done by Arigela Pranay Kumar
(20R11A6701), Charan Sai Paritala (20R11A6708), Dindar Pranav Sai
(20R11A6713), in partial fulfillment of the requirement of the award for the degree
of Bachelor of Technology in “CSE (Data Science)” from Jawaharlal Nehru
Technological University, Hyderabad during the year 2023-2024.
External Examiner
ii
Geethanjali College of Engineering & Technology
(UGC Autonomous)
(Affiliated to JNTUH Approved by AICTE, New Delhi)
Cheeryal (V), Keesara(M), Medchal Dist.-501 301.
We, Arigela Pranay Kumar, Charan Sai Paritala, Dindar Pranav Sai bearing
Roll Nos. 20R11A6701, 20R11A6708, 20R11A6713, hereby declare that the project
report entitled “Bank Loan Automation System” is done under the guidance of Mr.
Audi Reddy Kayithi, Assistant Professor, Department of Computer Science and
Engineering (Cyber Security), Geethanjali College of Engineering and Technology, is
submitted in partial fulfillment of the requirements for the award of the degree of
Bachelor of Technology in CSE (Data Science).
Department of CSE(DS),
Geethanjali College of Engineering Technology,
Cheeryal.
iii
ACKNOWLEDGEMENT
Finally, we would like to express our heartfelt thanks to our parents who were
very supportive both financially and mentally and for their encouragement to
achieve our set goals.
iv
ABSTRACT
The enhancement in the banking sector lots of people are applying for bank loans
but the bank has its limited assets which it must grant to limited people only, so
finding out to whom the loan can be granted which will be a safer option for the
bank is a typical process. So, in this project, try to reduce this risk factor behind
selecting the safe person to save lots of bank efforts and assets. This is done by
mining the Big Data of the previous records of the people to whom the loan was
granted before and based on these records/experiences the machine was trained
using the machine learning model which gives the most accurate result, The main
objective of this project is to predict whether assigning the loan to a particular
person will be safe or not. Here Machine learning techniques are used to predict
many person who is reliable for a loan, based on the previous record of the person
to whom the loan amount is accredited before, The Four machine learning
algorithms like Support Vector Machine, Logistic Regression, Random Forest and
XGBoost are compared and the algorithm with highest accuracy is applied to
predict the loan approval of customers, Majority of the loans are provided by private
bank because the processing time much low, This is a problem because even though
the government banks offers a very low interest rate, may people are not preferring
government banks because it is very slow to update, Many people wait in the cases
of Home loan or Vehicle loans etc., But the same cannot be said about education
loans because if any rejection occurs the applicant is stuck in a foreign country
bound to pay high interest rates.
v
LIST OF FIGURES/DIAGRAMS/GRAPHS
11 Plagiarism Report 48
vi
TABLE OF CONTENTS
S. No Contents Page no
Abstract v
List of Figures vi
1. Introduction……………………………………………………………1
1.2 Objective 1
2. System Analysis……………………………………………………….2-7
2.3.1 Details 4
2.3.3 Safety 4
2.3.4 Ethics 4
2.3.5 Cost 5
2.3.6 Type 5
2.4 Scope of the Project 5
vii
3. Literature Overview……………………………………………....8-13
4. System Design…………………………………………………….14-20
5. Implementation………………………………………………….21-33
6. Testing……………………………………………………………34-35
6.1 Testing 34
7. Output Screens…………………………………………………..36-39
8. Conclusion………………………………………………………...40
8.1 Conclusion 40
9. Bibliography…………………………………………………….41-42
11 Plagiarism Report...………………………………………………48
ix
1. INTRODUCTION
The main objective of banks is to invest their assets in safe customers. Up to now many
banks are processing loans after regress process of verification and validation. But till
now no bank can give surety that the customer who is chosen for loan application is safe
or not. So, to avoid this situation we introduced a system for the approval of bank loans
known as Loan Prediction System Using Python.
1.2 Objective
• To make the process of loan approval easy using fewer resources and human
resources.
• To make a web-app which can be accessible by anyone on the internet without
downloading any desktop software.
• To make the prediction model which will make accurate predictions and help
banks to make approving the loans very easy.
1
2. SYSTEM ANALYSIS
2.1 Existing System
The existing system for bank loan processing involves a manual and time-consuming
process that requires significant human effort and introduces the possibility of errors.
Loan applications are typically reviewed by bank employees who manually assess the
applicant's creditworthiness, financial history, and other relevant factors before
deciding. This traditional approach often leads to delays in loan approvals, resulting in
customer dissatisfaction and lost business opportunities.
The existing system typically involves a human loan officer manually reviewing a
loan application, collecting, and verifying the applicant's information, and then deciding
on whether to approve or deny the loan. This process can be time-consuming and error
prone, Bank employees check the details of applicants manually and give the loan to
eligible applicants. Checking the details of all applicants takes a lot of time. The present
system involves an employee checking the eligibility criteria of every application. This
process is tedious and ineffective. The result of this is a lot of applications take more
time for approval.
2
2.2 Proposed System
The system will incorporate various components to automate and enhance various
stages of the loan approval process. Initially, customer data will be collected and
analyzed, including financial history, credit scores, income statements, and employment
records. Machine learning algorithms will then assess this information to evaluate the
applicant's creditworthiness and determine the likelihood of repayment. By utilizing
historical loan data, the system will continuously learn and adapt its decision-making
capabilities.
To deal with the problem, we developed automatic loan prediction using machine
learning techniques. We will train the machine with the previous dataset. so, the
machine can analyze and understand the process. Then the machine will check for
eligible applicants and give us results.
3
2.3 Feasibility Study
2.3.1 Details
The feasibility study for this project involved a thorough examination of the market
demand for a loan approval prediction system in the banking sector. Data availability
and accessibility were assessed, and it was determined that a substantial amount of
historical loan data could be obtained for analysis. Technical resources, including
computing power and software tools, were identified as readily available.
2.3.3 Safety
Ensuring data safety and privacy is of paramount importance in this project. Stringent
security measures and data encryption are implemented to protect sensitive financial
data. Access controls and authorization mechanisms are in place to prevent
unauthorized access to customer information.
2.3.4 Ethics
Ethical considerations are integral to this project. Measures are taken to ensure fairness
and transparency in the loan approval process. Efforts are made to reduce bias in
machine learning models and to comply with privacy regulations, respecting customers'
personal information.
4
2.3.5 Cost
The project's costs include expenses for data acquisition, hardware infrastructure,
software licenses, and personnel. The initial costs for setting up the project and
acquiring necessary resources have been budgeted, and ongoing operational costs are
monitored and managed.
2.3.6 Type
This feasibility study primarily falls under a technical feasibility study, as it evaluates
the technical requirements and resources needed to develop and maintain the loan
approval prediction system.
5
2.5 Modules Description
The project consists of the following modules:
1. Data Preprocessing: Cleaning and transforming raw loan data for analysis.
2. Feature Engineering: Creating relevant features and variables for machine
learning.
3. Model Training: Employing Support Vector Machine, Logistic Regression,
Random Forest, and XGBoost algorithms to train predictive models.
4. Model Evaluation: Assessing the models' accuracy and performance using
metrics like accuracy, precision, recall, and F1-score.
5. Loan Approval Prediction: Using the best-performing model to predict
whether an applicant is reliable for a loan.
6. Loan Approval From: A front end app that collects all the user data and sends
it to the flask Backend and generates document
7. EMI Calculator: A simple JavaScript implementation to calculate monthly
Emi of payments by the end user
6
2.6 System Configuration
Software requirements
Minimum requirement of software is:
• Operating system: Windows 7/higher, Mac
• Designing tool: Visual Studio Code
• Any web Browser (Google chrome, safari, Microsoft edge)
• Front end: HTML, Cascading Style Sheets, JavaScript
• Deployment: GitHub
Hardware Requirements
Minimum requirement of hardware is:
• RAM: 4GB
• Hard Disk: 50 GB
• Processor: Core i5 or more
7
3.LITERATURE OVERVIEW
Abstract - With the increase in the banking sector many people are applying for loans in
banks. All these loans are not approvable. The main income of bank assets comes from
gain earned from loans. The main objective of banks is to invest their assets in safe
customers. Today many banks approve loans after many processes of verification and
validation but still there is no surety that the selected customer is safe or not. Therefore,
it is important to apply various techniques in the banking sector for selecting a customer
who pays loan on time. In this report we use random forest algorithm for the
classification of data. Random forests algorithm builds a model from trained dataset and
this model is applied on test data and we get the required output.
8
International Journal of Engineering and Management Research, Volume-13,
Issue-4 (August 2023) K N Adithya G
Date Written: August 4, 2023
Due to significant technological advancements, people's needs have expanded. As a
result, there have been more requests for loan approval in the banking sector. A few
qualities are taken into consideration when choosing a candidate for the loan approval in
order to, determine the loan's status. Banks face a major challenge; when it, comes to
assessing loan applications and lowering the risks associated with potential borrower
defaults This tactic can increase the accuracy with which qualified candidates are
selected from a pool of applicants. As a result, this method can be used to address the
problems with loan approval processes outlined above. Both the loan applicants and the
bank employees profit from the strategy's dramatic reduction in sanctioning time.
Because of the banking industry's expansion, more people were applying for loans at
banks. In order to predict the accuracy of loan approval status for an applied person, we
used four different algorithms namely Random Forest, Naive Bayes, Decision Tree, and
KNN. By using these, we obtained better accuracy of 83.73% with the Naïve Bayes
algorithm as the best one, Algorithms Used are
Random Forest, A component of supervised learning technique is Random Forest(RF).
It will be used for ML problems involving both classification and regression. It is, based
on concept of ensemble learning, which is technique for, integrating many classifiers, to
handle tough problems and develops performance of the model.
It took shorter time for training than other algorithms. It functions well and makes
accurate predictions of the outcome even with the massive dataset.
Decision Tree, The prediction model known as decision tree(DT) uses, flowchart,
structure for base decisions on incoming data. Data branches are built, and the results
are placed at nodes of leaves. Decision trees were used to provide models that are
simple to comprehend to regression, and classification problems. In decision support,
decisions, and their potential outcomes— including chance occurrences, resource costs,
and utility—are represented by hierarchical models known as decision trees.
9
Golak Bihari Rath, Debasish Das & Vishwaraja Acharya
As the needs of people are increasing, the demand for loans in banks is also frequently
getting higher every day. Usually, banks process the loan of any applicant after the
verification and checking of its eligibility which is a tough and time-taking process. In
some cases, some applicants default in payment resulting in loss of capital in banks.
Machine learning approach would be an ideal solution to reduce human efforts and
effective decision making in the loan approval process by implementation of machine
learning tools using classification algorithms to predict the deserving applicants for loan
approval.
Logistic Regression
It is a statistical-based algorithm that determines the probability of an event as a
function of variables using classification function. The classification function calculates
the statistics for a logistic response function. It shows the relationship between the
dependent variable and independent variables
Decision Tree
Decision tree uses the tree representation to produce a model with the most relevant
predictor attributes. Attribute with the highest-ranking attribute of the dataset is placed
as the root node, and other attributes are placed to the leaf node. At each node, a
decision is made where leaf nodes give us the final result. The tree building is continued
until we get an outcome in the internal nodes. The overall results are calculated in the
form of decisions, and the final decisions constitute our category.
We find that the accuracy of the logistic regression model has a prediction accuracy of
nearly 80% which is more than the performance of other models. Further, we can use
this model as a prediction model to test with the data of the applicants. The model can
provide fast, reliable approach in decision making which can be an alternative to the
current procedures adopted by banks for processing loan approval of an applicant.We
can change the prediction variables used in the training of the model for gaining better
accuracy and performance of the model.
10
K.S. Naik NMIMS MPSTME, Mumbai, India Guided by Professor
Dr. Lakshmi Gorty, NMIMS MPSTME, Mumbai, India October 6, 2021
Module Description
1) Logistic Regression Classifier Logistic Regression is heavily used in initial credit
scoring studies. It is easy to implement, and has a well-established history with credit
card delinquency. However, it has limited power when dealing with non-linear data,
which makes it unsuitable for complex default detection problems. Logistic Regression
model is known to overfit the training data, and its overfitting behavior becomes even
more prominent with an increase in training data.
2) Support Vector Machine Classifier Support Vector Machine (SVM) is a linear model
for classification. It creates a line or a hyper-plane which separates the data into classes.
As compared to logistic regression, which focuses on maximizing the probability of two
classes, SVM dwells on maximizing the separation of these classes using the hyper-
plane and in turn improves the classification accuracy (i.e., minimizing the
generalization error). In this model, two hyper-parameters are used, namely: • Gamma:
Determines the curvature needed in a decision boundary (i.e., hyper-plane). A low value
indicates that a lot of points can be grouped together and vice versa. • C: Controls the
margin of hyper-plane with a view to classifying training points correctly. A greater
value of C indicates more correct training points.
11
Dr.C K Gomathy, Ms.Charulatha,Mr.Akash ,Ms.Sowjanya
Impact Factor value: 7.529
ISO 9001:2008 Certified Journal
Banks are making a major part of profits through loans. Though lot of people are
applying for loans. It’s hard to select the genuine applicant, who will repay the loan.
While doing the process manually, a lot of misconceptions may happen to select the
genuine applicant. Therefore, we are developing a loan prediction system using machine
learning, so the system automatically selects eligible candidates. This is helpful to both
bank staff and applicants. The time period for the sanction of loan will be drastically
reduced.
12
Predicting the outcomes:
Using the decision tree algorithm, the outcomes of all applicants can be stored in any
file.
Algorithm:
1. Import all the required python modules
2. Import the database for both TESTING and TRAINING.
3. Check any NULLVALUES are exists
4. If NULLVALUES exits, fill the table with corresponding coding
5. Exploratory Data Analysis for all ATTRIBUTES from the table
6. Plot all graphs using MATPLOTLIB module
7. Build the DECISIONTREE MODEL for the coding
8. Send that output to CSV FILE
13
4. SYSTEM DESIGN
The Bank loan automation system is designed in such as way that initially the user
enters all the required fields like name, email address, Cibil Score, Income etc. all this
user information are then sent into a machine learning model which is trained on
classified datasets, If the user is eligible it saves the information into the database and
the information is transferred to the backend which does the job of sending the provided
information in the form of document to the provided Email address, The application
also has a administrative module which is password protected which provides all the
information stored in the database right in the application.
14
4.1.1 Module Description
The project consists of the following modules:
• Loan Approval Form: Using the best-performing model to predict whether an
applicant is reliable for a loan the model user SVM algorithm to predict eligible
or not if eligible the data is sent to backend which user Python and JavaScript to
make a document of the user data and send the document as a email, Also all the
eligible applicants data in stored in a database made up of SQLite, This database
cannot be accessed by the user but only can be viewed by the administrator
• Administrative login page this page has a basic login page which when
successful will load all the successful applications details this module uses flask
and SQL Alchemy to retrieve all the data form the SQLite database and render it
using Flasks Jinga Templating Syntax, This module is password protected and
can only be accessed by a POST request
• Machine Learning Module: In this module we tested all the best performing
modules like SVM, XGBoost, Logistic Regression and Decision Tree the
accuracy of all the modules is compared and the best module is selected based
on accuracy which is SVM
• EMI Calculator: A simple JavaScript implementation to calculate monthly Emi
of payments by the end user it assumes a standard EMI rates of 10 percent per
Annum
15
4.2 System Design
A collection of use cases, actors, and their relationships are shown in use case diagrams.
They represent a system's use case perspective. A use case represents a certain system
functionality. The relationships between the functionalities and their internal/external
controllers are therefore described using a use case diagram.
In our system there are 3 main actors User, System and Admin the User has to Open
the Application and input all the necessary fields such as Income, Cibil Score, Email id
etc. after entering the data the ML model gives the results based on the provided data,
The task of preparing the document, generating applicant number and saving the data to
the database is done by the system, The administrative module/Actor can view all the
data stored in the database and a copy of the document is also sent to the Administrator.
16
4.2.2 Class Diagram
Class diagram is basically a graphical representation of the static view of the system and
represents different aspects of the application.
So, A collection of class diagrams represent the whole system. The name of the class
diagram should be meaningful to describe the aspect of the system. Each element and
their relationships should be identified in advance Responsibility (attributes and
methods) of each class should be clearly identified for each class minimum number of
properties should be specified and because, unnecessary properties will make the
diagram complicated. Use notes whenever required to describe some aspect of the
diagram and at the end of the drawing it should be understandable to the
developer/coder. Finally, before making the final version, the diagram should be drawn
on plain paper and reworked as many times as possible to make it correct.
17
4.2.3 Sequence Diagram
Sequence diagrams model the flow of logic within your system in a visual manner,
enabling you both to document and validate your logic, and are commonly used for
both analysis and design purposes. Sequence diagrams are the most popular UML
artifact for dynamic modeling, which focuses on identifying the behavior within your
system. Other dynamic modeling techniques include activity diagramming,
communication diagramming, timing diagramming, and interaction overview
diagramming. Sequence diagrams, along with class diagrams and physical data models
are in my opinion the most important design-level models for modern business
application development.
18
4.2.4 State Chart Diagram
In this diagram we can see how the data is transferred from state to state this data is
saved in the database where it can easily be accessed, State diagram helps to understand
all the different steps involved in the project and the data flow in the project.
19
4.2.5 Data Flow Diagram
A data flow diagram (DFD) maps out the flow of information for any process or system.
It uses defined symbols like rectangles, circles and arrows, plus short text labels, to
show data inputs, outputs, storage points and the routes between each destination. Data
flowcharts can range from simple, even hand-drawn process overviews, to in-depth,
multi-level DFDs that dig progressively deeper into how the data is handled. They can
be used to analyse an existing system or model a new one. Like all the best diagrams
and charts, a DFD can often visually “say” things that would be hard to explain in
words, and they work for both technical and nontechnical audiences, from developer to
CEO. That’s why DFDs remain so popular after all these years. While they work well
for data flow software and systems, they are less applicable nowadays to visualizing
interactive, real-time or database-oriented software or systems.
In our project Data flow diagram helps us to understand how different modules are
connected to each other and how Data is shared between all the modules.
20
5. IMPLEMENTATION
5.1 Implementation
There are many steps in building the project so we divided them into different phases so
that the project can involve module separation and high productivity.
1. Choosing the required model after testing different models here we choose SVM
as it has an accuracy of around 88 percent.
2. User Authentication: In this step we verify admin panel, and all the successful
applications are displayed.
3. Sending Document this step is done via Google app Script, send mail function is
used to update and send the document.
4. Flask Web application in this module we check how to implement a front-end
app along with a Machine Learning model.
21
Fig 5.1.1 Identifying important attributes
22
User Authentication
1. In our Flask application, we set up a secret key. This key is used for securely
signing the session cookie.
2. Creating a route for handling login requests, typically using the HTTP POST
method. This route will be responsible for accepting the user credentials (e.g.,
username and password) from a form.
3. In the login route, we check the provided username and password against the
predefined credentials for your single user. If the credentials match, consider the
user authenticated.
4. Flask provides a session object that allows you to persist user information across
requests. After authenticating the user, store a session variable indicating that the
user is logged in.
5. There are specific routes or views that should only be accessible by
authenticated users, check the user's authentication status before allowing
access. Flask provides decorators like @login_required for this purpose.
Sending Document
We use Google Apps Script, To access the Script Editor, which is available in Google
Workspace applications. Open the application (e.g., Google Docs) to access the Script
Editor, In the Script Editor, create a new script.
Writing a function that will be responsible for sending the email. In this function,
you'll specify the recipient's email address, the subject of the email, the body of the
email, and attach the document to the email.
To send an email, we'll need to access the Gmail service using the GmailApp class in
Google Apps Script. This class provides methods for sending emails, We use Google
Apps Script to access and retrieve the document you want to send. You may need to
specify the document's ID or use other methods to identify and fetch the document.
23
Compose the email by specifying the recipient's email address, subject, and body.
Attach the document to the email using the appropriate method provided by the
GmailApp class, Use the sendEmail() method provided by the GmailApp class to send
the email. Ensure that you have the necessary permissions, and that the Gmail service is
properly configured.
Flask Application
All the above mentioned modules are combined together with Flask, Flask is a web
framework for python, In this application we used the flask built in SQLite database to
store all the user data, Its routing feature are useful to implement the user authentication
as discussed above, It can be used to send post request to our Google App Script code
so that it can have 2 different backends and error checking is present in both backends,
The machine learning model could be easily loaded in the flask application using Load
function, It uses Jinja templating to use reusability and python like features which was
helpful in loading and viewing the database right in front end with out external services,
It also helps in Data manipulation Unique user id generation, Flask offers the
convenience to load different modules in a single application and has strong library
support.
24
5.2 Sample code
App.py
from flask import Flask, render_template, request, redirect
from flask_sqlalchemy import SQLAlchemy
import joblib
import numpy as np
import uuid
import requests
# Initialize
app = Flask(__name__)
# SQLite database
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///loan_applications.db'
# SQLAlchemy instance
db = SQLAlchemy(app)
25
self.application_number = application_number
self.name = name
self.email = email
self.gender = gender
self.married = married
self.dependents= dependents
self.education=education
self.self_employed=self_employed
self.applicant_income=applicat_income
self.coapplicant_income=coapplicant_income
self.loan_amount=loan_amount
self.loan_term=loan_term
self.credit_history=credit_history
self.property_area=property_area
@app.route('/form')
def data_submission():
return render_template('form.html')
@app.route('/emi')
def emi_calc():
return render_template('emi_calculator.html')
26
loan_term = float(request.form['loan_term'])
credit_history = request.form['credit_history']
property_area = request.form['property_area']
print(name)
print(email)
if gender == 'Male':
g_val=1
else:
g_val=0
if married == 'Yes':
mar_val=1
else:
mar_val=0
if self_employed == 'Yes':
se_val=1
else:
se_val=0
if education == 'Graduate':
e_val=1
else:
e_val=0
if property_area == 'Rural':
pa_val=0
elif property_area == 'Semi Urban':
pa_val=1
else:
pa_val=2
if credit_history=='Yes':
ch_val=1.0
else:
ch_val=0.0
27
input_data_reshaped = input_data_as_numpy_array.reshape(1, -1) #
Reshape the array
prediction = model.predict(input_data_reshaped)
if prediction[0] == 0:
return render_template('success.html', prediction="Rejected",
name=name)
else:
# Generate a UUID for the loan application
application_number = str(uuid.uuid4())
data = {
'application_number': application_number,
'name': name,
'email': email,
'gender': gender,
'married': married,
'dependents': dependents,
'education': education,
'self_employed': self_employed,
'applicant_income': applicant_income,
'coapplicant_income': coapplicant_income,
'loan_amount': loan_amount,
'loan_term': loan_term,
'credit_history': credit_history
}
# print(data)
response =
requests.post('https://script.google.com/macros/s/zzCfiQRqdSQicg-
Q_2VretPhkitaA59loqYsWeaYIQzMAiQ-QD6ZV8t_mMvK_wq6lLrA/exec',data=data)
except Exception as e:
28
error_message = "An error occurred while processing your
request."
# debugging purposes
print("Error:", str(e))
return render_template('error.html', error_message=error_message)
# Save the loan application data to the database and return the
application number
def
save_loan_application(application_number,name,email,gender,married,depend
ents,education,self_employed,applicant_income,coapplicant_income,loan_amo
unt,loan_term,credit_history,property_area):
return application_number
29
@app.route('/data', methods=['GET','POST'])
def data():
loan_applications = LoanApplication.query.all()
return render_template('applications.html',
loan_applications=loan_applications)
# 404 errors
@app.errorhandler(404)
def not_found_error(error):
return render_template('error.html', error_message='Page not found'),
404
# 500 errors
@app.errorhandler(500)
def internal_error(error):
# debugging purposes
print("Error:", str(error))
return render_template('error.html', error_message='Internal server
error'), 500
30
App.gs
function sendEmail(data) {
var recipient = data.email;
var subject = 'Prediction Result';
var templateDocId = '1ofA0aE_0HW20EguMsNR4'; // Replace with your
template document's ID
var folderId = '1E_Z-x_KvHYdaFuczJ'; // Replace with the folder's ID
31
console.log('PDF Blob: ' + pdfBlob);
32
</html>
`;
// Send the email with HTML content and attach the PDF
MailApp.sendEmail({
to: recipient,
subject: subject,
htmlBody: emailBody,
attachments: [pdfBlob]
});
33
6. TESTING
6.1 Testing
The purpose of testing is to discover errors. Testing is a process of trying to discover every
conceivable fault or weakness in a work product. It provides a way to check the functionality of
components, sub-assemblies, assemblies and/or a finished product. It is the process of
exercising software with the intent of ensuring that the software system meets its requirements
and user expectations and does not fail in an unacceptable manner. Software testing is an
important element of software quality assurance and represents the ultimate review of
specification, design and coding. The increasing feasibility of software as a system and the cost
associated with the software failures are motivated forces for well-planned through testing.
34
Test Text Case Step to Expected Actual Result Result
Case ID Description Execute Result
Check for Call the Loaded Libraries Pass
01
Libraries libraries Libraries Loaded
02 Path Finding Dataset to Dataset Dataset Pass
Console Loaded Loaded
03 Loading Model Initialized Loaded Loaded Model Pass
training Model without errors
model and without
load it into errors
ON
04 Loading Flask Run Flask run Generate Generated Pass
in command URL for URL for
prompt application application
05 Loading Fill Data viewed Data viewed Pass
Dataset Application successfully Successfully in
with testing in Admin Admin Module
Information Module
06 Filling Fill the Error, there Error, there is Pass
Incorrect data Application is an error in an error in
with wrong provided provided
info information information
please check please check
07 Sending Submit Mail sent Mail sent Pass
Document correct data successfully Successfully
08 Sending Send POST Success Success Pass
Request request to the
API
35
7. OUTPUT SCREENS
Application Page
36
Result Screen
37
Emi Calculator
38
Applications Database
39
8. CONCLUSION
8.1 Conclusion
The analytical process started from data cleaning and processing, Missing value
imputation with mice package, then exploratory analysis and finally model building and
evaluation. The best accuracy on public test set is 0.811. This brings some of the
following insights into approval. Applicants with Credit history not passing fail to get
approved, probably because they have a probability of not paying back. Most of the
Time, Applicants with high income sanctioning low amount is to more likely get
approved which make sense, more likely to pay back their loans. Some basic
characteristics of gender and marital status seem not to be taken into consideration by
the company.
The software works perfectly and can be used for all banking requirements. This system
can be easily uploaded to any operating system. Since technology is moving towards
online, this system has more scope for the upcoming days. This system is more secure
and dependable. Since we have used Random Forest Algorithm the system returns
accurate results. There is no issue if there are many nos of customers applying for loan.
This system accepts data for N no. of customers. In future we can add more algorithms
to this system to get more accurate results.
The analytical process started from data cleaning and processing, missing value,
exploratory analysis and finally model building and evaluation. The best accuracy on
public test set is higher accuracy score will be found out. This application can help to
find the Prediction of Bank Loan Approval.
40
9. BIBLIOGRAPHY
41
9.2 Websites References
1. https://www.geeksforgeeks.org/flask-tutorial/
2. https://www.scnsoft.com/lending/loan-processing-
automation#:~:text=Automated%20loan%20processing%20software%20relies,e
rror%2Dprone%20manual%20le nding%20tasks.
3. https://www.sqlite.org/index.html
4. https://flask-sqlalchemy.palletsprojects.com/en/3.0.x/
5. https://jinja.palletsprojects.com/en/3.1.x/
6. https://www.irjet.net/archives/V8/i4/IRJET-V8I4785.pdf
7. https://www.irjet.net/archives/V8/i1/IRJET-V8I1279.pdf
42
10 . APPENDICES
FLASK
Python-based Flask is a microweb framework. Because it doesn't require any. specific
tools or libraries, it is categorized as a microframework. It lacks any components. where
pre-existing third-party libraries already provide common functions, such as a database
abstraction layer, form validation, or other components. But Flask allows for extensions
that may be used to add application functionalities just like they were built into. 4344
the core of Flask. There are extensions for object relational mappers, form validation,
upload handling, several open authentication protocols, and a number of utilities
associated with popular frameworks.
HTML
The Hypertext Markup Language or HTML is the standard markup language for
documents designed to be displayed in a web browser. It defines the meaning and
structure of web content. It is often assisted by technologies such as Cascading Style
Sheets (CSS) and scripting languages such as JavaScript.
Web browsers receive HTML documents from a web server or from local storage
and render the documents into multimedia web pages. HTML describes the structure of
a web page semantically and originally included cues for its appearance.
HTML elements are the building blocks of HTML pages. With HTML constructs,
images and other objects such as interactive forms may be embedded into the rendered
page. HTML provides a means to create structured documents by denoting structural
semantics for text such as headings, paragraphs, lists, links, quotes, and other items.
HTML elements are delineated by tags, written using angle brackets.
43
AppScript
Google Apps Script is a scripting platform developed by Google for light-weight
application development in the Google Workspace platform. Google Apps Script was
initially developed by Mike Harm as a side project while working as a developer on
Google Sheets.
Google Apps Script was first publicly announced in May 2009 when a beta testing
program was announced by Jonathan Rochelle, then Product Manager for Google Docs,
In August 2009 Google Apps Script was subsequently made available to all Google
Apps Premier and Education Edition customers, It is based on JavaScript 1.6, but also
includes some portions of 1.7 and 1.8 and a subset of the ECMAScript 5 API, Apps
Script projects run server-side on Google's infrastructure. According to Google, Apps
Script It provides easy ways to automate tasks across Google products and third-party
services.
44
10.2 Methodologies used
Agile Methodology
Agile is an iterative and incremental software development methodology that
emphasizes flexibility, collaboration, and customer satisfaction. It prioritizes delivering
a working product in small, manageable increments, allowing for continuous feedback
and adaptation throughout the development process. The Agile Manifesto, created in
2001 by a group of software developers, outlines the core values and principles of the
Agile approach.
Key Principles and Concepts:
• Individuals and Interactions Over Processes and Tools:
• Agile values effective communication and collaboration among team members.
It emphasizes the importance of people working together to achieve project
goals.
• Working Software Over Comprehensive Documentation:
• While documentation is essential, Agile places a higher value on delivering
functional software. The focus is on providing tangible value to the customer in
each development iteration.
• Responding to Change Over Following a Plan:
• Agile recognizes that requirements are likely to change, and it embraces changes
even late in the development process. The ability to respond to evolving
requirements is a crucial aspect of Agile methodologies.
45
Key Principles and Concepts:
• FDD organizes the development process around features, which are small,
client-valued functions. Each feature is designed, implemented, and tested
independently.
• FDD places a strong emphasis on domain modeling to understand the business
domain and represent it in a way that can be easily translated into software. The
model is continuously refined as features are developed.
• FDD follows an iterative and incremental approach. The development is done in
short iterations, and after each iteration, a set of features is delivered to the
client. This incremental delivery helps manage complexity and allows for
flexibility in responding to changing requirements.
• The development process begins with creating a comprehensive feature list
based on the project requirements. Features are then prioritized, and
development efforts are focused on implementing and delivering these features.
• FDD introduces the role of the Chief Programmer, who is responsible for
overseeing the overall technical integrity of the project. The Chief Programmer
works closely with the team to ensure that coding standards and best practices
are followed.
46
10.3 Testing Methods used
1. Unit testing
Unit testing is a software testing method where individual components or functions of a
software application are tested in isolation. The goal is to verify that each unit of the
software performs as designed. A unit in this context is the smallest testable part of an
application, typically a function, method, or procedure.
Key Concepts:
• Isolation: Unit tests are designed to be isolated, meaning they focus on testing a
specific unit without relying on external dependencies. Mock objects or stubs
may be used to simulate interactions with external components.
• Automated: Unit tests are often automated to ensure efficiency and repeatability.
Automated testing frameworks, such as JUnit for Java or pytest for Python, are
commonly used for writing and executing unit tests.
• Fast Execution: Unit tests should be quick to execute, allowing developers to run
them frequently during the development process. Fast execution enables rapid
feedback on code changes.
2. Integration Testing
Integration testing is a software testing method that focuses on verifying the interactions
between different components or systems within an application. The goal is to ensure
that these components work together as intended and that integrated units of the
software function correctly.
Key Concepts:
• Interaction Testing: Integration testing checks for proper communication and
data flow between different parts of the system, such as modules, classes, or
services.
• Top-Down or Bottom-Up Approaches: Integration testing can be performed
using a top-down or bottom-up approach. Top-down testing starts with higher-
level modules, while bottom-up testing begins with lower-level units.
47
11. PLAGIARISM REPORT
48