Trning RPT
Trning RPT
Trning RPT
SGPGI Council
FOR
BLOOD TRANSFUSION
Softpro India Computer Technologies Pvt. Ltd
B-15, Sector-f, Opp. Shahara India Bhawan, Kapoorthala, X-ing, Aliganj, Lucknow.
Ph. :+91-05226565114, Website : www.softproindia.org
2010
ACKNOWLEDGEMENT
srivastava, Ms. Yashi Ashthana & Er. Ajay Singh for their guidance and help offered
to me in with adequate information and all required inputs which were of great help for
carried out here, got a glimpse of new environment & hard work of industrial unit.
I would like to thank them for providing me the necessary assistance as a result
Dated:
The project is “SGPGI Council FOR BLOOD TRANSFUSION” Raebareilly Road , Lucknow .
This project is an effort to develop a platform where the users of this portal say donors, patient,
doctor, pathologist, blood keeper, and the administrator of SGPGI can communicate effectively.
Donor can easily get the appointment for blood donation and he has not to wait in queue, as he
has to in the existing system. SGPGI For Blood Transfusion is the project which is provide
online hospitality. It is a web portal project so it is very user friendly. It provide the patient to
directly search the donor. And he asked the health or another related queries to the doctor.
Transfusion medicine is a multidisciplinary area concerned with the proper use of blood and
blood components in the treatment of human diseases.
This project brings a new concept and new features by automating the certain features and
activities of SGPGI. This web portal is providing a common platform to various users by
registering them online and use various features providing in this portal. This project is made as
per the requirement of the SGPGI and particularly for the Blood Transfusion Department.
Table of Contents
The System should be well equipped with many powerful features and content delivery system that
combines various services, making them an integrated unit. Unlimited users can access the system
anytime & anywhere equipped with an internet connection. The system should be capable of generating
downloadable reports from Database.
Administrative users should be allowed to edit, manipulate the content and their respective master
details using a secure administration area/control panels.
The technology which should be used to develop the site should ensure that downloading is fast,
operation is hassle free with easy maintenance and above all, a highly user friendly application.
The design structure of the entire application should separate the business logic and presentation,
giving complete control over the administration and management of the system.
The record retrieving is today very difficult because the data is very larg amount. So the Retrieving is
very difficult.
The searching is very time consuming because of the data is larg. And its retrieving is very difficult.
The processing speed is very slow. Because of the network problem , virus problem , hardware
problem , some another problem. The data is very large so the problem is also speed become slow.
Insecure data:
The data is insecure because the hackers are hack the data, today it is very big problem. The security
is very important for everything. To secure the data and another type of security is very important.
Objectives:
The System should be well equipped with many powerful features and content delivery system that
combines various services, making them an integrated unit. Unlimited users can access the system
anytime & anywhere equipped with an internet connection. The system should be capable of generating
downloadable reports from Database.
Administrative users should be allowed to edit, manipulate the content and their respective
master details using a secure administration area/control panels.
The technology which should be used to develop the site should ensure that downloading is
fast, operation is hassle free with easy maintenance and above all, a highly user friendly application.
The design structure of the entire application should separate the business logic and
presentation, giving complete control over the administration and management of the system.
Insecure data.
Reports are not viewed by the users in a proper and systematic way.
Proposed System:
24 X 7 availability.
Flexible service based architecture will be highly desirable for future extension.
User Friendliness.
Benefits:
Fast and efficient service: - This system can give the fast service (insertion, deletion, updating, searching
etc.) to the users of the system.
Reduction in workload: - That means all the tasks are done by the system/machine which give the rest
to the human beings.
Fine management: - Our system provide the good management in the records keeping and provide the
good scheduling in the all the operations of the database.
Provide the flexibility in the operations: - We are developing the type system which is able to do all
type of transactions (insertion, deletion, updating, searching etc).
Remove the complexity in the operations: - Our system is providing the real life features to providing
the service since the user of the system in not feel the complexity in its operations.
Provide the long term relationship with the users: - Our system is providing the long term relationship
with the users.
Softpro India Computer Technologies Pvt. Ltd. Provides programming services, Application
Development and Integration Services, Web Design and Development Services, Search Engine
Optimization Services (SEO) and Back-office services. Softpro India offers customized and flexible IT
solutions, with low costs for international standards, without any reduction or loss in quality, technology
and/or scalability for the client. We treat our clients with courtesy, friendliness and intelligence .
SOFTPRO INDIA PRIVATE LIMITED was founded in 2004 with the mission of “Bridging the technology
gap” .Provides programming services, Application Development and Integration Services, Web Design
and Development Services, Search Engine Optimization Services (SEO) and Back-office services.
SoftPro India Computer Technologies Pvt.Ltd Was Founded in 2004 by group of Tecnocrats Mr. S. K.
Verma from IIT Kanpur (1989 Batch) and Mr. Ajay Singh an Engineering Graduate from IET
Lucknow in electronics Stream (1991 Batch) .
Design Designate Deliver Customized Business Solutions Provide parallel service to support our
customers. Bring IT standards to International Standards.
Initial requirement:
1. Due to large size of data, there was problem to store and retrieve data.
4. As we see today so many kinds of websites that provide hospitality matter like medicine,
blood, problem query.
5. Loading and Unloading of files from the Internet has become a requirement now a days.
7. Reports are not viewed by the users in a proper and systematic way.
8. Secure access of confidential data (user’s details), means we provide a security like
password protected.
9. Better component design to get performance at peak time
10. Flexible service based architecture will be highly desirable for future extension.
SYSTEM ANALYSIS
Business Needs:
Transfusion medicine is a multidisciplinary area concerned with the proper use of blood and
blood components in the treatment of human diseases. The Department of Transfusion Medicine at this
Institute was established in 1989 as a state-of-art facility to provide blood transfusion services, to train
medical and Para-medical personnel in related areas and to function as an apical medical and research
department in the country in this field.
Blood center at SGPGIMS needs at least 100 blood donors every day to meet the
transfusion needs of patients at this hospital and of those at some other major hospitals in
Lucknow. With increase in population and development of more advanced medical and surgical
procedures, the need for blood is ever increasing. There is no substitute for blood. Only blood
donors can help maintain an adequate supply of blood to save the lives of those who need it.
This project brings a new concept and new features by automating the certain features and
activities of SGPGI. This web portal is providing a common platform to various users by registering them
online and use various features providing in this portal. This project is made as per the requirement of
the SGPGI and particularly for the Blood Transfusion Department.
Objectives:
The System should be well equipped with many powerful features and content delivery system that
combines various services, making them an integrated unit. Unlimited users can access the system
anytime & anywhere equipped with an internet connection. The system should be capable of generating
downloadable reports from Database.
Administrative users should be allowed to edit, manipulate the content and their respective
master details using a secure administration area/control panels.
The technology which should be used to develop the site should ensure that downloading is
fast, operation is hassle free with easy maintenance and above all, a highly user friendly application.
The design structure of the entire application should separate the business logic and
presentation, giving complete control over the administration and management of the system.
Existing System Description:
Retrieving of records is difficult.
Insecure data.
Reports are not viewed by the users in a proper and systematic way
Proposed System:
24 X 7 availability
Flexible service based architecture will be highly desirable for future extension
User Friendliness.
Define To- Be processes
Develop High Level Design and Low Level Design before Execution
i. Built and design all the processes required by Client
ii. Conducted survey of all Property Dealing Websites and documented realities
iii. Developed the architecture of the Software Solution
iv. Developed the project design in detail for the software developer in company
Benefits:
Fast and efficient service: - This system can give the fast service (insertion, deletion, updating,
searching etc.) to the users of the system.
Reduction in workload :- That means all the tasks are done by the system/machine which give the
rest to the human beings.
Fine management :- Our system provide the good management in the records keeping and provide
the good scheduling in the all the operations of the database.
Provide the flexibility in the operations :- We are developing the type system which is able to do all
type of transactions (insertion, deletion, updating, searching etc).
Remove the complexity in the operations : - Our system is providing the real life features to
providing the service since the user of the system in not feel the complexity in its operations.
Provide the long term relationship with the users : - Our system is providing the long term
relationship with the users
Feasibility Study:
Feasibility study is the measure of how beneficial or practical the development of an information system
will be to an organization. The Feasibility analysis is a cross life cycle activity and should be continuously
performed throughout the system life cycle.
Feasibility tests:
Operational feasibility:
By providing a web based interface for property dealing globally seeker and agent/owner will feel
better. Users will get a very quick service by searching based on various criteria and get details of
properties within seconds. Also client will feel comfortable by reduction of their work. Easy to handle a
large and centralized database. Losing of records will be avoided.
Considering all these factors we can conclude that all the users and end users will be satisfied by the
system.
Technical feasibility:
For the design and development of the system, several software products have been accommodated.
This technology (ASP.NET) has enough efficiency in producing the system. Therefore the project is
technically feasible.
Schedule feasibility:
The duration of time required for the project has been planned appropriately and it is the same as the
duration of time expected by the client. Therefore the website can be delivered to the client within the
expected time duration, satisfying the client. Hence the project is feasible in scheduling.
Economic feasibility:
According to the resources available and the project scheduling process it is estimated that the
expenses allocated for the web application to be developed, by the client is sufficient enough.
Hence the economical factor has been considered feasible.
SOFTWARE REQUIREMENT
SPECIFICATION
1. Objective:
This document represents the various technical and functional requirements analysis of the SGPGI
For Blood Transfusion Web Application and business process requirements of client. This document is
produced prior to Detailed Design and development of the application. It will be used by the design
team as the baseline for establishing systems design and ultimately the development of the system.
2. Scope:
The scope of SGPGI For Blood Transfusion is to provide efficient searching of Blood donation or retrieval
information from all over the world. SGPGI For Blood Transfusion is also providing a common global
platform for Blood donars and patient which is required the blood and donars which is donate the
blood. The users which is request for the seminar or question to related the health, ask the doctor and
view the reply.
The requirements specified in this document cover the entire necessary and mandatory feature of
application required by the client. The data captured in this process will aid the testing process during
unit testing and deployment. The software is required to fulfill all the functional requirements to
identify by this document.
3. Time Constraints:
The final deployment of this website will not take place until all functional features has tested. This is
estimated to be done by 20 April 2009.
4. Requirement Notes/Legends
C Conditionally Required
R Required
O Optional
SM System Maintained
EF External Feature
5. Requirements:
Security Requirements:
1 R2.2 R
6. Data Management:
This project brings a new concept and new features by automating the certain features and
activities of SGPGI. This web portal is providing a common platform to various users by
registering them online and use various features providing in this portal. This project is made as
per the requirement of the SGPGI and particularly for the Blood Transfusion Department.
7. Deployment Requirements:
Client - Side:
Browser Processor RAM Disk Space
Server - Side:
Web server Database Processor RAM Disk Space
Training on the System would be provided by SPI for the 10 days after deployment of the website.
No extra fee would be charged for the training and documentation. Documentation on all the modules
and functionality will be provided by SPI at the time of deployment.
7.4 Time Constraints:
The final deployment of this website will not take place until all functional features has tested. This
is estimated to be done by 20 April 2009.
One year free support for rectifying system bugs including front end and beck end will be provided.
During warranty period Software Engineers will be responsible for removing bugs and improving it. After
one year support can be extended @ 20% of the total product deployment cost.
SYSTEM DESIGN
Software Process Model followed:
SPIRAL MODEL:
The Spiral Model is one that couples the iterative nature of prototyping with controlled and systematic
aspect of linear sequential or waterfall model. It provides the potential for rapid development of
incremental versions of the system. Here it is used for successful development of Sales and Product
Management System.
Figure:
Software Development Process moves throughout these four phase until the Software is not
implemented .In the last phase (Customer Evaluation), End User evaluates the product, and gives
the comments according to requirement. On basis Software either goes forward in the phases or
for implementation process.
Phase Steps:
Spiral Model consists of four phases:
Planning
Risk Analysis
Engineering
Customer Evolution
Planning:
Development of a comprehensive backlog list.
Definition of the delivery date and functionality of one or more releases.
Selection of the release most appropriate for immediate development.
Mapping of product packets (objects) for backlog items in the selected release.
Definition of project team(s) for the building of the new release.
Assessment of risk and appropriate risk controls.
Review and possible adjustment of backlog items and packets.
Validation or reselection of development tools and infrastructure.
Estimation of release cost, including development, collateral material, marketing, training, and
rollout.
Risk Analysis:
The Development phase is an iterative cycle of development work. The management determines that
time, competition, quality, or functionality is met, iterations are completed and the closure phase
occurs. This approach is also known as Concurrent Engineering. Development consists of the following
macro processes:
Engineering:
The whole team and product management are present and participate.
The review can include customers, sales, marketing and others.
Review covers functional, executable systems that encompass the objects assigned to that team
and include the changes made to implement the backlog items.
The way backlog items are implemented by changes may be changed based on the review.
New backlog items may be introduced and assigned to teams as part of the review, changing the
content and direction of deliverables.
The time of the next review is determined based on progress and complexity. The Sprints usually
have duration of 1 to 4 weeks.
Customer Evolution:
When the management team feels that the variables of time, competition, requirements, cost, and
quality concur for a new release to occur, they declare the release “closed” and enter this phase. This
phase prepares the developed product for general release. Integration, system test, user
documentation, training material preparation, and marketing material preparation are among closure
tasks.
The top - down designing approach started with major components of the system. It is a stepwise
refinement which starts from an abstract design, in each steps the design is refined two or more
concrete levels until we reach a level where no – more refinement is possible or not needed.
Bottom – Up designing:
In bottom – up designing the most basic and primitive components are designed first, and we proceed to
higher level components. We work with layers of abstractions and abstraction are implemented until the
stage is reached where the operations supported by the layer is complete.
Approach we are following:
In this project we are following Mixed Approach i.e. A combination of top – down and bottom
– up. We are developing some of the components using top – down designing approach (e.g. the
WebPages) and the some components in bottom – up designing approach (e.g. the middle tier
classes).
HIGH LEVEL DESIGN
Entities Involved:
The website is basically dealing with following categories of users.
o Donor
o Patient
o Administrator
o Doctor
o Pathologist
o Blood Keeper
To provide common place for all users . The users of this website are Donors , Patient ,
Doctors, Pathologists, Blood keeper.
Users will be providing facilities to request for a seminar for blood donation camp .
Every users have their own profile which they can manage by themselves.
User friendly.
Secured website.
1. Registration/Login Module
5. Administrator Module
6. Report Module
1. C# for ASP.NET.
2. JavaScript for Client side validation.
Flow Chart:
Home Page
Admin Yes
Login /
Registration
New
Doctor Pathologist Blood keeper user
No
login
User and
password No
correct
Can
View personal / user
medical detail added
yes
Donors/Patient
Reply
1LEVEL DFD
USERS DONORS
PATIENTS
DOCTORS
PATHALOGISTS
BLOOD KEEPER
ER-DIAGRAM
1
Use Case Diagram:
View
Other queries report
To doctors Admin
View reply Blood
Of queries group
entry
By doctors
Pathologist
Submit
SGPGI View blood
queries
Council Stock outward
entry
Download For Blood
broacher Transfusion
View blood
Donor stock inward
Refer a entry
friend
Blood stock
feedback Outward entry
Blood
Other queries Keeper Blood stock
To doctors inward entry
View reply
Of queries View refer
Patient Donor report
By doctors
Doctor
Download Upload
broacher broacher
Methods :
Donors,patient,doctors,blood
keeper,pathologists.
public bool UpdateLoginDetails(string userid, string username, string security question, string your
answer, datetime date, e-mail id, alternate e-mail id)
2 User_Name 100 Not Null varchar It holds the name of the user
3 Your_Answer 120 Not Null varchar It holds the answer of the questions
e-mail_id
Methods:
public bool SavePersonalDetails (string userid, string username, string fathername, string surname,
string sex, string maritalstatus, string occupation, string education, string address1, string address2,
string pincode, string country, string state, string city, string phoneno1, string phoneno2, string
mobileno, string faxno )
public bool UpdatePersonalDetails(string userid, string username, string fathername, string surname,
string sex, string maritalstatus, string occupation, string education, string address1, string address2,
string pincode, string country, string state, string city, string phoneno1, string phoneno2, string
mobileno, string faxno)
S No
2 User_name 100 Not null varchar It hold the name of the user
Methods:
public bool SaveMedicaldetails(string userid, string username, string weight, string bloodgroup, string
ques1, string ques 2, string lastdonate, string diseaseid)
public bool UpdateMedicaldetails (string userid, string username, string weight, string bloodgroup,
string ques1, string ques 2, string lastdonate, string diseaseid)
2 User_name 100 Not null varchar It holds the name of the user.
Disease Master
Class Name : Disease master
Methods:
public bool UpdateBloodTestCategory( string testid, string categoryname, string method, string units,
string referenceranges)
4 Method 50 Not Null varchar It hold the method name of the test.
5 Units 100 Not Null varchar It hold the units of the blood
public bool SaveResult(string userid, string testid, string categoryid, string result, datetime testdate,
string labno, string referringdoctor, string remark, datetime reportdate)
5 Result 100 Not Null varchar It hold the result of the test.
public bool InwardStock(string groupid, string units, datetime date, string remark, string eoq)
Blood Outgoing
Class Name: Blood Outgoing
Method:
public bool Save OutwardStock(string groupid, string units, string userid, string personname,)
1 User_name 100 Not Null varchar It hold the name of the user.
User Suggestions
1 User_name 100 Not Null varchar It hold the name of the user.
Method:
public bool SaveBloodDonationCamp(string userid, string username, string orgname, string seminartitle,
string seminarlocation, datetime requestdate, datetime date, string remark)
public dataset SaveQueries(string userid, string username, datetime date, string queryasked)
public bool SaveReply(styring userid, string username, string doctorname, string queryid, string reply,
datetime date)
public bool SaveMaterial(string userid, string username,string materialpath, string materialdesc, string
filepath)
4 File_path 50 Not Null varchar It stores the path of file i.e. location
Description: This class provides interface for data access from database.
Fields:
Properties:
Methods:
Description: Method used gets multiple records from from database into a dataset.
Output: DataSet
Public bool NonQuery(string Query)
Output: True/False
Output: Object
Login Manager Class
Fields:
Properties:
Methods:
Inputs: String userid selected by user, string password given by user and char type of user (A/O/C).
Output: True/False
Description: Method to validates user on basis of userid and password passed as paramerters.
Output: True/False
Inputs: String userid, old password to validate user and new passoword to be changed.
Output: True/False
Public bool ResetPassword(string userid)
Output: True/False
Description: This class provides interface for data access from database.
Fields:
Properties:
Methods:
Inputs: String userid selected by user, string password given by user and char type of user (A/O/C).
Output: True/False
Description: Method to validates user on basis of userid and password passed as paramerters.
Output: True/False
Inputs: String userid, old password to validate user and new passoword to be changed.
Output: True/False
Output: True/False
The Login is responsible for handling login related information of user. It has user friendly GUI
interface which provides all the required information with minimum efforts.
The Login has the responsibility to allow only authenticated users to login to the website. It keeps
check over the entry of the user. It provides flexibility to the users even in the case when the user
forgets his password. However the module has no provision to display the password if the user forgets
his password for security reasons.
The module consists of procedures to handle the storage ,updation and deletion of records of a
particular userid. It also consists of methods for authenticating the user. The authentication can be by
matching the password against user id or by matching the hint question and hint answer. It is also
responsible for fetching the hint question if the user forgets the password.
Features
It has features responsible for saving, updating and deleting Login Details of users.
It has user friendly and clear features to reveal its features.
It retrieves and provides information in fast and efficient manner.
Benefits
The module provides the benefit of creating a first step check over the users. All the users have to go
through this check and if he passes this check, then only he will be allowed to access the useful features
of the website. It keeps track of the category of the user and based on the category appropriate
homepage of the user i.e. after the user is authenticated then if the user is a learner then he is
redirected to Learner’s home page and if he is a trainer then he is redirected to the trainer’s home page.
Methodology
The module is developed using the Object Oriented approach. The module is developed in three distinct
phases – Graphical User Interface (GUI), the coding (class level design) and database creation with
testing. GUI is done using Visual Studio 2005 and VC# using Cascading StyleSheets (CSS). GUI is designed
keeping easy user interface in mind. Different controls are used for data entry and checking feature.
The LoginManager class is designed as per the requirements of the project. All the properties are
matched with the corresponding fields of database tables. The properties of the class are kept public so
that it can be integrated with the form text fields in GUI forms.
Donors Services :
Give Queries
Give Suggestions
Refer Friend
Patient Services :
Give Queries
Give Suggestions
Refer Friend
Management includes users like Doctors, Pathologists and Higher Level Authorities whose
activities are :
Doctors Services:
Refer Friend
Pathologists Services:
Creating Users
6. Report Module
Donor Detail Report
SCREEN SHOTS OF
SYSTEM
TESTING
Testing Methodology
Unit Testing
Integration Testing
White Box Testing
Black Box Testing
Unit Testing:
Unit testing is a procedure used to validate that individual units of source code are working properly.
A unit is the smallest testable part of an application. In procedural programming a unit may be an
individual program, function, procedure, etc., while in object-oriented programming, the smallest unit is
a method, which may belong to a base/super class, abstract class or derived/child class.
Ideally, each test case is independent from the others; mock or fake objects as well as test harnesses
can be used to assist testing a module in isolation. Unit testing is typically done by software developers
to ensure that the code they have written meets software requirements and behaves as the developer
intended.
Unit testing provides a sort of living documentation of the system. Developers looking to learn what
functionality is provided by a unit and how to use it can look at the unit tests to gain a basic
understanding of the unit API.
Unit test cases embody characteristics that are critical to the success of the unit. These characteristics
can indicate appropriate/inappropriate use of a unit as well as negative behaviors that are to be trapped
by the unit. A unit test case, in and of itself, documents these critical characteristics, although many
software development environments do not rely solely upon code to document the product in
development. On the other hand, ordinary narrative documentation is more susceptible to drifting from
the implementation of the program and will thus become outdated (e.g. design changes, feature creep,
relaxed practices to keep documents up to date).
Integration Testing:
It is sometimes called I&T i.e. Integration and testing, it is the phase of software testing in which
individual software modules are combined and tested as a group. It follows unit testing and precedes
system testing. Integration testing takes as its input modules that have been unit tested, groups them in
larger aggregates, applies tests defined in an integration test plan to those aggregates, and delivers as its
output the integrated system ready for system testing.The purpose of integration testing is to verify
functional, performance and reliability requirements placed on major design items.
These "design items", i.e. assemblages (or groups of units), are exercised through their interfaces
using black box testing, success and error cases being simulated via appropriate parameter and data
inputs. Simulated usage of shared data areas and inter-process communication is tested and individual
subsystems are exercised through their input interface. Test cases are constructed to test that all
components within assemblages interact correctly, for example across procedure calls or process
activations, and this is done after testing individual modules, i.e. unit testing.
White-box testing, sometimes called glass-box testing, is a test case design method that uses the
control structure of the procedural design to derive test cases. Using white-box testing methods, the
software engineer can derive test cases that
(1) guarantee that all independent paths within a module have been exercised at least once,
(2) exercise all logical decisions on their true and false sides,
(3) execute all loops at their boundaries and within their operational bounds, and
A reasonable question might be posed at this juncture: "Why spend time and energy worrying about
(and testing) logical minutiae when we might better expend effort It is not possible to exhaustively test
every program path because the number of paths is simply too large. White-box tests can be designed
only after a component-level design (or source code) exists. The logical details of the program must be
available. Ensuring that program requirements have been met?" Stated another way, why don't we
spend all of our energy on black-box tests? The answer lies in the nature of software defects:
• Logic errors and incorrect assumptions are inversely proportional to the probability that a program
path will be executed. Errors tend to creep into our work when we design and implement function,
conditions, or control that are out of the mainstream. Everyday processing tends to be well understood
(and well scrutinized), while "special case" processing tends to fall into the cracks.
• We often believe that a logical path is not likely to be executed when, in fact, it may be executed on a
regular basis. The logical flow of a program is sometimes counterintuitive, meaning that our unconscious
assumptions about flow of control and data may lead us to make design errors that are uncovered only
once path testing commences.
• Typographical errors are random. When a program is translated into programming language source
code, it is likely that some typing errors will occur. Many will be uncovered by syntax and type checking
mechanisms, but others may go undetected until testing begins. It is as likely that a typo will exist on an
obscure logical path as on a mainstream path. Each of these reasons provides an argument for
conducting white-box tests. Black box testing, no matter how thorough, may miss the kinds of errors
noted here. White box testing is far more likely to uncover them.
Unlike white-box testing, which is performed early in the testing process, blackbox testing tends to be
applied during later stages of testing. Because black-box testing purposely disregards control structure,
attention is focused on the information domain. Tests are designed to answer the following questions:
• What data rates and data volume can the system tolerate?
By applying black-box techniques, we derive a set of test cases that satisfy the following criteria:
(1) test cases that reduce, by a count that is greater than one, the number of additional test cases that
must be designed to achieve reasonable testing and
(2) test cases that tell us something about the presence or absence of classes of errors, rather than an
error associated only with the specific test at hand.
TEST CASES
Test Id : 1001 Test date :22-04-2010
Passwd=”shakeel”
P002 ValidateUser Userid=”patient” ‘patient’ ‘patient’ Correct
Passwd=”medicine
”
Passwd=”kumar”
Passwd=” admin”
Passwd=”lkO”
Passwd=”shr”
P013
P015 HintAns=”up”
P016 HintAns=”up”
P017 HintAns=”Up”
P018 HintAns=”UP”
P019 HintAns=”up”
HintAns=””
HintAns=””
HintAns=”up”
The ASP.NET Engine then gets the requested file, and if necessary contacts the database through
ADO.NET for the required file and then the information is sent back to the Client’s browser. Above figure
shows how a client browser interacts with the Web server and how the Web server handles the request
from client.
Implementation requirement:
1. A registered domain name is required for our website.
2. Web space on webserver to host the website. So we need a webhosting service also.
3. The hosting server must have .NET framework and MS SQL SERVER 2005 installed.
Uploading of website:
The website must be uploaded to a web server connected to the Internet in order to be
accessed on the Web. We use any FTP client program to connect to your host in order to upload
(transfer) your web site (files and other documents) to the server. And we restore the backup of
our database on the remote server.
CODING PART
Classes
1) CONNECTION MANAGER:-
using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.OleDb;
/// <summary>
/// </summary>
public ConnectionManager()
{
//
//
connection.ConnectionString = //"Provider =
Microsoft.Jet.OleDb.4.0;Data Source=C:\\test.mdb";
@"Provider=sqloledb;initial catalog=sgpgi;data
source=.\sqlexpress;integrated security=sspi";
command.Connection = connection;
dataadapter.SelectCommand = command;
command.CommandText = query;
dataadapter.Fill(ds,aliasname);
return ds;
command.CommandText = query;
if(connection.State==ConnectionState.Closed)
connection.Open();
return dr;
}*/
}
2) LOGIN:-
using System;
using System.Collections;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.OleDb;
using System.Collections.Generic;
using System.Text;
using System.Web.SessionState;
/// <summary>
/// </summary>
public login()
cm.Connect();
try
cm.dataadapter.Fill(cm.ds, "a1");
DataRow dr = cm.ds.Tables["a1"].NewRow();
dr["User_id"] = uusername;
dr["Passwd"] = ppassword;
dr["Hint_ques"] = Hint_ques;
//dr["date"] = DateTime.Now.Date;
cm.ds.Tables["a1"].Rows.Add(dr);
cm.dataadapter.Update(cm.ds.Tables["a1"]);
return true;
else
return false;
return false;
try
if (username != "")
{
cm.command.CommandText = "select User_id from login";
cm.dataadapter.Fill(cm.ds, "a1");
if (dr.Length > 0)
return true;
else
return false;
else
return false;
return false;
try
cm.dataadapter.Fill(cm.ds, "a1");
return true;
else
return false;
return false;
try
cm.dataadapter.Fill(cm.ds, "c");
DataRow dr = cm.ds.Tables["c"].Rows[0];
if (cm.ds.Tables["c"].Rows.Count > 0)
pas = dr["ppassword"].ToString();
return true;
}
else
return false;
return false;
try
cm.connection.Open();
cm.connection.Close();
if (result > 1)
return true;
else
return false;
{
return false;
try
cm.connection.Open();
cm.connection.Close();
if (result > 1)
return true;
else
return false;
return false;
DataSet dataset;
grdbind.DataSource = dataset.Tables[aliasname];
grdbind.DataBind();
if (dataset.Tables[aliasname].Rows.Count > 0)
return true;
else
return false;
DataSet ds1;
ds1 = cm.getdataset("select
Fathe_Name,Surname,Sex,Marital_Status,Occupation,Education,Address_1,Address_2
,Pin_Code,Country,State,City,Phoneno1,Phoneno2,Mobile_no,Fax_No from
userpersonalregdetail where User_Id='" + username + "'", "a");
if (ds1.Tables["a"].Rows.Count > 0)
return ds1;
else
return null;
}
public bool regsave2(string userid, string username, string securityques,
string yourans, string dob, string email, string alteremail)
try
cm.dataadapter.Fill(cm.ds, "a1");
DataRow dr = cm.ds.Tables["a1"].NewRow();
dr["User_id"] = userid;
dr["User_Name"] = username;
dr["Security_Questions"] = securityques;
dr["Your_Answer"] = yourans;
dr["Date_of_Birth"] = dob;
dr["emai_id"] = email;
dr["Alternate_email_id"] = alteremail;
dr["date"] = DateTime.Now;
cm.ds.Tables["a1"].Rows.Add(dr);
cm.dataadapter.Update(cm.ds.Tables["a1"]);
return true;
else
return false;
}
return false;
try
cm.dataadapter.Fill(cm.ds, "a1");
DataRow dr = cm.ds.Tables["a1"].NewRow();
dr["Type_of_user"] = usertype;
dr["User_id"] = userid;
dr["Passwd"] = passwd;
dr["Hint_ques"] = hintques;
dr["Hint_answ"] = yourans;
cm.ds.Tables["a1"].Rows.Add(dr);
cm.dataadapter.Update(cm.ds.Tables["a1"]);
return true;
else
return false;
return false;
try
if (dr.Length > 0)
return 1;
if (dr1.Length > 0)
return 2;
if (dr2.Length > 0)
return 3;
if (dr3.Length > 0)
{
return 4;
if (dr4.Length > 0)
return 5;
if (dr5.Length > 0)
return 6;
else
return 7;
return 5;
}
}
try
cm.dataadapter.Fill(cm.ds, "a1");
DataRow dr = cm.ds.Tables["a1"].NewRow();
dr["User_id"] = userid;
dr["Fathe_Name"] = Fathername;
dr["Surname"] = surrname;
dr["Sex"] = sex;
dr["Marital_Status"] = maritalstatus;
dr["Occupation"] = Occupation;
dr["Education"] = education;
dr["Address_1"] = Address1;
dr["Address_2"] = Address2;
dr["Pin_Code"] = pincode;
dr["Country"] = country;
dr["State"] = state;
dr["City"] = city;
dr["Phoneno1"] = phoneno1;
dr["Phoneno2"] = phoneno2;
dr["Mobile_no"] = mobileno;
dr["Fax_No"] = faxno;
cm.ds.Tables["a1"].Rows.Add(dr);
cm.dataadapter.Update(cm.ds.Tables["a1"]);
return true;
else
return false;
return false;
}
public bool Donor_med_save(string userid, string username, string weight,
string disease, string Bloodid, string donatedprev, string times, string
lastdonate)
try
cm.dataadapter.Fill(cm.ds, "a1");
DataRow dr = cm.ds.Tables["a1"].NewRow();
dr["User_id"] = userid;
dr["User_name"] = username;
dr["weight"] = weight;
dr["Blood_id"] = Bloodid;
dr["donated_previously"] = donatedprev;
dr["times"] = times;
dr["lastdonate"] = lastdonate;
dr["Disease_id"] = disease;
cm.ds.Tables["a1"].Rows.Add(dr);
cm.dataadapter.Update(cm.ds.Tables["a1"]);
return true;
else
return false;
}
return false;
//try
//{
cm.connection.Open();
int result = cm.command.ExecuteNonQuery();
cm.connection.Close();
if (result > 0)
return true;
else
return false;
// }
return false;
}*/
try
if (username != "")
cm.dataadapter.Fill(cm.ds, "a1");
DataRow dr = cm.ds.Tables["a1"].NewRow();
dr["User_id"] = username;
dr["feedback"] = feedback;
cm.ds.Tables["a1"].Rows.Add(dr);
cm.dataadapter.Update(cm.ds.Tables["a1"]);
return true;
}
else
return false;
return false;
try
if (bloodtestname != "")
cm.dataadapter.Fill(cm.ds, "a1");
DataRow dr = cm.ds.Tables["a1"].NewRow();
dr["Test_name"] = bloodtestname;
cm.ds.Tables["a1"].Rows.Add(dr);
cm.dataadapter.Update(cm.ds.Tables["a1"]);
return true;
}
else
return false;
return false;
try
if (testid != "")
cm.dataadapter.Fill(cm.ds, "a1");
DataRow dr = cm.ds.Tables["a1"].NewRow();
dr["Test_id"] = testid;
dr["Category_name"] = testcatname;
dr["Method"] = testmethod;
dr["Units"] = units;
dr["References_Ranges"] = referencerange;
dr["Date"] = date;
cm.ds.Tables["a1"].Rows.Add(dr);
cm.dataadapter.Update(cm.ds.Tables["a1"]);
return true;
else
return false;
return false;
try
if (userid != "")
cm.dataadapter.Fill(cm.ds, "a1");
DataRow dr = cm.ds.Tables["a1"].NewRow();
dr["User_id"] = userid;
dr["Name_of_organization"] = orgname;
dr["Seminar_title"] = title;
dr["Seminar_location"] = location;
dr["Seminar_request_date"] = reqdate;
dr["Seminar_date"] = date;
dr["Remark"] = message;
dr["Request_status"] = 'n';
cm.ds.Tables["a1"].Rows.Add(dr);
cm.dataadapter.Update(cm.ds.Tables["a1"]);
return true;
else
return false;
return false;
DataSet ds1;
if (ds1.Tables["a"].Rows.Count > 0)
return ds1;
else
return null;
try
cm.dataadapter.Fill(cm.ds, "a1");
DataRow dr = cm.ds.Tables["a1"].NewRow();
dr["User_id"] = userid;
dr["Reply"] = reply;
dr["Date"] = dat;
cm.ds.Tables["a1"].Rows.Add(dr);
cm.dataadapter.Update(cm.ds.Tables["a1"]);
return true;
else
return false;
return false;
}
public bool Reqstatus(string userid)
// try
// {
cm.connection.Open();
cm.connection.Close();
if (result > 0)
return true;
else
return false;
/* }
return false;
}*/
DataSet ds1;
ds1 = cm.getdataset("select * from Seminar_Reply where User_id='" +
userid + "' ", "a");
if (ds1.Tables["a"].Rows.Count > 0)
return ds1;
else
return null;
DataSet ds1;
if (ds1.Tables["a"].Rows.Count > 0)
return ds1;
else
return null;
try
{
DateTime dat1 = DateTime.Parse(dat);
return true;
else
return false;
catch(Exception e)
return false;
}
3) QUERY;-
using System;
using System.Data;
using System.Data.OleDb;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Web.SessionState;
using System.Text;
/// <summary>
/// </summary>
public Query()
cm.Connect();
try
{
if (userid != "" && query != "")
cm.dataadapter.Fill(cm.ds, "a1");
DataRow dr = cm.ds.Tables["a1"].NewRow();
dr["User_id"] = userid;
dr["Query_type"] = querytype;
dr["Query_Date"] = dat;
dr["Query_asked"] = query;
dr["Query_status"] = 'n';
cm.ds.Tables["a1"].Rows.Add(dr);
cm.dataadapter.Update(cm.ds.Tables["a1"]);
return true;
else
return false;
return false;
}
DataSet ds1;
if (ds1.Tables["a"].Rows.Count > 0)
return ds1;
else
return null;
try
cm.dataadapter.Fill(cm.ds, "a1");
DataRow dr = cm.ds.Tables["a1"].NewRow();
dr["User_id"] = userid;
dr["Reply"] = reply;
dr["Date"] = dat;
cm.ds.Tables["a1"].Rows.Add(dr);
cm.dataadapter.Update(cm.ds.Tables["a1"]);
return true;
else
return false;
return false;
// try
// {
//cm.command.Commandt = "update login set ppassword = '" + password +
"' where uusername = '" + username + "'";
cm.connection.Open();
cm.connection.Close();
if (result > 0)
return true;
else
return false;
/* }
return false;
}*/
DataSet ds1;
return ds1;
else
return null;
DataSet ds1;
if (ds1.Tables["a"].Rows.Count > 0)
return ds1;
else
return null;
DataSet ans;
return ans;
else
return null;
}
4) UPLOAD:-
using System;
using System.Data;
using System.Data.OleDb;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Web.SessionState;
using System.Text;
/// <summary>
/// </summary>
public upload()
cm.Connect();
try
if (Path != "")
string ss;
ss = Session["username"]+" ";
cm.dataadapter.Fill(cm.ds, "a1");
DataRow dr = cm.ds.Tables["a1"].NewRow();
dr["User_id"] = ss;
dr["Material_Description"] = MaterialDesc;
dr["File_path"] = Path;
dr["Date"] = DateTime.Now;
//dr["date"] = DateTime.Now.Date;
cm.ds.Tables["a1"].Rows.Add(dr);
cm.dataadapter.Update(cm.ds.Tables["a1"]);
return true;
else
return false;
return false;
DataSet ds1;
if (ds1.Tables["a"].Rows.Count > 0)
return ds1;
else
return null;
}
5) DONOR SEARCH:-
using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
/// <swummary>
/// </summary>
{
public ConnectionManager cm = new ConnectionManager();
public DonorSearch()
cm.Connect();
DataSet ds1;
ds1 = cm.getdataset("Select
l.Type_of_user,ld.User_name,ld.emai_id,pd.Sex,pd.Address_1,pd.Phoneno1,pd.Mobi
le_no,pd.Pin_Code,md.lastdonate from login l,userlogindetail
ld,userpersonalregdetail pd,userregmedicaldetail md where
l.User_id=ld.User_id and ld.User_id=pd.User_id and pd.User_id=md.User_id and
md.Blood_id='" + bldgrp + "'and pd.State='" + state + "'and pd.City='" + city
+ "'", "a");
if (ds1.Tables["a"].Rows.Count > 0)
return ds1;
else
return null;
}
6) DONOR REGISTRATION;-
using System;
using System.Data;
using System.Data.OleDb;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
/// <summary>
/// </summary>
public DonorRegistration()
{
connectionform.Connect();
try
if (uname != "" && username != "" && password != "" && dob != ""
&& gender != "" && bloodgroup != "" && weight != "" && mobileno != "" &&
residence != "" && office != "" && eemail != "")
connectionform.dataadapter.Fill(connectionform.data_set,
"AD1");
DataRow data_row =
connectionform.data_set.Tables["AD1"].NewRow();
data_row["name"] = uname;
data_row["username"] = username;
data_row["password"] = password;
data_row["date_of_birth"] = dob;
data_row["gender"] = gender;
data_row["state"] = sstate;
data_row["city"] = ccity;
data_row["area"] = aarea;
data_row["blood_group"] = bloodgroup;
data_row["weight"] = weight;
data_row["mobile_no"] = mobileno;
data_row["residence"] = residence;
data_row["office"] = office;
data_row["email"] = eemail;
connectionform.data_set.Tables["AD1"].Rows.Add(data_row);
connectionform.dataadapter.Update(connectionform.data_set.Tables["AD1"]);
return true;
else
return false;
return false;
try
connectionform.dataadapter.Fill(connectionform.data_set, "l1");
dataRowArray = connectionform.data_set.Tables["l1"].Select("uname
= '" + struser_id + "'");
if (dataRowArray.Length > 0)
data_row = dataRowArray[0];
if (strpassword.Equals(data_row["password"].ToString()))
return true;
else
return false;
else
return false;
return false;
try
{
if (c_name != "" && org != "" && s_topic != "" && s_location != ""
&& request_date != "" && seminar_date != "" && message != "")
connectionform.dataadapter.Fill(connectionform.data_set,
"AD1");
DataRow data_row =
connectionform.data_set.Tables["AD1"].NewRow();
data_row["clientname"] = c_name;
data_row["organization"] = org;
data_row["seminar_topic"] = s_topic;
data_row["seminar_location"] = s_location;
data_row["seminar_request_date"] = request_date;
data_row["seminar_date"] = seminar_date; ;
data_row["message"] = message;
connectionform.data_set.Tables["AD1"].Rows.Add(data_row);
connectionform.dataadapter.Update(connectionform.data_set.Tables["AD1"]);
return true;
else
return false;
return false;
}
try
connectionform.dataadapter.Fill(connectionform.data_set, "l1");
dataRowArray =
connectionform.data_set.Tables["l1"].Select("username = '" + struser_id +
"'");
if (dataRowArray.Length > 0)
data_row = dataRowArray[0];
if (strpassword.Equals(data_row["password"].ToString()))
return true;
else
return false;
else
{
return false;
return false;
}
7) DISEASE:-
using System;
using System.Collections;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.OleDb;
using System.Collections.Generic;
using System.Text;
using System.Web.SessionState;
/// <summary>
/// </summary>
public disease()
cm.Connect();
try
{
if (dieseasename != "")
cm.dataadapter.Fill(cm.ds, "a1");
DataRow dr = cm.ds.Tables["a1"].NewRow();
dr["Disease_Name"] = dieseasename;
cm.ds.Tables["a1"].Rows.Add(dr);
cm.dataadapter.Update(cm.ds.Tables["a1"]);
return true;
else
return false;
return false;
}
8) BLOOD STOCK DETAIL:-
using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.OleDb;
using System.Web.SessionState;
/// <summary>
/// Summary description for BloodStockDetail
/// </summary>
public BloodStockDetail()
cm.Connect();
//
//
try
cm.dataadapter.Fill(cm.ds, "a1");
DataRow dr = cm.ds.Tables["a1"].NewRow();
dr["Blood_group_id"] = groupid;
dr["Blood_Units"] = units;
dr["Date"] = dat;
dr["ActionSr"] = action;
dr["Remark"] = remark;
dr["EOQ"] = eoq;
cm.ds.Tables["a1"].Rows.Add(dr);
cm.dataadapter.Update(cm.ds.Tables["a1"]);
return true;
else
return false;
return false;
try
if (bgrpname != "")
{
cm.command.CommandText = "select * from
Blood_Group_Detail_Master";
cm.dataadapter.Fill(cm.ds, "a1");
DataRow dr = cm.ds.Tables["a1"].NewRow();
dr["Blood_group_name"] = bgrpname;
cm.ds.Tables["a1"].Rows.Add(dr);
cm.dataadapter.Update(cm.ds.Tables["a1"]);
return true;
else
return false;
return false;
DataSet ds1;
if (ds1.Tables["a"].Rows.Count > 0)
return ds1;
else
return null;
DataSet ds1;
if (ds1.Tables["a"].Rows.Count > 0)
return ds1;
else
return null;
DataSet ds1;
ds1 = cm.getdataset("select * from Blood_Stock_Detail where
Blood_group_id='" + groupid + "'and ActionSr='s'", "a");
if (ds1.Tables["a"].Rows.Count > 0)
return ds1;
else
return null;
DataSet ds1;
if (ds1.Tables["a"].Rows.Count > 0)
return ds1;
else
return null;
DataSet ds1;
ds1 = cm.getdataset("select * from Blood_Stock_Detail where Date='" +
dat + "'and ActionSr='r'", "a");
if (ds1.Tables["a"].Rows.Count > 0)
return ds1;
else
return null;
DataSet ds1;
if (ds1.Tables["a"].Rows.Count > 0)
return ds1;
else
return null;
try
if (DonorName != "")
{
cm.dataadapter.Fill(cm.ds, "a1");
DataRow dr = cm.ds.Tables["a1"].NewRow();
dr["Donor_id"] = DonorName;
dr["Test_id"] = testId;
dr["Category_id"] = catId;
dr["Result"] = result;
dr["Test_Date"] = testDate;
dr["Lab_No"] = lab;
dr["Referring_Doctor"] = doctor;
dr["Remark"] = remark;
dr["Report_Date"] = DateTime.Now;
cm.ds.Tables["a1"].Rows.Add(dr);
cm.dataadapter.Update(cm.ds.Tables["a1"]);
return true;
else
return false;
return false;
}
DataSet ds1;
if (ds1.Tables["a"].Rows.Count > 0)
return ds1;
else
return null;
DataSet ds1;
if (ds1.Tables["a"].Rows.Count > 0)
return ds1;
else
return null;
try
DataSet ds3;
return s_sum;
return -1;
{
try
DataSet ds4;
return sum2;
return -1;
DataSet dsAvailability;
if (dsAvailability.Tables["GroupAvailabilityDetails"].Rows.Count > 0)
return dsAvailability;
else
return null;
}
ENHANCEMENT SCOPE
• This project is prepared keeping in mind that this system will be used by many users and
very effective system is used in this project.
• Number of users will increased in future then also with a very few enhancement it will be
able to work properly.
• Database gives facility to add new fields , delete old fields , update ,increase width and
size . So whenever required these operations and changes can be easily applied.
• New contents and new features can be easily added by applying little work or whenever
it will be required in future.
SUGGESTIONS
• The project eliminates the flaws of the existing system by providing fast effective and
accurate processing .
• The overheads for the donors ,patients, and the doctors get effectively reduced by the
implementation of this project.
• When some extra features will needed in the system, it can be implemented with a little
enhancement
Conclusion: - The initial requirements of the blood transfusion department are
satisfied by this project. The donor can easily take appointments and view his
blood test details through this portal.
The basic requirement of the patient to search the donor is effectively fulfilled.
He can search the donor on the basis of city and blood group very easily.
Administrator which is the most authoritative entity of this project, can edit and
view all the reports and details, can create various users like, give appointments
for blood donation to donor .He can also give dates for seminar requests made by
different users.
Doctor can discharge the duties like Disease entry, uploading brochures, replying
queries of users. Similarly, the blood keeper can keep an eye on the stock status
as well as incoming and outgoing of the blood using this portal. The pathologist
can easily made reports regarding the blood test using this portal.
Some other interesting features like refer a friend, a mail service can be
implemented
References:
http://msdn.microsoft.com/en-us/library/4w3ex9c2.aspx
http://en.wikipedia.org/wiki/Microsoft_Visual_Studio#Visual_Studio_2005
http://en.wikipedia.org/wiki/Microsoft_SQL_Server
http://en.wikipedia.org/wiki/Multitier_architecture
http://en.wikipedia.org/wiki/ADO.NET
http://jakarta.apache.org/jmeter/
http://www.devtopics.com/what-is-net/
http://en.wikipedia.org/wiki/Common_Language_Infrastructure
http://www.ironspeed.com/articles/ajax-bridging%20the%20thinclient% 20performance
%20gap/article.aspx
[10] 3-Tier Architecture
http://www.c-sharpcorner.com/