Sie sind auf Seite 1von 29

[Type here]

TABLE OF CONTENTS

Problem Statement ............................................................................................ 3

P ROCESS M ODEL .................................................................................................. 4

1.Software Requirement Specification .................................................................. 5


1.1 Overall Description ............................................................................................. 5
1.1.1 Product Functions ......................................................................................... 5
1.1.2 User Characteristics ...................................................................................... 5
1.1.3 General Constraints ...................................................................................... 5
1.1.3.1 User Interface Constraints ...................................................................... 5
1.1.3.2 Hardware Constraints ............................................................................. 5
1.1.3.3 Software Constraints............................................................................... 6
1.1.4 Assumption and Dependencies ..................................................................... 6
1.1.4.1 Web Server ............................................................................................. 6
1.1.4.2 PHP Application ...................................................................................... 6
1.1.4.3 MySQL Database ..................................................................................... 6
1.2 External Interface Requirements ........................................................................ 6
1.2.1 User interfaces .............................................................................................. 7
1.2.2 Hardware interfaces ..................................................................................... 7
1.2.3 Software interfaces ....................................................................................... 7
1.2.4 Communications interfaces .......................................................................... 7
1.3 Functional Requirements .................................................................................... 7
1.3.1 User Registration/ Login................................................................................ 7
1.3.2 User details entry: ......................................................................................... 7
1.3.3 Credit Score: ................................................................................................. 8
1.4 Non-Functional Requirements ............................................................................ 8
1.5 Performance Requirements ................................................................................ 8
1.6 Design Constraints .............................................................................................. 8
1.7 Data flow Diagram .............................................................................................. 9
1.7.1 Context Diagram(LEVEL-0) ............................................................................ 9
1.7.2 LEVEL-1 DFD ................................................................................................ 10
[Type here]

1.7.2 LEVEL-2 DFD ................................................................................................ 11


1.8 Data Dictionary ................................................................................................. 12

2. Estimations .................................................................................................. 13
2.1 Function Points ................................................................................................. 13
2.1 Efforts ............................................................................................................... 14

3. Risk Management ......................................................................................... 15


3.1 Risk Table .......................................................................................................... 15

4. Time Line ..................................................................................................... 16

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.

Nowadays, getting a loan is very cumbersome and complicated process in


developing countries, like ours. It may take weeks and even months for
loans to get approved and people must visit bank repeatedly for getting
their documents verified. Also, they are uncertain whether they are eligible
for loans or not.
[Type here]

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.Software Requirement Specification


1.1 Overall Description
This section will give an overview of the whole system. The system
will be explained in its context to show how the system interacts with other
systems and introduce the basic functionality of it. At last, the constraints and
assumptions for the system will be presented.

1.1.1 Product Functions


• Maintain records for many customers .
• A customer has a username (unique across all users), password (no
restrictions), email address (no restrictions).
• Anyone may sign up for a customer account.
• User will be logged out if inactive for 30 minutes.

1.1.2 User Characteristics


The typical CIBIL user is simply anyone who is adult that has access
to the Internet and a web browser. It is assumed that the user is familiar
enough with a computer to operate the browser, keyboard and mouse
and is capable of browsing to, from and within simple websites.

1.1.3 General Constraints

1.1.3.1 User Interface Constraints


User Interface is only in English i.e. no other language option is
available. Using the Cibil System is simple and intuitive. A user familiar
with the basic browser should be able to understand all functionality
provided by the Cibil System.

1.1.3.2 Hardware Constraints


The should work on most of the home desktop and laptop
computers which support JavaScript, CSS and HTML5.
[Type here]

1.1.3.3 Software Constraints


The Cibil System will be intended to run on Firefox 4 and above,
Google Chrome 10 and above, Internet Explorer 8 and above, and
Microsoft edge.
For smooth experience, user should be using any one of the above-
mentioned internet browsers.

1.1.4 Assumption and Dependencies


The cibil system is dependent on the following third-party services for its
functioning –

1.1.4.1 Web Server


 Apache will be used as web server.
 The user will input data to the web server using HTML forms.
 The web server executes the PHP as a module and PHP scripts
retrieves the post data if available.
 The web server receives information back from the PHP script.
 The web server displays a HTML page as result of the query to the
end-user.

1.1.4.2 PHP Application


The actual program that will perform the operations is written in
PHP.

1.1.4.3 MySQL Database


MySQL is an open source SQL. Cibil system uses MySQL database to
store all the data on the server. It also communicates with the PHP
application on the server to process the user queries/requests and
return only the desired data back to the user through the PHP
application.

1.2 External Interface Requirements


This section contains all of the functional and quality requirements of the
system. It gives a detailed description of the system and all its features.
[Type here]

1.2.1 User interfaces


A first-time user of the web application should see the log-in page when
he/she opens the application. If the user has not registered, he/she should be
able to do that on the log-in page.
If the user is not a first-time user, he/she should be able to login directly
to the system.

1.2.2 Hardware interfaces


Since neither the application nor the web portal have any designated
hardware, it does not have any direct hardware interfaces. The hardware
connection to the database server is managed by the underlying operating
system on the system and the web server.

1.2.3 Software interfaces


The software runs in browser so it is independent of software interfaces
web portal consists of operation concerning both reading and modifying the
data, while the communication between the database and the System consists
of only reading operations.

1.2.4 Communications interfaces


The communication between the different parts of the system is
important since they depend on each other. However, in what way the
communication is achieved is not important for the system and is therefore
handled by the underlying operating systems for both the systems and the web
portal.

1.3 Functional Requirements

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.

1.4 Non-Functional Requirements

o Performance: - The cibil system must be fast, reliable and robust.


o Accessibility: - The cibil system should be readily available to any
potential user and can be accessed any time from any place by the user
using internet connection on any device.
o Safety: - The cibil system should prevent illegal or malicious operations
from the user.
o Understandable: - The cibil system should have simple, interactive and
understandable user interface for a smooth user experience.
o Security: - The cibil system must be secure and privacy of the user
should be maintained.
 Passwords should be saved in encrypted form in the database to
ensure the user’s privacy.
 The cibil system should be protected against vulnerabilities such
as SQL injection attacks.

1.5 Performance Requirements


Upon a query or request, the information must be provided by the cibil
system in less than 10 seconds and updating the database should take less
than 5 seconds on a good user environment (decent computer and reliable
internet).

1.6 Design Constraints


The communication between the portal software and the database will
be in SQL.
 The portal layout will be produced with HTML/CSS.
 The cibil system will be written in PHP.
[Type here]

 The source code must follow the coding conventions of PHP.


 The output must be compatible with W3C HTML5 standards

1.7 Data flow Diagram

1.7.1 Context Diagram(LEVEL-0)


[Type here]

1.7.2 LEVEL-1 DFD


[Type here]

1.7.2 LEVEL-2 DFD


[Type here]

1.8 Data Dictionary

Data Description
Add Details [first Name + last Name + Email + username + password]

Login Details [username + Password]

User account info [Bank Account details + PAN Card details ]

Pending Loan Dues [Bank Account details + Loan Details + Past due + Overdue ]

Credit Information [Credit Card details + Debit card details]

CIBIL Report [Credit Score + Remarks]


[Type here]

2. Estimations

2.1 Function Points

Estimation of Complexity Weighing Factors


Factor Value
1. Backup and recovery 4

2. Data Communication 3

3. Distributed Processing 4

4. Performance Critical 3

5. Existing Operating Environment 3

6. Online Data Entry 4

7. Input Transaction over Multiple Screens 5

8. ILFs updated online 4

9. Information Domain values Complex 1

10. Internal Processing Complex 3

11. Code Designed for Reuse 1

12. Conversion/Installation in Design 3

13. Multiple Installations 0

14. Application Designed for Change 4

∑(Fi) 42
Value Adjusting Factor [0.65 + 0.01*∑(Fi)] 1.07
[Type here]

Estimated Weighing Weighing


Information Domain Value Count Factor count

No. of external Input 5 3 15


No. of external Output 3 4 12
No. of External enquiries 1 3 3
No. of internal logical files 1 7 7
No. of External interface files 4 5 20
Total count = 57

Calculation of Function point

∑(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

3.1 Risk Table

Risks Category Probability Impact Mitigation

Quality not DE 60% 3 Take up steps to maintain


maintained quality at each stage of
development.

Size estimates may be PS 50% 2 Past experiences must be


low considered and a similar task
on a smaller scale may be
attempted

Requirements not CU 50% 1 Regular interaction with the


properly documented customer and getting the
and understood requirements verified before
finalising them

Delivery deadline will BU 40% 2 Review the progress from time


be tightened to time and take appropriate
steps to keep up with the
schedule

Lack of skill ST 40% 2 External resources might help

Building the wrong CU 20% 1 Early and continuous


product validation is critically
important. You need to
establish a clear vision and
solid justification for the
product.
[Type here]

4. Time Line
[Type here]

5.Design

5.1 Architectural Design


[Type here]

5.2 Data 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 &nbsp&nbsp&nbsp &nbsp </b></label>
<input type="text" placeholder="Username" name="uname" required><br/>

<label for="psw"><b>Password &nbsp&nbsp &nbsp &nbsp </b></label>


<input type="password" placeholder="Password" name="psw" required><br/>

<label for="fname"><b>First Name &nbsp&nbsp &nbsp </b></label>


<input type="text" placeholder="First Name" name="fname" required><br/>
[Type here]

<label for="lname"><b>Last Name &nbsp&nbsp&nbsp &nbsp </b></label>


<input type="text" placeholder="Last Name" name="lname" required><br/>

<label for="email"><b>Email Address</b></label>


<input type="text" placeholder="Email Address" name="email" required ><br/>

<br/><button type="submit" name="btn">Signup</button><br/><br/></center>


</div>

</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]

$result = mysqli_query($dbc, $query);


header('Location:olms.html');
exit;
}
}
mysqli_close();
?>

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

1 $dbc = mysqli_connect('localhost', 'root', 'sharma@123','cibil') or


2 die('Error connecting to server');
$a=$_POST["uname"];
$b=$_POST["psw"];
$c=$_POST["fname"];
3 $d=$_POST["lname"];
$e=$_POST["email"];
$query = "SELECT * FROM user WHERE uname= '$a' AND password = '$b'";
$result = mysqli_query($dbc,$query);
4 If(mysqli_num_rows($result>0)
{
5 $row=mysqli_fetch_assoc($result);
6 If($a==$row[‘uname’])
{
7 Echo”Username already exists”;
}

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
{

$query="INSERT INTO user VALUES('$a','$b','$c','$d','$e')";


16 $result = mysqli_query($dbc, $query);
header('Location:olms.html');
exit;
}
}
17 mysqli_close();
?>
[Type here]
[Type here]

7.2 Calculating cyclomatic complexity

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]

7.3 Test Cases

8. References

Das könnte Ihnen auch gefallen