Type Here
Type Here
Type Here
TABLE OF CONTENTS
2. Estimations .................................................................................................. 13
2.1 Function Points ................................................................................................. 13
2.1 Efforts ............................................................................................................... 14
5.Design .......................................................................................................... 17
5.1 Architectural Design.......................................................................................... 17
5.2 Data Design ....................................................................................................... 18
6.Coding ......................................................................................................... 19
7.1 Flow graph ........................................................................................................ 25
7.2 Calculating cyclomatic complexity .................................................................... 28
7.3 Test Cases ......................................................................................................... 29
8. References................................................................................................... 29
[Type here]
Problem Statement
The Cibil system proposes an open platform for applying loan. Cibil
system is also known as “Online Loan Management System”. It facilitates
the user to get loans from their desired banks based on their Credit Score,
where customers are provided with their credit details when they link their
PAN card, upon signing or logging into the portal. Based on these details,
credit score is generated having a value between 300 and 900. If score is
greater than 700, then customer is eligible for loan else not.
A Cibil System project to keep track of people’s credit score and dues. Here
the customer can view their status and credit score and also apply for
improvement of their credit Score.
PROCESS MODEL
Waterfall Model
In Waterfall model, A schedule can be set with deadlines for each stage of
development and a product can proceed through the development process model
phases one by one.
Development moves from concept, through design, implementation, testing,
installation, troubleshooting, and ends up at operation and maintenance. Each phase
of development proceeds in strict order.
We choose waterfall model because of the following reason:
It is simple and easier to understand and use.
All requirements are well stated and understood.
Phases are processed and completed one at a time in this model.
The requirement are fixed and work can proceed to completion in a linear
manner.
Easy to manage due to the rigidity of the model. Each phase has specific
deliverables and a review process.
Works well for smaller projects where requirements are very well
understood.
Easy to arrange tasks.
• Process and results are well documented.
[Type here]
1.3.1 User Registration/ Login: Users have to get themselves registered into
the system to create login.
1.3.2 User details entry: User provides input data about himself into the
system.
[Type here]
1.3.3 Credit Score: The system calculates the credit score for every
individual by inspecting the data for respective individual.
Data Description
Add Details [first Name + last Name + Email + username + password]
Pending Loan Dues [Bank Account details + Loan Details + Past due + Overdue ]
2. Estimations
2. Data Communication 3
3. Distributed Processing 4
4. Performance Critical 3
∑(Fi) 42
Value Adjusting Factor [0.65 + 0.01*∑(Fi)] 1.07
[Type here]
∑(Fi)=42
FP=total count * [0.65 + 0.01 * (∑(Fi) ]
FP=57*(1.07)
FP=60.99=61
2.1 Efforts
The average productivity for this kind of system =6.1 FP/m
Considering the labour rate = ₹1,20,000
Cost per FP = ₹60,000
Total effort=FP(calculated)/Average Productivity
=61/6.1
=10 person/month
Total cost for the project = total effort*labour rate
= 10*1,20,000= ₹ 12,00,000
[Type here]
3. Risk Management
4. Time Line
[Type here]
5.Design
User
username VARCHAR(20)
firstname VARCHAR(10)
lastname VARCHAR(10)
email VARCHAR(30)
password VARCHAR(20)
Account
Account_holdername VARCHAR(20)
Account_no INT
No_of_Pending_loans INT
No_of_Credit_cards INT
Phone INT
Pancard_no CHAR(10)
Cibil Report
Cibil_score INT
firstname VARCHAR(10)
lastname VARCHAR(10)
Remarks VARCHAR(50)
[Type here]
6.Coding
HTML CODE
<!DOCTYPE html>
<html>
<head>
<title>Cibil System</title>
<link rel = "stylesheet" type = "text/css" href = "signup.css">
</head>
<body >
<br/>
<center>
<u><h1>Create your account</h1></center></u>
<form name="form1" method="post" action="sign.php"
onsubmit="validateEmail(this.email)">
<div class="container">
<center>
<label for="uname"><b>Username       </b></label>
<input type="text" placeholder="Username" name="uname" required><br/>
</form>
<script src="validate_functions.js"></script>
</body>
</html>
PHP CODE
Sign.php
<?php
$dbc = mysqli_connect('localhost', 'root', 'sharma@123','cibil') or die('Error
connecting to server');
$a=$_POST["uname"];
$b=$_POST["psw"];
$c=$_POST["fname"];
$d=$_POST["lname"];
$e=$_POST["email"];
$query = "SELECT * FROM user WHERE uname= '$a' AND password = '$b'";
[Type here]
$result = mysqli_query($dbc,$query);
If(mysqli_num_rows($result>0)
{
$row=mysqli_fetch_assoc($result);
If($a==$row[‘uname’])
{
Echo”Username already exists”;
}
elseif($e==$row[‘email’])
{
Echo”Email already exists”;
}
Else{
Echo”sign up successful”;
}
}
else(mysqli_num_rows($result==0)
{
if (!preg_match("/^[a-zA-Z0-9._-]+@[a-zA-Z0-9-]+.[a-zA-Z.]{2,5}$/", $e))
{
header('Location: signup.html');
exit;
}
else
{
$query="INSERT INTO user VALUES('$a','$b','$c','$d','$e')";
[Type here]
Cibil.php
<?php
$dbc = mysqli_connect('localhost', 'root', 'sharma@123','cibil') or die('Error
connecting to server');
$username = $_POST['uname'];
$userpassword = $_POST['psw'];
$query = "SELECT uname,password FROM user WHERE uname= '$username' AND
password = '$userpassword'";
$result = mysqli_query($dbc,$query);
$c=mysqli_num_rows($result);
if($c==1)
{
echo"login successful";
}
else
{
echo("Please Enter Correct Username and Password ...");
}
?>
[Type here]
Javascript
function validateEmail(inputText)
{
var mailformat = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
if(inputText.value.match(mailformat))
{ alert("Sign-Up\nSuccessful");
return true; }
else{
alert("You have entered an invalid email address!");
return false; }
}
Screenshots
[Type here]
[Type here]
7. Testing
7.1 Flow graph
8 elseif($e==$row[‘email’])
{
9 Echo”Email already exists”;
}
[Type here]
10 Else{
11 Echo”sign up successful”;
}
}
12 else(mysqli_num_rows($result==0)
{
13 if (!preg_match("/^[a-zA-Z0-9._-]+@[a-zA-Z0-9-]+.[a-zA- Z.]{2,5}$/", $e))
{
14 header('Location: signup.html');
exit;
}
15 else
{
P=5
E=21
N=17
R=6
Where P=No.of Predicate nodes
E= No. of edges
N = No. of Nodes
R= no. of regions
Cyclomatic Complexity=E-N+2
=21-17+2
=6
OR
Cyclomatic Complexity= P+1
=5+1
=6
OR
Cyclomatic Complexity= R=6
INDEPENDENT PATHS
Path 1=1,2,17
Path 2=1,3,4,12,13,14,17
Path 3=1,3,4,12,13,15,16,17
Path 4=1,3,4,5,6,8,10,11,17
Path 5=1,3,4,5,6,8,9,17
Path 6=1,3,4,5,6,7,17
[Type here]
8. References