You are on page 1of 194

1.

Introduction & Objective(s)

Introduction:-

In today’s world of emerging technology, computers are playing a vital role in every walk of
life. The problems due to the traditional system are overcome with the help of tasks being
online. Maintenance of the data like insertion, deletion and modification is difficult with
manual systems. The basic option of security is itself not provided which is of major concern.
Apart from this, storage of the voluminous amounts of data is difficult. Moreover the
problems of consistency, reliability, integrity also exists. Since this is a manual system there
is always a probability that there is loss of data, resulting in less durability. As these issues
are of major concern, we developed an application were in all the above factors are achieved.

To overcome the manual usage of data, A.P.S.E.B. used the concept of single tier architecture
which could solve only few problems.

As these issues are of major concern, we developed an application to A.P.S.E.B. were in all
the above factors are achieved. Addressing these issues, we develop a web application
“EBS” (The Energy Billing System) which provides a service to all the customers and
employees of A.P.S.E.B to deal with the transactions online.

Energy Billing System is an Executive Information System that could be used for entering,
calculating and monitoring the Billing details of the Electricity Consumers. It provides
environment to maintain the consumer details starting from getting new connection, receiving
bill, payments etc., and performance information to the management.

It would be an Intranet and Internet based software solution that would ensure timely
availability of status parameters. The ability to view the reports online ensure access to these
reports from any machine on the ex LAN and WAN network.

Page | 1
Objective(s):-
The project basically deals with the billing system. Since it’s a web application the
problems of single tier could be solved using this application. Customers can lodge a
complaint or deal with new connections just by logging into the system.

The application basically starts by asking the user to sign in by choosing the CIRCLE
ID and ERO ID. Later username and password of the employee option is provided.
Validating the username and password, the user is directed to the homepage were in
he has various options like consumer management, revenue collection, billing and
accounting, generating the report.

Regarding the modification, constraint is provided wherein the access is limited to the
administrator. The statuses of the requests are updated at the earliest. The rectification
information will be again updated for the knowledge of the employee. The employee
can check the status of the requests before accessing the computer, which will speed
up the disposal of the request. Thus, improving the overall efficiency of the
organization.

The system captures data related to Consumers and presents them in the form of
reports. These reports are meant for the ERO officers and top management to view
details for track performance, generating D-List, were payments are not done. The
System tracks the performance on a daily basis as well as cumulatively over a period
of time. The System captures Information related to actual demand, energy using,
payments, exceptions, and etc. from various levels of organization with in the aim of
capturing it from as close to the source as possible.

The system helps the user to communicate with the administrator directly which is
always expected for establishing a user-friendly environment. It can be used with
existing software, so there is no need for any additional software. Thus, making it
technically feasible.

Page | 2
Scope:-

This application is basically written as a solution to the drawbacks of existing system. This
application can be used as a real world application and by any organization. It’s could be
used as a general application with few minor modifications.

The purpose of this application is to develop Electricity Billing System, which is a web
application which provides a service to all the customers and employees of an existing
company to deal with the transactions online.

The company is presently dealing with the transactions using Ms-SQL Server. The problem
with D2K is that there exists heavy network traffic either in two tier or three tier architecture.
Here the cost to develop the project will be less but the reliability will be degraded. Thus this
application provides a solution to problems of single tier. Customers can lodge a complaint or
deal with new connections just by logging into the system and do the transactions online.

Page | 3
2. System Analysis

a. Identification of Needs:-
In day-to-day work, lack of self-sufficiency constitutes information needs. This information
needs represent gaps in the current knowledge of the user. Apart from the expressed or
articulated needs, there are unexpressed needs which the user is aware of but does not like to
express. The third category of need is the delitescent or dormant need, which the user is
unaware of. But the information services provider may be able to bring to light these needs. A
need is specific and generally time bound either immediate or deferred. The information
provided for a need will be used. In the case of interest, the information provided may be
used or may not be used. According to Crawford information needs depend on…

Work activity
Discipline/ Field / Area of interest
Availability of facilities
Hierarchical position of individuals
Motivation factors for information needs
Need to take a decision
Need to seek new ideas
Need to validate the correct ones
Need to make professional contributions
Need to establish priority for discovery etc.

Information needs are affected by a variety of factors such as:

The range of information sources available;


. The uses to which the information will be put;
The background, motivation, professional orientation and other individual
characteristics of the user;
The social, political, economic, legal and regulatory systems surrounding the user;
and
The consequences of information use.

Page | 4
Information needs identification is a complex process. Some of the factors adding to the
complexity are…

Different users perceive same information differently as their information need.


(Value system of users differs due to the nature of work and it affects factors such as
the information products and services).
Researchers need original documents whereas planners need digests of `point of view
' / opinions);
Information is put to different uses (R & D personnel, Application developers and
Technicians all put information to different uses);
Need is satisfied by having access to the identified information in a particular package
and form, and at a suitable time;
The flow of information and channels of communication are complex and add to the
complexity; and
Individual preferences and behavioral aspects add a further dimension.

Apart from the complexities mentioned above, there are problems due to individual behavior
too:

A user may not like to reveal his/her need as s/he may like to show that s/he is above
(any) requirements and that s/he knows his/her sources. To divert or mislead s/he may
give or just because someone else is getting information s/he may give a pseudo need
to receive the same information. A super ordinate, to avoid a subordinate getting
informed, may give it as a pseudo need and try to withhold the information received.

Further, an interaction of all the above factors makes the process of identifying information
needs akin to carrying out an investigation or detective work, and is one of the 'grey areas' of
research in system and Information Science for the past few decades.

So, in our application “EBS” – The Energy Billing System the needs are as follows…

This application is basically an online or web based system that means though having user’s
interaction and input-output conversation, yet it will be operated though the net and user will

Page | 5
maintain a global communication and exchange ideas and also they can receive services from
every corner of our Earth. Any type of response can generate on the real time basis, i.e.
instantly the user can get their answers against various queries.

b. Preliminary Investigation: -
The purpose of the preliminary investigation is to collect information for developing broad
solutions for the purpose of feasibility study. Material i.e. information and facts to be
collected in the preliminary investigation not only act as a basis for forming the several board
solutions of proposed system but it also provides the much needed feedback for selection of
the final candidates system among the solutions suggested in the course of feasibility study.
Actually it means to be find out the way that how the proposed web application will be
developed containing which facts and figures.

Now the preliminary investigation is carried out as follows:

Data and Fact Gathering Techniques: -

The choice of method is influenced by the data collection strategy, the type of variable, the
accuracy required, the collection point and the skill of the enumerator. Links between a
variable, its source and practical methods for its collection (Table 6.1, Table 6.2 and Table
6.3) can help in choosing appropriate methods. The main data collection methods are:-

Registration: registers and licenses are particularly valuable for complete


enumeration, but are limited to variables that change slowly, such as numbers of
fishing vessels and their characteristics.
Questionnaires: forms which are completed and returned by respondents. An
inexpensive method that is useful where literacy rates are high and respondents are
co-operative.
Interviews: forms which are completed through an interview with the respondent.
More expensive than questionnaires, but they are better for more complex questions,
low literacy or less co-operation.

Page | 6
Direct observations: making direct measurements is the most accurate method for
many variables, such as catch, but is often expensive. Many methods, such as
observer programmes, are limited to industrial fisheries.
Reporting: the main alternative to making direct measurements is to require fishers
and others to report their activities. Reporting requires literacy and co-operation, but
can be backed up by a legal requirement and direct measurements.

Information you gather can come from a range of sources. Likewise, there are a variety of
techniques to use when gathering primary data. Listed below are some of the most common
data collection techniques used for collecting data.

Some of the data collection techniques are : -


Interviews
Questionnaires and Surveys
Observations
Focus Groups
Ethnographies, Oral History, and Case Studies
Documents and Records
  
Overview Of Different Data Collection Techniques -
Technique Key Facts Example
Interviews  Interviews can be conducted in One-on-one conversation with parent of at-
person or over the telephone risk youth who can help you understand the
 Interviews can be done formally issue
(structured), semi-structured, or Click here to see a sample key informant
informally interview.
 Questions should be focused,
clear, and encourage open-ended
responses
 Interviews are mainly
qualitative in nature
Questionnaires and  Responses can be analyzed with Results of a satisfaction survey or opinion
Surveys quantitative methods by assigning survey

Page | 7
numerical values to Likert-type Click here to see an example of a survey
scales created using the CYFERnetSEARCH
 Results are generally easier Interactive Survey Builder feature.
(than qualitative techniques) to Click here to see a sample survey on middle
analyze school youth risk behavior.
 Pre-test/Post-test can be
compared and analyzed
Observations  Allows for the study of the Site visits to an after-school program to
dynamics of a situation, frequency document the interaction between youth and
counts of target behaviors, or other staff within the program
behaviors as indicated by needs of
the evaluation
 Good source for providing
additional information about a
particular group, can use video to
provide documentation
 Can produce qualitative (e.g.,
narrative data) and quantitative data
(e.g., frequency counts, mean length
of interactions, and instructional
time)
 
Focus Groups  A facilitated group interview A group of parents of teenagers in an after-
with individuals that have something school program are invited to informally
in common discuss programs that might benefit and
 Gathers information about help their children succeed
combined perspectives and opinions
 Responses are often coded into
categories and analyzed thematically
Ethnographies,  Involves studying a single Shadowing a family while recording
Oral History, and phenomenon extensive field notes to study the experience
Case Studies  Examines people in their natural and issues associated with youth who have
settings a parent or guardian that has been deployed
 Uses a combination of Click here for an example of an oral history.
techniques such as observation, Click here for an additional example of an
Page | 8
interviews, and surveys oral history.
 Ethnography is a more holistic
approach to evaluation
 Researcher can become a
confounding variable
Documents and  Consists of examining existing To understand the primary reasons students
Records data in the form of databases, miss school, records on student absences
meeting minutes, reports, attendance are collected and analyzed
logs, financial records, newsletters, Click here for an example of a searchable
etc. database of aggregate data on youth risk
 This can be an inexpensive way behavior.
to gather information, but may be an
incomplete data source

The data collected during preliminary investigations have been gathered through some
primary methods. These are as follows:-

1. Gathering Data
Choose data-gathering technique based on the project's needs. Such techniques
include in-person interviews, questionnaires sent via regular mail, phone interviews or
use of the Internet. Keep in mind that different cultures and subcultures respond
differently to various techniques, and that we should not limit ourselves to one
technique if combining two or three methods provides optimal results.

In-person interviews. Researchers who conduct in-person interviews can benefit by:
Receiving high contact and response rates
Conducting long, in-depth interviews
Supplementing participants' responses with observations of them
Allowing respondents a chance to interact with stimuli (e.g., pictures, products)
At the same time, in-person interviews have their disadvantages. Such interviews:
Can take weeks to complete
Are expensive (Rs100 to Rs200-plus per interview)
Fail to contact gated communities

Page | 9
Can be skewed by possible interviewer bias through expressions, comments, etc.
Mail. Like in-person interviews, questionnaires sent via regular mail provide
participants the chance to submit thoughtful responses, since they have time to look
up information and reflect before responding, plus there is a high contact rate. Mailing
out questionnaires is effective for surveying homogeneous groups, and there is
relatively low cost involved with surveying a wide geographic area.

This technique should not be used for general population studies, however. Some
people cannot read or write well, so their responses can be unclear or skewed by
misinterpretation of the question. Also, mailing questionnaires offers low return rates
and can take weeks to complete. Hence, a company should entice potential
participants by providing:

An immediate prize (e.g., a small gift sticker, etc., included with questionnaire)
A future prize (e.g., collectible gift, stamp, etc., sent after participants return
questionnaires)
A chance to win something (e.g., entering name in raffle drawing)
Additionally, the company should explain the value of the study and send a letter
before the study announcing it and a reminder after potential participants receive
the questionnaire with a set deadline.

2. Phone.
While mailing questionnaires works when targeting a homogeneous group, a phone
interview is the most popular method for researching general populations. This
method boasts a good response rate, is effective in reaching most people and is quick
and inexpensive. However, phone interviews are typically limited to 8 to 10 minutes,
which demands that participants give short, top-of-mind responses. Phone interviews
also limit whom you contact, since most people have answering machines or caller
ID, or they mistake a researcher for a telemarketer.

3. Database Generators.
For a more accurate depiction of continuing behavior, you may want to merge
existing information the company has about its customers' lifestyles with information
Page | 10
obtained by tracking how often they use checks, credit cards, discount cards, etc.
Likewise, employee databases provide a way to assess productivity by tracking their
sales volume and expenses, for instance. Also, you can combine employment statistics
(e.g., length of employment, job classification) with behavioral statistics (e.g., use of
in-house communication, e-mail, Internet) to develop communication. Internet
tracking. Internet tracking that records how often a web application is "hit" can be
skewed by search engines that count a hit even if a person does not see the page. Also,
a hit does not indicate that a person paid attention or found the information useful. To
address this, install a cookie on the computer that keeps track of an audience's
behavior while on the web application. Internet and e-mail. Using the Internet and e-
mail to gather information is inexpensive and quick, and offers immediate analysis of
perhaps thousands of responses. This technique, useful for surveying within an
organization, is not suggested for general population studies, as it is limited to those
with Internet access. Setting up such a complex database can prove costly, and
privacy concerns arise. Researchers who use this method encounter similar problems
as those who use regular mail. Additionally, we should consider the following when
conducting an Internet survey:
How to control who gets a questionnaire
How to prevent the same person from responding twice
Whether all computers format the questionnaire correctly

4. Developing A Questionnaire

When designing a questionnaire, we always keep in mind:


Questions and response categories embody our variables.
Response categories quantify variables for analysis.
Standardizing how data is collected reduces bias and allows the study to be
replicated.

Keep in mind also that a general population study is usually limited to an eight-minute
phone call or four-page mail.

a. Types of questions.

Page | 11
Researchers typically ask questions leading to responses that are fixed or
open-ended. Fixed responses, used when you know the likely answers, are
easy to code and analyze. Consider open-ended questions when you are
uncertain of the response. Such questions should be used sparingly because
they take time away from other short questions, and answers must be
categorized. These questions should be written with "probes" (e.g., "Are there
any other issues?") that allow respondents to elaborate.

b. Rules of thumb.

These rules will make questionnaires more efficient and less biased. Sometimes
there is a good reason for breaking these rules, but for the most part, we should:
Keep it short, simple and to the point
Write clearly in the language of the target population
Keep a logical order for asking questions
Save sensitive items for the end
Avoid leading/loaded questions or combining multiple questions into one

c. Pre-test.

Have people fill out the questionnaire or answer on the phone, and ask them at
the end if they found anything difficult to answer. Make all necessary
adjustments, and pretest the questionnaire again.

After the preliminary investigation we try to make an outline of the database of the proposed
system. Entity- Relationship diagram gives a picture of the entities to be used, their
relationship with each other and their attributes. Actually the study phase is considered as the
requirement analysis, which is the most vital part of the software development life cycle
(SDLC). Without proper analysis something will remain hidden from the developer may
generate certain fatality in near future even in after the implementation, too. Analysis is a
software engineering task that bridges the gap between system level requirements
engineering and system design.

c. Feasibility Study: -

Page | 12
A feasibility study is a preliminary study undertaken to determine and document a project's
viability. Also known as feasibility analysis. The term feasibility study is also used to refer
to the resulting document. The results of this study are used to make a decision whether or
not to proceed with the project. If it indeed leads to a project being approved, it will — before
the real work of the proposed project starts — be used to ascertain the likelihood of the
project's success. It is an analysis of possible alternative solutions to a problem and a
recommendation on the best alternative. It, for example, can decide whether an order
processing be carried out by a new system more efficiently than the previous one. A
feasibility study is an important part of creating a business plan for a new enterprise, since it
has been estimated that only one idea in fifty is commercially viable. If a project is seen to be
feasible from the results of the study, the next logical step is to proceed with it. The research
and information uncovered in the feasibility study will support the detailed planning and
reduce the research time.

Feasibility study is one of the most important factors to undergo a process of software
development, it is considered as one of the first step of SDLC (i.e. Software Development
Life-Cycle). There remain various kinds of feasibility studies, but most important of them to
be required actually for a software development is discussed below: -

This mainly occurred to make the system feasible. Mainly I am interested about the following
feasibilities, such as :-

1. Technical Feasibility
2. Economic Feasibility
3. Operational Feasibility
4. Social Feasibility
5. Management Feasibility
6. Time Feasibility
7. Legal Feasibility

Technical Feasibility:--

Page | 13
This is concern with specifying equipment and software that will successfully satisfied
the user requirement. The technical needs of the system may very considerably but might
include some feature such as-

The facility to produce output in a given time.


Response time under certain conditions.
Ability to process a certain volume of transudation at a particular speed.
Facility to communicate data to distant location.

In our system the technical feasibility is mostly emphasis on the above points because in the
rush hour it will provide the speed and accuracy to the user of the system. It gives the idea to
smooth operation of the system and communicate between them.

Economic Feasibility:-
It is the most important now a days the economic performance of software that how much
cost cutting provided by the software, how much it cost effective. From the point of view
of my software it is give more than ninety percent of cost benefit because it provide
stationary less office and account also partly maintain by my system itself.

Operational Feasibility:-
It is mainly related to human organizational and political aspects. The point to considered
are:

What changes will be brought with the system, what organizational structures are
distributed, what new skills are required, do the existing staff members have these skills?
These types of questions are executed in this feasibility. To solve this types of question
my system is implemented such a way that no high skill personal are not required, only
the man who know some English language and has data entry knowledge who can drive
this system very effectively and existing staffs are enough for my system.

Social Feasibility: -
Social feasibility is a determination of whether a proposed project will be acceptable to
the people or not. I think this project highly appreciable by the user because it helps them

Page | 14
lots and also take some thanks from the tourist who are also want to gather the
information about the spot they want to visit.

Management Feasibility: -
Management feasibility is a determination of whether a proposed project will be
acceptable to management. This project get the support from the manager of some
renowned travel company they appreciate me to doing this project and give moral
support also.

Time Feasibility: -
Time feasibility is a determination of whether a proposed project can be implemented
fully within a stipulated time frame. This project is a complete project within stipulated
time but if I get more time I can make this project more advanced one.

Legal Feasibility: -
Legal feasibility is determined with legal aspects this project is done under supervision of
my project guide no rule violation is occurred in this project.

For the system maintenance the all reasons are required. In this system all the above topics is
considered then it is need worry about the systems feasibility. In this organization all the
person are computer literate through corporate training, so there no questions to unused the
system by improper handling. From the economic point of view there is no such investment
on money such as computer, printer, operator etc. All of them are computer literate so any
one can handle the machine so the recurring cost of operation minimized. The installation of
machine does need not a factor because it is the computer related field. From the technical
point of view, if it is necessary to change certain criteria or print the different format there
should have one programmer to prepare the report format.
The system when required to update for reporting and other application it can be done
without interrupting the existing software. The system is so handy that can be transform to all
the personal computer. The data security is maintained by copy the system in floppy disk.
The regular backup should be done to avoid the system crush.

Cost-Benefit Analysis…

Page | 15
Cost-Benefit Analysis (CBA) estimates and totals up the equivalent money value of the
benefits and costs to the area of projects to establish whether they are sensible.

Principles of Cost Benefit Analysis:-


One of the problems of CBA is that the computation of many components of benefits
and costs is intuitively obvious but that there are others for which intuition fails to
suggest methods of measurement. Therefore some basic principles are needed as a
guide.

There Must Be a Common Unit of Measurement:-


In order to reach a conclusion as to the desirability of a project all aspects of the
project, positive and negative, must be expressed in terms of a common unit; i.e.,
there must be a "bottom line." The most convenient common unit is money. This
means that all benefits and costs of a project should be measured in terms of their
equivalent money value. A program may provide benefits which are not directly
expressed in terms of Rupee but there is some amount of money the recipients of the
benefits would consider just as good as the project's benefits. For example, a project
may provide for the aged in an area a free monthly visit to a doctor. The value of that
benefit to an elderly recipient is the minimum amount of money that that recipient
would take instead of the medical care. This could be less than the market value of
the medical care provided. It is assumed that more esoteric benefits such as from
preserving open space or historic sites have a finite equivalent money value to the
public.

Not only do the benefits and costs of a project have to be expressed in terms of equivalent
money value, but they have to be expressed in terms of rupee of a particular time. This is not
just due to the differences in the value of rupee at different times because of inflation. A
rupee available five years from now is not as good as a rupee available now. This is because
a rupee available now can be invested and earn interest for five years and would be worth
more than a rupee in five years. If the interest rate is r then a rupee invested for t years will
grow to be (1+r)t. Therefore the amount of money that would have to be deposited now so
that it would grow to be one rupee t years in the future is (1+r)-t. This called the discounted
value or present value of a rupee available t years in the future.

Page | 16
When the rupee value of benefits at some time in the future is multiplied by the discounted
value of one rupee at that time in the future the result is discounted present value of that
benefit of the project. The same thing applies to costs. The net benefit of the projects is just
the sum of the present value of the benefits less the present value of the costs.

The choice of the appropriate interest rate to use for the discounting is a separate issue that
will be treated later in this paper.

The procedure is to determine the benefits and saving that are expected from a candidate
system and compare them with costs. If the benefits outweigh costs, then decision is made to
design and implement the system. Considering the facts it is become evident that the system
will be economically feasible both for developer as well as for client’s respect.

Technical feasibility centers on the existing computer system (hardware, software, etc.)And
to what level it can support the proposed addition. If the budget is a serious constraint, then
the project is judged not feasible. Here it is not a constraint altogether.

Now, let us discuss briefly, what are there actual jobs are? Different related sites are studied
thoroughly with all their different facilities and systems. The discussions are done with the
associates to get the proper requirements for conduction of such a system. The overall system
is the most hectic one and watched properly how it is operated actually and then the process
of site development is going on.

In this fast changing world, competition has taken a huge toll over millions. In this
competitive world, everyone is seeking for a better lifestyle and a source of livelihood. As a
result, communications between the nearer and dearer ones seems to have deteriorated to a
very large extent. The same could have resulted due to two primary reasons:

Monetary Consideration
Lack of cheap communication awareness.

The very serious concern needs to be purged and as a result it has became necessary to
implement an automated communication system which will efficiently handle each process of

Page | 17
the interaction and will maximize the communication utilization and minimize the
unavoidable human constraints thereby increasing the notion of “Stay Connected”.

So in above discussion we can say regarding this project Basic structure of CBA is given
below: -

1. Software Costs
Relates to the buying of the software required to develop the project as well as the
software required to run the application in the organization.

2. Facility Costs
Are expenses incurred in the preparation of the physical site in organization where the
application or the computer will be in operation? This includes wiring, flooring,
acoustics, lighting and air conditioning. These costs have been treated as one-time costs.

3. Operating Costs
Include all cost associated with the day-to-day operation of the system. The amount
depends on the number of shifts, the nature of the applications and the caliber of the
operating staff.

4. Supply Costs
Are variable costs that increase with increase use of papers, ribbons, disk, and the like.
They have been estimated and included in the overall cost of the system.

The management & operators desire to be well acquainted with the requisite skill needed.

Now the preliminary investigation is carried out as follows:

i. Interviewing: -
The people who will use the system (also called end-users) are interviewed
thoroughly to find out what they actually want from the system to serve the
customers better.

ii. Group Communication: -


Page | 18
After the interview session, group discussion is conducted. Here, the overall
functionality of the system is discussed within the group.

iii. Record Review: -


The current records of the existing system, which are manually handled, are
reviewed to take stake how these records would appear in the automated system.

d. Project Planning: -
Project Planning is an aspect of Project Management that focuses a lot on Project Integration.
The project plan reflects the current status of all project activities and is used to monitor and
control the project.

The Project Planning tasks ensure that various elements of the Project are coordinated and
therefore guide the project execution.

Project Planning helps in …

Facilitating communication
Monitoring/measuring the project progress, and
Provides overall documentation of assumptions/planning decisions

The Project Planning Phases can be broadly classified as follows:-

Development of the Project Plan


Execution of the Project Plan
Change Control and Corrective Actions

Project Planning is an ongoing effort throughout the Project Lifecycle.

Project planning is a discipline for stating how to complete a project within a certain
timeframe, usually with defined stages, and with designated resources. One view of project
planning divides the activity into:

Page | 19
Setting objectives (these should be measurable)
Identifying deliverables
Planning the schedule
Making supporting plans

Supporting plans may include those related to: human resources, communication methods,
and risk management.
Computer hardware and software project planning within an enterprise is often done using a
project planning guide that describes the process that the enterprise feels has been successful
in the past.
Tools popularly used for the scheduling part of a plan include the Gantt chart and the PERT
chart.

Steps in Planning:-

Project Planning spans across the various aspects of the Project. Generally Project Planning is
considered to be a process of estimating, scheduling and assigning the projects resources in
order to deliver an end product of suitable quality. However it is much more as it can assume
a very strategic role, which can determine the very success of the project. A Project Plan is
one of the crucial steps in Project Planning in General!

Typically Project Planning can include the following types of project Planning:

Step 1: Explain the project plan to key stakeholders and discuss its key components

"Project plan" is one of the most misunderstood terms in project management. It is a set of
living documents that can be expected to change over the life of the project. Like a road map,
it provides the direction for the project.

And like the traveler, the project manager needs to set the course for the project. Just as a
driver may encounter road works or new routes to the final destination, the project manager
may need to correct the project course. 

Page | 20
A common misconception is that the plan equates to the project timeline - that is only one of
the components of the plan. The project plan is the major work product from the entire
planning process, so it contains all the planning documents.
For example, a project plan for constructing a new office building needs to include not only
the specifications for the building, the budget and the schedule, but also the risks, quality
metrics, environmental impact, etc. 

Components of the project plan include: 


Baselines: These are sometimes called performance measures because the
performance of the entire project is measured against them. They are the project's
three approved starting points for scope, schedule and cost. These are used to
determine whether or not the project is on track during execution
Baseline management plans: These include documentation about how variances will
be handled throughout the project
Other work products from the planning process, which include plans for risk
management, quality, procurement, staffing and communications 

Step 2: Define roles and responsibilities:-

Identifying stakeholders - those who have a vested interest in either the project or its outcome
- is challenging and especially difficult on large, risky, high-impact projects. There are likely
to be conflicting agendas and requirements among stakeholders, as well as different slants on
who needs to be included.

For example, the stakeholder list of the city council where a new office building is being
constructed could differ from that of an engineering consulting firm. It would certainly
include the developer who wants to build the complex, the engineering firm that will build it,
citizens who would prefer a park, consultants to study the environmental impact, the city
council itself, etc.

The engineering firm may have a more limited view. It is important for the project manager
to get clarity and agreement on what work needs to be done by whom, as well as which
decisions each stakeholder will make. 

Page | 21
Step 3: Develop a scope statement:- 
The scope statement is arguably the most important document in the project plan. It is used to
get common agreement among the stakeholders about the project definition.

It is the basis for getting the buy-in and agreement from the sponsor and other stakeholders
and decreases the chances of miscommunication.
This document will most likely grow and change with the life of the project. The scope
statement should include: 
Business need and business problem 
Project objectives, stating what will occur within the project to solve the business
problem 
Benefits of completing the project, as well as the project justification 
Project scope, stated as which deliverables will be included or excluded from the
project
Key milestones, the approach and other components as dictated by the size and nature
of the project 

It can be treated like a contract between the project manager and sponsor - one that can only
be changed with sponsor approval. 

Step 4: Develop the project baselines:-

Scope baseline-Once the deliverables are confirmed in the scope statement, they need to be
developed into a work breakdown structure of all the deliverables in the project.
The scope baseline includes all the deliverables produced on the project, and therefore
identifies all the work to be done. These deliverables should be inclusive.

Building an office building, for example, would include a variety of deliverables related to
the building itself, as well as such things as impact studies, recommendations, landscaping
plans, etc. 
Schedule and cost baselines 
Identify activities and tasks needed to produce each of the deliverables identified in
the scope baseline. How detailed the task list needs to be depends on many factors,

Page | 22
including the experience of the team, project risk and uncertainties, ambiguity of
specifications, amount of buy-in expected, etc
Identify resources for each task, if known 
Estimate how many hours it will take to complete each task 
Estimate cost of each task, using an average hourly rate for each resource 
Consider resource constraints, or how much time each resource can realistically
devote to this one project
Determine which tasks are dependent on other tasks, and develop critical path
Develop schedule, which puts all tasks and estimates in a calendar. It shows by
chosen time period (week, month, quarter or year) which resource is doing which
tasks, how much time each task is expected to take, and when each task is scheduled
to begin and end 
Develop the cost baseline, which is a time-phased budget, or cost-by-time period 

This process is not a one-time effort. Throughout the project, you will most likely be adding
to and repeating some or all of these steps. 

Step 5: Create baseline management plans:-

Once the scope, schedule and cost baselines have been established, create the steps the team
will take to manage variances to these plans.

All these management plans usually include a review and approval process for modifying the
baselines. Different approval levels are usually needed for different types of changes.
Not all new requests will result in changes to the scope, schedule or budget, but a process is
needed to study all new requests to determine their impact on the project. 

Step 6: Communicate:-
One important aspect of the project plan is the communications plan. This document states
such things as: 
Who wants which reports, how often, in what format and using what media
How issues will be escalated and when 
Where project information will be stored and who can access it 
What new risks have surfaced and what the risk response will include 
Page | 23
What metrics will be used to ensure a quality product is built 
What reserves have been used for which uncertainties

Once the project plan is complete, it is important that its contents be delivered to key
stakeholders. This communication should include such things as: 
Review and approval of the project plan
Process for changing the contents of the plan
Next steps - executing and controlling the project plan and key stakeholder
roles/responsibilities 

Developing a clear project plan takes time. The project manager will probably be tempted to
skip the planning and jump straight into execution.

However, the traveler who plans the route before beginning a journey ultimately reaches the
intended destination more quickly and more easily than the disorganized traveler, who often
gets lost along the way.

Similarly, the project manager who takes time to create a clear project plan will follow a
more direct route to project success.

1) Project Scope Definition and Scope Planning: -


In this step we document the project work that would help us achieve the project goal. We
document the assumptions, constraints, user expectations, Business Requirements, Technical
requirements, project deliverables, project objectives and everything that defines the final
product requirements. This is the foundation for a successful project completion.

2) Project Activity Definition and Activity Sequencing: -


In this step we define all the specific activities that must be performed to deliver the product
by producing the various product deliverables. The Project Activity sequencing identifies the
interdependence of all the activities defined.

3) Time, Effort and Resource Estimation: -


Once the Scope, Activities and Activity interdependence is clearly defined and documented,
the next crucial step is to determine the effort required to complete each of the activities. The
Page | 24
Effort can be calculated using one of the many techniques available such as Function Points,
Lines of Code, Complexity of Code, Benchmarks, etc. This step clearly estimates and
documents the time, effort and resource required for each activity.

4) Risk Factors Identification: -


“Expecting the unexpected and facing it” .It is important to identify and document the risk
factors associated with the project based on the assumptions, constraints, user expectations,
specific circumstances, etc.

5) Cost Estimation and Budgeting:-


Based on the information collected in all the previous steps it is possible to estimate the cost
involved in executing and implementing the project. A Cost Benefit Analysis can be arrived
at for the project. Based on the Cost Estimates Budget allocation is done for the project.

6) Organizational and Resource Planning:-


Based on the activities identified, schedule and budget allocation resource types and
resources are identified. One of the primary goals of Resource planning is to ensure that the
project is run efficiently. This can only be achieved by keeping all the project resources fully
utilized as possible. The success depends on the accuracy in predicting the resource demands
that will be placed on the project. Resource planning is an iterative process and necessary to
optimize the use of resources throughout the project life cycle thus making the project
execution more efficient. There are various types of resources – Equipment, Personnel,
Facilities, Money, etc.

7) Schedule Development:-
The time schedule for the project can be arrived at based on the activities, interdependence
and effort required for each of them. The schedule may influence the cost estimates, the cost
benefit analysis and so on.

Project Scheduling is one of the most important task of Project Planning and also the most
difficult tasks. In very large projects it is possible that several teams work on developing the
project. They may work on it in parallel. However their work may be interdependent.

Again various factors may impact in successfully scheduling a project


Page | 25
Teams not directly under our control
Resources with not enough experience

8) Quality Planning: -
The relevant quality standards are determined for the project. This is an important aspect of
Project Planning. Based on the inputs captured in the previous steps such as the Project
Scope, Requirements, deliverables, etc. various factors influencing the quality of the final
product are determined. The processes required to deliver the Product as promised and as per
the standards are defined.

9) Risk Management Planning: -


Risk Management is a process of identifying, analyzing and responding to a risk. Based on
the Risk factors Identified a Risk resolution Plan is created. The plan analyses each of the risk
factors and their impact on the project. The possible responses for each of them can be
planned. Throughout the lifetime of the project these risk factors are monitored and acted
upon as necessary.

10) Project Plan Development and Execution: -


Project Plan Development uses the inputs gathered from all the other planning processes such
as Scope definition, Activity identification, Activity sequencing, Quality Management
Planning, etc. A detailed Work Break down structure comprising of all the activities
identified is used. The tasks are scheduled based on the inputs captured in the steps
previously described. The Project Plan documents all the assumptions, activities, schedule,
and timelines and drives the project.

Each of the Project tasks and activities are periodically monitored. The team and the
stakeholders are informed of the progress. This serves as an excellent communication
mechanism. Any delays are analyzed and the project plan may be adjusted accordingly.

11) Performance Reporting:-


As described above the progress of each of the tasks/activities described in the Project plan is
monitored. The progress is compared with the schedule and timelines documented in the
Project Plan. Various techniques are used to measure and report the project performance such
Page | 26
as EVM (Earned Value Management) A wide variety of tools can be used to report the
performance of the project such as PERT Charts, GANTT charts, etc.

12) Planning Change Management: -


Analysis of project performance can necessitate that certain aspects of the project be changed.
The Requests for Changes need to be analyzed carefully and its impact on the project should
be studied. Considering all these aspects the Project Plan may be modified to accommodate
this request for Change.

Change Management is also necessary to accommodate the implementation of the project


currently under development in the production environment. When the new product is
implemented in the production environment it should not negatively impact the environment
or the performance of other applications sharing the same hosting environment.

13) Project Rollout Planning:-


In Enterprise environments, the success of the Project depends a great deal on the success of
its rollout and implementations. Whenever a Project is rolled out it may affect the technical
systems, business systems and sometimes even the way business is run. For an application to
be successfully implemented not only the technical environment should be ready but the
users should accept it and use it effectively. For this to happen the users may need to be
trained on the new system. All this requires planning.

Considering all those things, it can be decided that to develop such type of system the
“Spiral Model”-proposed by Boehm is the most suitable one. It consists the iterative nature
of prototyping model and it is the rapid development of incremental version of software.
Using spiral model, software is developed in a series of incremental releases. It is a realistic
approach and suitable for development of large-scale system and can be used a risk reduction
mechanism and enables the developer to apply prototyping approach at new stage in the
evolution of the product.

A spiral model is divided into a number of framework activities, also called task region,
typically there are 3-6 tasks regions.

Page | 27
Tasks required establishing effective communication between
developer and customer,
Tasks required defining resources, timelines and other
projects.
Tasks required to build one or more representations of the applications.
Tasks required constructing, testing, installing, and providing user support (e.g.
documentation and training).
Tasks required obtaining customer feedback based on evaluation of the software
representations created during the engineering stage and implemented during the
installation stage.

Each of the regions is populated by a set of work tasks, called a task set, that re adapted to the
characteristics of the project to be undertaken. For small projects the number of work tasks
and their formality is low. For larger, more critical projects each task region contains more
work tasks that are defined to achieve a higher level of formality. This evolutionary process
begins, the software engineering team moves around the spiral in a clockwise direction,
beginning at the center. The first circuit around the spiral might results in the development of
a product specification; subsequent passes around the spiral might be used to develop a
prototype and then progressively more sophisticated versions of the software. Each pass
thorough the planning region results in adjustment to the project plan. Cost and schedules are
adjusted based on the feedback derived from customer evaluation. In addition the project
manager adjusts the planned number of iterations required to complete the software.

Page | 28
Fig: Spiral Life Cycle Model of Software Development

e. Project Scheduling: -

In project management, a schedule consists of a list of a project's terminal elements with


intended start and finish dates. Terminal elements are the lowest element in a schedule, which
is not further subdivided. Those items are often estimated in terms of resource requirements,
budget and duration, linked by dependencies and scheduled.

By using following Table below describes the project’s activities and expected durations the
system will be developed and installed by computer programmers, systems analysts, and
personnel from the different function. The organization can hired sufficient programmers
and has sufficient accountants on staff, but the systems analysts who mediate between the
‘tetchiest’ and the staffs are in short supply. Currently, only three systems analysts are
available to the firm, and the number of analysts needed for each activity is listed in the table.
The table also specifies immediate predecessors, the smallest possible list of tasks, which
must be completed before starting each activity.

Immediate Duration Systems


Description Predecessors (Weeks) Analysts

A Specify functional and user interface - 4 2


features
B Design and code functional component A 4 2
C Test and debug functional component B 4 2
D Internal audit of functional test C 2 1
E Design and code graphical user interface A 6 1
F Integrate functional component and C,E 6 2
interface
G Train personnel on interface E 6 1
H Train personnel on test bed using F,G 4 2

Page | 29
integrated system

Begin by assuming that the project durations listed in Table are guaranteed, so that they are
not subject to randomness.

Network Diagrams and Critical Paths…

A network diagram in which rectangles, or nodes, signify activities may also represent the
information in the table. Arrows between the nodes represent the relationships between
activities.

A
Table-Description of Systems Project

Fig: Network Diagrams

All arrows to a node begin at the node’s immediate predecessors, indicating that the activity
cannot be started until all activities prior to that node in the network are completed.

Site Visit: -
At last the site where the system will be implemented is viewed to ensure quick and easy
installation of the computing platform.

After the preliminary investigation we try to make an outline of the database of the proposed
system. Entity- Relationship diagram gives a picture of the entities to be used, their
relationship with each other and their attributes.

Page | 30
PERT Chart/ Task Network Chart:-
The Program Evaluation Review Technique (PERT) is the cost and time management system.
PERT organizes that project is complex that some task must be completed before other can
be stated and that the appropriate way to manage a project is to define and control each task.
Because projects often fall behind schedules, PERT is designed to facilitate getting a project
back on schedule. The PERT chart gives a graphical representation of this information.

Depending on the working priorities, the entire project can be subdivided into the following
main modules, those are:-
Login Module
Consumer Management Module
Meter Change Module
Revenue Collection Module
Billing and Accounting Module
Change Password Module.

We can construct our activities plain as follows:-


Activity Activity Name
A Login
B Consumer Management
C Meter Change
D Revenue Collection
E Billing and accounting
F Change Password

Chart:-
Activity Predecessor Activity Time Estimated Weeks
(Individual)
A ……… 4
B A 4

Page | 31
C B 2
D,E C 5
F D,E 2

Page | 32
Critical Path Method (CPM): -

Start D(5)
D
C(2)

A(4) B(4)
A B C F

C(2) E E(5) F(2)

Finish
Fig: PERT Chart

Time Line Path: -


Path Length Of Time
Start-A-B-C-D-F-Finish 4+4+2+5+2= 17WEEKS
Start-A-B-C-E-F-Finish 4+4+2+5+2= 17 WEEKS

Page | 33
GANTT Chart:-
A Gantt chart is a popular type of bar chart that illustrates a project schedule. Gantt charts
illustrate the start and finish dates of the terminal elements and summary elements of a
project. Terminal elements and summary elements comprise the work breakdown structure of
the project.

* W= week Fig: GANTT Chart

f. Software Requirement Specification: -

Software Requirements…

To build this type of project we hereby use:-

Page | 34
Dream-weaver and Hypertext Markup Language (HTML) as Front end
SQL- Server as back-end (data base).
JSP & Servlets as processing technique.
Java Scripts is used for Scripting languages, and
Java Beans are also used as certain reusable components.

Server …

Apache Tomcat
SQL Server.
JDK 1.x
Internet Explorer ,or
Netscape Navigator 6.0.
Windows 2003 Server, onwards

Client …

Windows XP onwards.
Internet Explorer ,or
Netscape Navigator or
FireFox, etc.

Characteristics of Front-end:-

Pallet of visual tools for designing screens allows the programmers to create
sophisticated multiple window user interfaces without writing any code.
Graphical elements you create on the screen are displayed just as they will appear to
the end user.
The application can be created, designed and run in any web browser.
The Visual system has a general purpose programming language.
Fully supports Event Driven programming.
Incremental compilation reduces development time.

Page | 35
Debugging tools provide powerful development support.
Support for dynamic data Exchange allows interoperability with others Applications.
Fully supports Object linking and Embedding (OLE).
Take full advantage of your hardware resources by running multiple, isolated
applications on a single computer using SQL Server multi-instance support.

Characteristics of Back-end:-

Queries against the shared resources


Management (Application and data)
Transaction and processing
Centralized application logic
Communication and computation.

Characteristics of Web Server:

It can take advantage of various performance improvements such as placeholder


support for age-on-demand.

For the development of this application the other software we are using are JDK 1.7,
Tomcat as a web -server, Internet Explorer as browser, MS SQL Server as back-end and
Dreamweaver-mx along with JSP & Servlets, technology, it was mentioned before. Now,
there is a brief description for familiarities of those to accustom with the processed
environment.

JDK (1.n) – In the Internet two very broad categories of objects are transmitted between
the server and the personal computer. Passive and dynamic information. As desirable as
dynamic, networked programs are, they also present serious problems in the areas of
security and portability. Java handles much of the security problems. Java is object-
oriented, robust, architecture neutral, dynamic and distributed. These are the reasons why
we choose Java to create an architecture neutral, dynamic site.

Tomcat(n.n)- A web server is the server software behind the World Wide Web. It awaits
requests from a client, such as a browser like Netscape or Microsoft’s Internet Explorer.
Page | 36
When it gets one, it processes that request and returns some appropriate data. This data is
usually presented in the form of a comprehensive page with text and graphics. Hypertext
Transfer Protocol (HTTP), a simple protocol that standardizes the way requests, are sent
and processed is what Web servers use to communicate with browsers or other clients.
Hypertext Markup Language is used to format most of the documents requested. Apache
Tomcat is a freeware. Some of the most important features of Tomcat are –

1. It’s plug-and-play replacement for NCSA web servers.


2. Fixes bugs and security holes found on NCSA 1.3 and 1.4 servers.
3. It’s very fast. Much faster than other web servers.
4. Compiles better with the current HTTP specifications.

Internet Explorer (n.0) - Internet Explorer makes it easier to get the most from the World
Wide Web, whether you are searching for new information or browsing your favorite Web
sites. Built-in IntelliSense technology can save your time completing routine Web tasks,
such as automatically completing Web addresses and forms for you, and automatically
detecting your network and connection status.

Microsoft SQL Server- This database product, rather than Microsoft Access, was chosen
since it is a great product for use in building both small, but scalable, solutions and in the
development of large distributed applications, like an e-commerce site. We use this
database both for development and on the production server.

Adobe Dreamweaver- The world's best way to create professional websites is now the
easiest way to build powerful Internet applications. For the first time, you can work in a
single environment to quickly create, build, and manage websites and Internet
applications. One also gets the visual layout tools of Dreamweaver®. The rapid web
application features of Dreamweaver® UltraDev™. And the code-editing support of
HomeSite®. All in one complete, integrated solution--Dreamweaver® MX.

JSP-JSP is basically an extension of java servlets and is a presentation layer technology.


It allows mixing static HTML content with server side scripting to produce dynamic
output. By default, JSP uses Java as its scripting language. JSP provides a number of

Page | 37
server-side tags that allow developers to perform most dynamic content operations
without ever writing a single line of Java code.

Servlets – A Servlet is an extension to a server that enhances the server’s functionality.


The most common use of a Servlet is to extend a web server by providing dynamic web
content. Web servers display documents written in HyperText Markup language(HTML)
and respond to user requests using the Hyper Text Transfer protocol(HTTP). HTTP is the
protocol for moving hypertext files across the internet

Apart from the mentioned, another software used is:

Web server –Apache Web server


Java Scripting,
Style Sheets,
HTML,
XML documentation,
Processing technology- JSP & Servlets,
Language platform- Java,
Dreamweaver, etc.

Hardware Requirements:-

Server…

Intel® Xenon™ 2.0 GHz Processors with 256KB cache.


256 MB RAM.
40 GB Hard Disk Drive.
3.5” – 1.44 MB Diskette Drive.
52X CD-ROM Drive.
Intel® Pro 10/100+ LAN Card.
Printer

Page | 38
Client…

Intel® Pentium® 3 1.3 GHz processor with 256 KB Cache.


128 MB RAM.
Intel® Pro 10/100+ LAN Card.
Connection to the LAN.

**The server should have a proper backup and recovery facility.


**The clients should have a good rate of data transfer with the server for quick performance.

Project Category…

This application is developed on using three tier architecture of Java and J2EE
Technologies, Dream-Weaver is used to front end designing but Jsp are used as tools
and techniques and SQL-Server is used as a back end or database. The connection
between the front-end and the back-end is established by using JDBC-ODBC Bridge.
Some style sheets, and scripting technologies are used to enhance the dynamisms of the
project

This Software is basically an online or web based system that means though having users
interaction and input-output conversation, yet it will be operated though the net and user
will maintain a global communication and exchange ideas and also they can receive
services from every corner of our Earth. Any type of response can generate on the real
time basis, i.e instantly the user can get their answers against various queries.

To build this type of project we hereby use

Dreamweaver and Hypertext Markup Language (HTML) as Front end


SQL- Server as back-end (data base)
JSP as processing technique and
Java Scripts are used as Scripting languages.

Page | 39
g. Software Engineering Paradigm Applied: -

Every new software engineering paradigm that gets invented seems to be greeted with the
battle cry “Revolution!” as if everywhere software engineers and programmers were freed
suddenly of all the evils that the previous paradigm had foisted upon them. Each new
generation of unspoiled programming acolytes is admonished to go out into the world, to
spread the word, and to suffer not the sins of the previous generation. The truth is that each
and every one of these so-called revolutions was built unequivocally on the features of the
paradigm that was its predecessor. Software engineering paradigms did not revolt; they
evolved! None of the lessons learned was ever forgotten. In many cases, the only things that
were changed were those features that had been left completely neglected by an earlier
paradigm.
 
In some respects, that explains why we have progressive shifts anyhow. At the end of any
one paradigm phase, it may seem that everyone knows everything needed to write complete,
consistent, and clear code. So, we are completely at the mercy of …. researchers. Those are
the people who can watch what it is that master programmers do differently from other
programmers and put a catchy name onto it. Of course, there are many researchers (more
than there are master programmers), and some of the researchers are better than others. Their
keen observation and insightful analysis is vital in order to tell us how to write the software in
the future. It didn’t happen overnight. It took many lines of code, many master programmers,
and scores of researchers for us to be able to look back at what we can see as the mainstay of
computer programming paradigms.

Benefits of the Paradigm:-

Re-usability: anyone that needs a particular functionality can use an appropriate module,
without having to code the algorithm from scratch.
Specialization: one person can concentrate on writing a best possible module (function) for a
particular task while others look after other areas.

Page | 40
Upgradability: if a programmer comes up with a better way to implement a module then
he/she simply replace the code within the function. Provided the interface remains the same -
in other words the module name and the order and type of each parameter are unchanged -
then no changes should be necessary in the rest of the application.

However procedural modules have serious limitations:


For a start, there is nothing to stop another programmer from meddling with the
code within a module, perhaps to better adapt it to the needs of a particular
application.
There is also nothing to stop the code within the function making use of global
variables, thus negating the benefits of a single interface providing a single point
of entry.

Obviously, the paradigm is best suited for the waterfall model of software development.

Design-
A particular software system is viewed in terms of its modules and data flowing between
them starting with a high-level view.

In this case, software design methodology can be categorized as a Top-down modular design
(functional design viewpoint).

The basic design concepts include:


Modularity
Modules are used to describe a functional decomposition of the system
A module is a unit containing:
executable statements
data structures
other modules
A module:
has a name
can be separately compiled
can be used in a program or by other modules
Page | 41
System design generally determines what goes into a module
Cohesive
Single clearly defined function
Description of when and how used
Loosely Coupled Modules (Modules implement functionality, but not parts of other
modules)
Black Boxes (information hiding)
each module is a black box
each module has a set of known inputs and a set of predictable outputs
inner workings of module are unknown to user
can be reusable
Preliminary and Detailed Design specify the modules to carry out the functions in
the Data Flow Diagrams (DFD).
Preliminary design deals mainly with Structure Charts
Hierarchical tree structure
Modules - rectangle boxes
calling relationships are shown with arrows
arrows are labeled with the data flowing between modules
Module Design
Title
Module ID - from structure charts
Purpose
Method - algorithm
Usage - who calls it
External references - other modules called
Calling sequence - parameter descriptions
Input assertion
Output assertion
Local variables
Author(s)
Remarks
Preliminary Design Document
Cover Page
Table of Contents
Page | 42
Design Description
Software Structure Charts
Data Dictionary
Module Designs
Module Headers
Major Data Structures Design
Design Reviews (Examination of all or part of the software design to find design
anomalies )
Overview of Detailed Design
select an algorithm for each module
refine the data structures
produce detailed design document
Implementation
Coding (for each Module)
Source Code
Documentation
Integration
Decide what order the modules will be assembled
Assemble and test integration of modules
After final assembly perform system test
Note, coding and testing are often done in parallel

Testing
Types of testing
Unit testing
Integration testing
Acceptance testing

As it was mentioned above, the paradigm is best suited for the waterfall model of software
development. Implementing change requirements and especially rapid prototyping are weak
points of the programming paradigm.

To develop the software “EBS” I maintain various records of the traveling company I do
follow the spiral model which suggest a systematic sequential approach to software
Page | 43
development that begin at the system level and process through analysis, design, coding,
testing and support.

The Model encompasses the following phases:

Software Requirement Analysis


Design
Code Generation
Testing
Support

Fig: The Phases of a Software Development

Software Requirement Analysis: The requirement gathering process is intensified and


focused specifically on the software. Requirement for both the system and the software
are documented and reviewed with the customer.
Design: It is a multistep process that focus on four attributes of a Programme: data
structure, software architecture, interface representation and procedural (algorithmic)
details. The design process translates requirements into a representation of the software
that can be accessed for quality before code begins. Like requirements into a
representation of the software that can be accessed for quality before coding begins. Like
requirements, the design is documented and becomes part of the software configuration.
Code Generation: the design must be translate into a machine readable form. The code
generation steps perform this task. If design is performed in a detail manner, code
generation can be accomplished mechanistically.
Testing: Once code has been generated, programmes testing begin. This processes focus
on the logical internal of the software, ensuring that all statements have been tested, and

Page | 44
on the functional external, that is conducting test to uncover errors and ensure that
defined input will produce actual result that agree with required results.
Support: Software will undoubtedly undergo change after it is delivering to the
customer.

Advantages of A Model:-

It is easy to explain.
Stages and activities are well defined.
Verification at each stage ensures early detection of errors.
Helps to plain and schedule project.
Ensures that the system meets the user’s need.
Minimize the cost of rectifies error.
Feedback creates an environment that allows corrections.

Structured Analysis and Design (SASD):-

It is deadly needed for a software development to minimize the error from the very beginning
stages. So, after detail investigations and analysis and fact-findings or information
gathering, etc. it is revealed that the needs of the organization towards the application
are as follows…

For the system, it is identified by the several problems may arise and after successful
operation we complete the system properly. There are several problems may arise that are
given below…

The Problem of Reliability: A system suffers from the problem of reliability when
procedures work some time not all of the time, or when use of the same procedure
leads to different result. Analysts must work continually to improve the reliability of
system.
The Problem of Validity: Systems that produce invalid results are often most
troublesome to users and system managers. There systems might be highly reliable.
They may work all of the time, but they draw incorrect conclusions. A report might

Page | 45
show that demand is increasing and that additional stock should be ordered for
inventory.
The Problem of Accuracy: The problem of accuracy is similar to the problems of
reliability and validity. A system is inaccurate when processing is error-phone. If the
posting procedure is complex and the number of transactions large, a fair number of
errors may occur. Because of inaccuracy, the entire budget system might be viewed as
unreliable and often invalid.
The Problem of Economy: Besides improving processing accuracy, organizations
seek to improve processing which also economic. A system suffers from the problem
of economy when existing methods of transmitting, processing and storing
information are very costly. An organization might discover that the cost of handling
the paperwork associated with each purchase order is Rs.25. This cost is determined
to be problem of economy.
The Problem of timeliness: The problem of timeliness relates more to the
transmission of information than to the processing or storing of it. A system suffers
from the problem of timeliness if information is available but cannot be retrieved
when and where it is needed. As people become more familiar with information
systems and how they functions, they generally realize how much easier it is to
process and store information than it is to retrieve it.
The Problem of Capacity: The problem of capacity occurs when a system
component is not large enough. Capacity problems are especially common in
organizations that experience peak periods of business. During peak period,
inadequate processing capacity, transmission capacity, storage capacity, staff capacity
and the like may all exist. Capacity problems are also evident in rapidly growing
organization.
The Problem of Throughput: The problem of throughput may be viewed as the
reverse of the problem of capacity. Throughput deals with the efficiency of a system.
If system capacity is high and production low, a problem of throughput occurs.

By obeying the all terms and condition I have defined the problem. The tour and traveling
company conducts the tour by giving the advertisements to the leading newspaper and other
communication media like Local Cable Channels, Hand Bills and Banners, sometimes in road
campaign etc. There is another approach to get the more sales the system invites the
membership from the person who have very much interest in traveling at the different place
Page | 46
frequently. Some discount is offered to the all members and charges will very nominal. The
system is not up to the mark and not be so presentable due to the manual system. Not all the
purpose is served by the system like enquiry and other monitory information with audiovisual
effect because there are several booking counters and no such connections between them. So
need computer and intercommunications.

Problem Definition-

The whole approach of analysis of problem should however be based around critical factors
like the availability of information for making the decision, the time available for processing
the data i.e. the realism. System Requirement Specification or SRS had been prepared after
proper discussion with the persons attached with the mentioned “EBS”. Software project
management begins with a set of activities collectively called project planning. Software
project planning actually encompasses all of the activities. Planning involves estimation- to
determine how much money, how much effort, how many resources, and how much time it
will take to build a specific software-based system or product.
Existing Problem:-

In the traditional system files were used to maintain the database which was done manually.
This existing system consumes a lot of time. This time consuming evaluation coupled by the
huge maintenance problem and may also lead to erroneous results. The various operations
performed on these files like sorting, adding, modifying and deletion of the records are very
tedious. Moreover these manually maintained files have the possibility of getting worn out.
Thus, less durability is achieved.

Thus the demerits of the existing system can be summarized as follows…


There is no consistency as the data may not be updated on time.
Feasibility is reduced
Less reliability
Security is not provided and any one can access
Prioritization of records is difficult.
More erroneous
Difficult to maintain
As everything is done manually its slow process
Page | 47
No timely acknowledgement service

Taking the demerits into consideration, an alternative system which uses Oracle as both front
end and back end was used. In front end, retrieval of the data from the database is done
through SQL queries i.e. using D2K forms. This is not a web application and the data is not
distributed as only a single system is used. As it is confined only to a particular system, scope
is limited and there is a hindrance to the reliability if the system fails.

The demerits of this alternate system are…


Only single system used.
If the system crashes then the data is lost
too overburdened
not reliable
slow processing
less flexible
not so user friendly

Proposed System-
The proposed system is developed based on the client server architecture, a request-response
paradigm and is implemented with the help of advanced java using the tomcat web container.
The employees can maintain and do the transactions online.

The application starts by asking for user name and password which provides authentication.
This system provides high security where the unauthorized users cannot access the data.

Later we have different options for the employee like


Consumer Management
Revenue Collection
Billing and Accounting
Reports
Meter Details
Ledger Process
Journal Details

Page | 48
The objectives of the proposed system are as follows:
Easy to use, effective and efficient
Accurate results.
Easy maintenance.
Fast access
More feasibility
More secure.
Provides high consistency.
More reliable

Potential Users of the System: -

There are two groups of users in our system, they are “IMS” members and
system administrators. They have different authorities in our system which are
shown as follows…

Members – They are MCU members. They can view the detailed product
information and their shopping history. Besides, they are able to create, view,
modify and cancel their shopping orders.
Administrators – They are authorized MCU staffs to control the system.
They are assigned with different level of authority to maintain the
information of inventory, invoicing, members and administrators. Besides,
they can make conditional refunds and print out transaction invoices. In
addition, administrators can execute summary reports and be responsible to
maintain database.

Requirement Specification: -

In the following, we describe the functional requirements and non-functional requirements of


our system.

Page | 49
It is actually the inventory keeping and maintenance system of any store/shop, so the
requirements are collected from both the shop owner’s side and along from the dealers and
stockiest side who also deal with this store.

These requirements indicate that to keep their stock properly and maintain them by
maintaining a proper accounting also. So, the shop/store owners need one type of user who
login the system as a super user and having all the facilities to access where as the ordinary
dealers will login as a normal user having limited access to handle the package and to get
limited number of reports also. The shop deals with any kind of materials where stock
valuation method is generally FIFO (First In First Out) or any other as specified by the shop
owners and stockiest. The shop/stock holders first can purchase goods of different types such
as either in liquid or in solid i.e. paper, mineral water from the dealers or distributors with
whom they have daily connections. The purchasing is done through generating purchase
challan, which only affects the existing stock, whereas the purchase bill dealing with
payments of the debtors effects directly on the accounts. Though this software is not directly
based on account keeping but the daily transactions are affecting related ledgers. Moreover,
bill adjustments, pending bill receive; stock verifications, etc. are maintained successfully.

In case of selling of materials, same also done through generating order, challan, and bills.
Order and challan effects on stock and billing will effect on accounts portion of the software.
The sale also categorized into two types i.e. regular customer wise sales and direct sale,
Billing also associated with different duties, taxes.

Preliminary Product Description: -

The Developer must think whether to take the charge of this project or not! So, they gone
thought several feasibility study period i.e.

More commonly known as cost/benefit analysis. The procedure is to determine the benefits
and
saving that are expected from a candidate system and compare them with costs. If the benefits
outweigh costs, then decision is made to design and implement the system.

Page | 50
Considering the facts it is become evident that the system will be economically feasible both
for developer as well as for client’s respect.

Technical feasibility centers on the existing computer system (hardware, software, etc.)And
to what level it can support the proposed addition. If the budget is a serious constraint, then
the project is judged not feasible. Here it is not a constraint altogether.

People are inherently resistant to change, and computers have been known to facilitate
change. An estimate should be made of how strong a reaction the user staff is likely to have
toward the development of a computerized system. This is not a major problem in this area.

A determination of any infringement, violation or liability that could result from the
development of the system. But the system to be developed will be 100% legal.

The management & operators desire to be well acquainted with the requisite skill needed.

Functional Requirements:-

In software engineering, a functional requirement defines a function of a software system or


its component. A function is described as a set of inputs, the behavior, and outputs.
Functional requirements may be calculations, technical details, data manipulation and
processing and other specific functionality that show how a use case is to be fulfilled. They
are supported by non-functional requirements, which impose constraints on the design or
implementation (such as performance requirements, security, or reliability).As defined in
requirements engineering, functional requirements specify particular behaviors of a system.
This should be contrasted with non-functional requirements which specify overall
characteristics such as cost and reliability.

Other Functional Requirements:-

A. Input/output

Page | 51
1. System shall have a form to accept the customer details.
2. System shall have a form to accept the Plant details.
3. System shall display transaction details.
4. System shall provide search facility on customer name, Order Placed, date of
order, date of order dispatch, date of transaction, transaction amount, credit card
no etc.
5. System should provide facility for change in address/name.
6. System should maintain the details about placing order/dispatch or order i.e, order
status

B. Processing

1. System should automatically generate the bill.


2. System should inform the pending order and make changes if the order is
dispatched.

C. Error Handling

1. Should report any errors on duplicate primary keys.


2. Should report any ‘Out of Range’ values on numeric fields
3. Should report any data type mismatches any field on the forms.
4. Should report on any ‘Invalid dates’
5. Should report any violation of authorization of rights
6. Should report any Invalid Login errors

Technical Requirements:-
Performance Requirements
Safety Requirements
Security Requirements
Hardware Constraints
Software Constraints

Page | 52
Design Constraints

Nonfunctional Requirements:-

Non-functional requirements define the operational requirements and project schedule


that are requested by our stakeholder.

1. All user manuals should be provided in the necessary format


2. Application should support 5 simultaneous users.
3. Transaction should be completed within 1/5th of second
4. There will be backup procedure to maintain records.

i. Operational Requirements: -

The system can be viewed by Microsoft Internet Explorer.


The system can be executed on the Apache Tomcat Intranet. The Intranet web
server runs on the Windows server platform which supports Apache Tomcat
Server.
We can only use Microsoft Access to develop the database.

ii. Project Schedule:-

The development of system is completed by the end of March, 2014.


The mitigation testing and final user acceptance testing is scheduled at the end
of June, 2014.
The system can be launched at the end of August 2014.

Other non-functional requirements are as follows…


Installation
The client installable will be available on the internet. It will be a complete install (i.e.
with no prerequisites). Incremental updates will be available through webstart.

Page | 53
Platform
The system will be developed on windows platform and will be entirely open source.
The system needs to work out of the box on desktop and server side versions of
Windows.

Performance:-
Response times
No operation (defined as a single request/reply) other than streaming of the lecture
material will have a response time of more than 5 seconds.

Concurrent Users
The system shall support upto 200 concurrent users with 20 concurrent streaming
requests for lecture viewing.

Error Messages
Every error shall have an appropriate error message. The set of these messages shall
be externalized into the _le which is read upon startup.

Constraints:-

Client requirements
The application is expected to have a rich client that will require significant compute
resources. The minimum client configuration will be a P4, 2.0 GHz will 512M of
RAM and 40G storage.

Connectivity
The client will have to stay connected with the server via a reasonable bandwidth link
for the duration of it's interaction. Client will be provided with multiple options to
select appropriate resolution according to the capacity of the link with which he is
connected to server.

Supplementary Requirements: -

Page | 54
System platform
Electronic Billing System will be based on the Java, Servlets/JSP and RDBMS
platform. All system functionality will be available via Web-browser (user and
customer interface) and e-mail clients (for mail notifications).

Communication protocol
The user front-end has to be available via HTTP. To gain a security protected
communication the confidential data will be transmitted via SSL protocol.

Security
All private data like passwords and credit cart info must be stored in encrypted form.

In systems engineering and requirements engineering, non-functional requirements are


requirements which specify criteria that can be used to judge the operation of a system, rather
than specific behaviors. This should be contrasted with functional requirements that specify
specific behavior or functions. Non-functional requirements are often called qualities of a
system. Other terms for non-functional requirements are "constraints", "quality attributes",
"quality goals" and "quality of service requirements". Qualities, of Non-functional
requirements can be divided into two main categories. Execution qualities, such as security
and usability, are observable at run time. Evolution qualities, such as extensibility and
scalability, embody in the static structure of the software system.

Software Quality Attribute-

Reliability: Reliability will mostly depend on the client's connection status. The
reliability holds as long as clients are provided support to JDK 1.5 or later.

Availability: The server on which this system will be running is expected to be


available at all hours of the day to provide worldwide accessibility. A graphical user
interface (GUI) is provided to have online interaction with the user.

Maintainability: The business logic here is that there can be accounting feature in the
future development of the product.. All development will be provided with good
documentation.

Page | 55
Portability: As the system is designed using Java, it can work on any platform or
architecture.

h. Data Model, Control Flow Diagrams, State Diagrams, ERD’s/


Class Diagrams/CRC Models/Collaboration Diagrams / Use-Case
Diagrams /Activity Diagrams Depending On Project
Requirements: -

Data Model: -

Data modeling is a method used to define and analyze data requirements needed to
support the business processes of an organization. The data requirements are recorded as
a conceptual data model with associated data definitions. Actual implementation of the
conceptual model is called a logical data model. To implement one conceptual data model
may require multiple logical data models. Data modeling defines the relationships
between data elements and structures, Data modeling techniques are used to model data in
a standard, consistent, predictable manner in order to manage it as a resource. The use of
this standard is strongly recommended for all projects requiring a standard means of
defining and analyzing the data resources within an organization.

Data Design: -

Data Flow Diagram (DFD):

Data flow diagrams can be used to provide a clear representation of any software function
and the technique starts with an overall picture of the software and continues by analysing
each of the functional areas of interest. This analysis can be carried out to precisely the level
of detail required. The technique exploits a method called top-down expansion to conduct the
analysis in a targeted way.

External Entity:-

User
Page | 56
An external entity is a source or destination of a data flow, which is outside the area of study.
Only those entities, which originate or receive data are represented on a business process
diagram. The symbol used is an oval containing a meaningful and unique identifier.

Process:-

Process Name

A process shows a transformation or manipulation of data flows within the system. Firstly an
identification number appears in the upper corner. This is allocated arbitrarily at the top level
and serves as a unique reference. Finally, a descriptive title is placed in the center of the box.
This should be a simple imperative sentence with a specific verb, for example 'SignIn' or
'Signup'.

Data Flow:-
Data_name

A data flow shows the flow of information from its source to its destination. A data flow is
represented by a line, with arrowheads showing the direction of flow. Information always
flows to or from a process and may be written, verbal. The processes or data stores at its head
or tail may reference each data flow.

Data Store:-

1 userdetail

Page | 57
A data store is a holding place for information within the system. It is represented by an open
ended narrow rectangle. Data stores may be long-term Database such as user detail. Each data
store should be given a reference followed by an arbitrary number.

Context Diagram:-

The context diagram represents the entire system under investigation. This
diagram should be drawn first, and used to clarify and agree the scope of the
investigation.
The components of a context diagram are clearly shown on this screen. The
system under investigation is represented as a single process, connected to
external entities by data flow, resources flow.
The context diagram clearly shows the interfaces between the system under
investigation and the external entities with which it communicates. Therefore,
whilst it is often conceptually trivial, a context diagram serves to focus attention
on the system boundary and can help in clarifying the precise scope of the
analysis.
The context diagram shown below represents a book of chat web server. Chat web
server receives details of users, and shows every detail of users who are currently
on line.

Page | 58
Data Flow Diagram: -

Context Level Diagram:-


0 level DFD

Billing & Account

Billing

Payment online & offline

Apply
(form) Report
EBS Management
Consumer

Meter issue confirmation

Receipt

Page | 59
Level 1 DFD

DFD Level-1:-

form 1.0
Consumer details
CONSUMER Consuming
Cust_info
validation

Receipt
issue of
meter
1.1 Registration details
Reg_info
Form
Receipt
registration

1.2
Meter no details
Meter
issue/delete

1.3

Standard details Calculation of Billing


Billing & Account
(commercial/domestic) bill

1.4 Meter_data

Standard_data Report Registration_data


generation
Customer_data

Report
MANAGEMENT Page | 60
Level 2 DFD

2.1
Consumer
2.2
details
report
Registration
report

Cust_data reg_data

Report
Report
Management
generation

Meter_data

Standard_data

2.3
2.4
Meter no
details
Standard report
report

Fig: DFD level 2 (Considering Process-1.4, i.e. Report generation)

Page | 61
Use Case Diagram:-

sign in

login

clerk ERO
consumer management

user revenue collection

billing & accounting

reports

logoff

Fig: Use Case Diagram for Home Page

Page | 62
Class Diagram:-

ebs

consumber reports
management billing and
revenue collection accounting customerno : int
cname : string issues : int servicetype : string
address : string billno : int
receipts : int
accno : int
meterno : int

Fig: Class Diagram

Page | 63
consumer
management

new consumer
serviceno : int query consumer
areacode : int date : date
name : string name : string
address : string address : string
servicetype : int section : int
districtcode : int area : string
billmode : int meterno : int
sectioncode : int openeingreading : date
cycle : string closingreading : date
mrbno : int billdate : date
expdate : date paymenst : float
arrears : float
totaldue : float

show()

meterchange
scno : int
meterno : string
metercapacity : int delete consumer
openingreading : int consumerno : int
closingreading : int newconsumerno : int
readingstatus : int
billedunits : int delete()
meterphase : int submit()
readingdate : date
avgunits : int

update()
show() meterpartchange
modfiy consumer
consumerno : string
consumerno : int mtrslno : int
area : string meter change date : date
name : string newmtrno : int
group : char
billmode : string update()
capitalavailable : int
year : int
section : int
category : int
expirydate : date

submit()

Fig: Class Diagram for Consumer Management

Page | 64
Entity Relationship Diagram (ERD):-

Fig: Entity Relationship Diagram (ERD)

Page | 65

Fig: Entity Relationship Diagram (ERD)


Fig: Entity Relationship Diagram (ERD) for Consumer Management

Page | 66
3. System Design

a. Modularization Details:-
Number of Modules & Their Description:-

The application consists of number of modules and sub modules, of which, the most
important are discussed briefly…
The “Electricity Billing System” consists of three main modules. Those are…
1. Login Module
2. Consumer Management Module
3. Meter Change Module
4. Revenue Collection Module
5. Billing and Accounting Module
6. Change Password Module.

Login Module:-
This module is considered only when there is a requirement of safety and security by the
customer. Only after the login process, the rest of the application is made available to the
user. In order to login, user has to first register by providing desired user-ID and
password. Provided user-IDs and passwords by the users are maintained in a database.
Oracle database is used to maintain a database. Then the user logins in to the application
by giving user-ID and password provided during registration process. JDBC is used to
connect the application with the database.

Consumer Management Module:-


To design front-end forms according to consumer specifications it was like Addition of
new consumer, deletion, modification of consumer, processing bills, journals, debit
respectively. This module deals with consumer information details. This module is further
subdivided as:-

New Consumer Acquisition-The proposed software allows the end user to add
the new consumer with his personal service (meter and Deposit) details. It

Page | 67
generates a unique consumer Identification number based on the DISCOM, Circle,
and division, Subdivision, Section and Distribution to which he belongs.
Modification of Consumer-If any particulars has modified with consumer
details, this sub module is used to modify the consumer details.
Deletion of consumer - If any consumer disconnects the connection then we have
to delete the consumer related information from system. This module is used to
delete the consumer. Deletion is made is based on some rules like the payment
details will be nil. Message is displayed as do you want to delete the record. This
deleting record is first entered into watch table. Then this record is deleted from
Cons table, Bill, Meter part, deposit tab, calculator and PMTTAT tables.
Query Consumer- Whenever we need to see the details of any particular
consumer then this sub module will invoke the details and will display on the
screen.

Meter Change Module:-


Every consumer is having meter for reading details. If meter will change then the meter
details will be change in database. This sub module is used to update meter details. It
having a subpart namely-
Meter part Change- If any changes occurred in meter particulars then this sub
module is used to update. The difference between Meter Change and Meter part
Change is when ever Meter will change Meter Change sub module will use and Meter
will not Change but Meter Characteristics will change then Meter part sub module
will use.

Revenue Collection Module:-


Billing is done by spot billing machines and updated to billing database. This module
deals with collection of payments through collection centers by online or offline each
consumer wise. This module having a number of subparts namely-
Online Receipt -This sub module is user to online bill payment receipts. It will
provide the entry fields to accept payments. It will show the consumer bill details
and based on that we will know the bill details which were belongs to consumer
whether consumer is having arrears or not. It is done on the spot when the

Page | 68
consumer comes to pay bill. This is used by the persons, who know the RC
(Revenue Collection) password.
Offline Receipt- This sub module is user to offline bill payment receipts. It is also
same as online receipts, but it is used when consumers will pay the bill at general
counters. It will show the consumer bill details and based on that we will know the
bill details which were belongs to consumer whether consumer is having arrears
or not. It is done after the consumer paid the bills offline. This is used by the
persons, who know the RC (Revenue Collection) password.
Receipt Cancel- This sub module is allows the user to correct the mistakes done
in using online receipt and offline receipt. It will provide the entry fields to cancel
the payment receipts only. It will show the receipt details, which was done still by
particular RC Counter. This is used by the persons, who know the RC
(Revenue Collection) password.

Billing and Accounting Module:-


This module having a number of subparts namely-
Journal Entry- Journal entry done when a consumer had any debit, credit amounts
to pay .To that bill if any additional charges, electricity duty, interest on electricity
duty levied on particular consumer no. In this lccode should present in journal. If we
enter consumer no corresponding name should be displayed and rest of the fields we
should enter. It should be updated to Journal.
Cancellation of Journal- If we want to cancel that particular person cancels any
journal. It should check LC code, voucher number should match LC code, voucher
date should match LC code, voucher no and then date field is selected. Then fields we
are selected into corresponding text boxes. This journal is cancelled with field
Jtcancelid=y. Now the field is cancelled from journal.
Change Password Module:-
Every organization should have its counters to receive online payments. Each Counter is
having User Code and Password. This module is allows the user to change this Password
for security purpose.

Page | 69
Linking Between Modules:-

Modules are inter-linked with each other. The linking schemes are as follows :

General modules are related with others module by having a general login interface
through which a user can enter or start using this software or site and user wise rights
are also specified. So, that unauthenticated user cannot access the secret facilities
available for the administrator. That interface is popularly known as the “The Home
Page”. Moreover the every details daily transaction, must have an effect in accounts
section. The Department Module is linked with Products along with the Dealer
module as the dealer supply products. The dealers are intern users also. So, all type of
entries, login and logout processes and addition or alteration of any products, dealers,
normal users etc. are inte-linked with different modules, named previously.

Backend- Front-end Linking:-

Lastly, all the interfaces are linked with a backend i.e. data storage area, to be
retrieved for future use. This back end used here SQL-Server as database and also for
table creation. The designed interfaces of each module through a main screen remain
attached with backend properly by establishing a connection object known as JDBC
(Java Database Connectivity)-ODBC(Open Database Connectivity). This is a special
type of linking, in which the front end and interfaces using java advanced
technologies i.e. JSP, Servlet Pages are successfully linked with the backend i.e. with
SQL Server database tables while creating a JDBC-ODBC Bridge.

Data Structures as per the project requirements:-

Class
List
Tables
Java Scripts
Different Reports, etc.

Page | 70
b. Data Integrity & Constraints:-

Based upon the previously drawn ERD, some of the proposed tables are given below, the
alteration is desired in course of development.

Table-CONSUMER:- to store consumer details


Column Name Data Type(size) Constraint
CTSCNO CHAR(8) NOT NULL
CTNAME VARCHAR2(30)
CTADD1 VARCHAR2(30)
CTADD2 VARCHAR2(30)
CTADD3 VARCHAR2(30)
CTADD4 VARCHAR2(30)
CTPINCODE NUMBER(6)
CTCAT NUMBER(1)
CTSUBCAT NUMBER(1)
CTDISCD CHAR(3)
CTAREACD VARCHAR2(6)
CTEROCD NUMBER(3)
CTSUBDIVCD CHAR(2)
CTSECCD CHAR(2)
CTGROUP CHAR(1)
CTLCNO CHAR(2)
CTBILLMODE NUMBER(1)
CTSUPCONDT DATE
CTCNVTDT DATE
CTSERVTYPE CHAR(2)
CTCONLD NUMBER(8,3)
CTCTRLD NUMBER(8,3)
CTMRBNO VARCHAR2(3)
CTMRBPAGE NUMBER(3)
CTCONSTAT NUMBER(1)
CTDATASTAT CHAR(1)
CTCAPAVAIL NUMBER(3,1)
CTCAPREQ NUMBER(3,1)
CTAGRMTDT DATE
CTCAPSURCHGPE NUMBER(3,2)
R
CTAGRMTEXPDT DATE
CTENTDT DATE
CTBLSTDT DATE
CTSDINTDT DATE
CTSDTOTAMT NUMBER(9,2)
CTSDREQ NUMBER(11,2)
CTSDINTAMT NUMBER(9,2)

Page | 71
CTSDONINTDT NUMBER(11,2)
CTAMGAMT NUMBER(9,2)
CTAMGYR NUMBER(2)
CTAMGEXPR DATE
CTMETSINSERV NUMBER(1)
CTBLNOTPREPMN NUMBER(2)
CTPENINTIND NUMBER(1)
CTREBATEIND NUMBER(1)
CTINSTMTIND NUMBER(1)
CTBLISSUEID NUMBER(1)
CTMTRCHGIND NUMBER(1)
CTOTHERREV NUMBER(9,2)
CTPHONE NUMBER(8)
CTELDTYIND NUMBER(1)
CTTYPE CHAR(1)
CTTRCODE VARCHAR2(8)
CTDEFAMT NUMBER(9,2)
CTNEWSCNO CHAR(11)
CTCYCLE CHAR(2)
CTFEEDERCD VARCHAR2(12)
CTDLISTFLG NUMBER(3)
CTDLSTFLG NUMBER(3)
CTAUTOPAY VARCHAR2(20)
CTSDBALAMT NUMBER(9,2)
CTACDSURCHG NUMBER(9,2)

Table-Meter_Part:- to store meter details


Column Name Data Type(size) Constraints
MPTSCNO CHAR(8) NOT NULL
MPTMSLNO NUMBER(1)
M PTMTRNO VARCHAR2(12)
MPTMTRPHASE NUMBER(1)
MPTMTRMF NUMBER(5,2)
MPTMTRDIGIT NUMBER(1)
MPTMTRCAP VARCHAR2(8)
MPTMTROPNRDG NUMBER(6)
MPTMTRCLRDG NUMBER(6)
MPTMTROPNRDGDT DATE
MPTMTRCLRDGDT DATE
MPTMTRPREVSTAT CHAR(2)
MPTMTRCURRENTST CHAR(2)
AT
MPTMTRCHNGDT DATE
MPTMTRMAKE VARCHAR2(10)
MPTMTRSEALNO VARCHAR2(8)
MPTEXCEPDT DATE

Page | 72
Table-BILL:- to store bill details.
Column Name Data Type(size) Constraints
BTBLNO VARCHAR2(7)
BTBLDT DATE
BTDUEDT DATE
BTDISCDT DATE
BTBLMTH1 DATE
BTBLMTH2 DATE
BTENGCHG NUMBER(9,2)
BTCAPSURCHG NUMBER(8,2)
BTFIXCHG NUMBER(7,2)
BTFUELCHG NUMBER(8,2)
BTCUSTCHG NUMBER(9,2)
BTADLCHG NUMBER(9,2)
BTOTHRCHG NUMBER(9,2)
BTARRAMT NUMBER(9,2)
BTADLARRAMT NUMBER(9,2)
BTADLCHGARR NUMBER(9,2)
BTADJAMT NUMBER(9,2)
BTCURBAL NUMBER(9,2)
BTOLDCURBAL NUMBER(9,2)
BTPENINT NUMBER(9,2)
BTINSTALAMT NUMBER(9,2)
BTREBATEAMT NUMBER(9,2)
BTROUNDAMT NUMBER(9,2)
BTBLDUNITS NUMBER(6)
BTELDTY NUMBER(9,2)
BTELDTYARR NUMBER(9,2)
BTELDTYINT NUMBER(9,2)
BTELDTYINTARR NUMBER(9,2)
BTEDADJAMT NUMBER(9,2)
BTAMTPAID NUMBER(9,2)
BTDEFFEE NUMBER(9,2)
BTDEFARR NUMBER(9,2)
BTCONCESS NUMBER(9,2)
BTAPRARR NUMBER(9,2)
BTARRCURR NUMBER(9,2)
BTAPRARR1 NUMBER(9,2)
BTARRCURR1 NUMBER(9,2)
BTSUBSIDYAMT NUMBER(8,2)
BTACDSURCHG NUMBER(8,2)
BTSCNO CHAR(8) NOT NULL

Table-Payment:- to store Payment details


Column Name Data Type(size) Constraints
PTSCNO CHAR(8) NOT NULL
PTBCRNO CHAR(8)
PTPRNO NUMBER(10)

Page | 73
PTPRDT DATE
PTRCCD CHAR(2)
PTCOUNTER NUMBER(3)
PTONOROFF CHAR(1)
PTPAYMETH CHAR(1)
PTCHKNO CHAR(7)
PTCHKDT DATE
PTBNKCD CHAR(3)
PTBLAMT NUMBER(9,2)
PTMISAMT NUMBER(9,2)
PTRECONCHG NUMBER(5,2)
PTCANCELID CHAR(1)
PTBRNNAME VARCHAR2(40)
PTMISAMTCD CHAR(2)
PTELDTY NUMBER(9,2)
PTELDTYINT NUMBER(9,2)
PTADLAMT NUMBER(9,2)
PTDEFAMT NUMBER(9,2)
PTTOTARR NUMBER(11,2)
PTTOTCUR NUMBER(11,2)

Table-RcNames:- to store Regional Code details


Column Name Data Type(size) Constraints
RCCODE CHAR(2) NOT NULL
RCINUSE NUMBER(1)
RCSLNO NUMBER(4)
RCPASS VARCHAR2(8)
RCNAME VARCHAR2(30)
RCTRY NUMBER(1)
RCMAXDATE DATE

Table-ERO:- to store ERO details


Column Name Data Type(size) Constraints
EROCODE NUMBER(3)
ERONAME VARCHAR2(30)
EROUSER VARCHAR2(20)
EROTYPE NUMBER(1)
Table-Section:- to store sectional details
Column Name Data Type(size) Constraints
SECCODE CHAR(2)
SECNAME VARCHAR2(30)
Table-Sub_Div:- to store sub division details
Column Name Data Type(size) Constraints
SDCODE CHAR(2)
SDNAME VARCHAR2(30)

Page | 74
Table-Area:- to store area details
Column Name Data Type(size) Constraints
AREACODE VARCHAR2(6) NOT NULL
AREANAME VARCHAR2(30)

Table-Area_Name:- to store area name details


Column Name Data Type(size) Constraints
AREACODE VARCHAR2(6) NOT NULL
AREANAME VARCHAR2(30)
AREAMR VARCHAR2(20)
AREALI VARCHAR2(20)
PVTMR VARCHAR2(20)

Table-Bank:- to store bank details


Column Name Data Type(size) Constraints
BANKCODE CHAR(2)
BANKDESC VARCHAR2(35)
Table- Sub Category: - to store sub categorical details
Column Name Data Type(size) Constraints
SCCAT NUMBER(1)
SCSUBCAT NUMBER(2)
SCDESC VARCHAR2(45)
SCBILL_TYPE NUMBER(1)
SCREAD_YN NUMBER(1)
SCMAX_LOAD NUMBER(8,3)
SCLOAD_HP_KW VARCHAR2(10)
SCLOAD_UNITS NUMBER(6)
SCREBATE_YN NUMBER(1)
SCAMG_YN NUMBER(1)
SCTARIFF_DT DATE NOT NULL
SCBILL_FACTOR NUMBER(6,4)
SC_CONCESSION_UNITS NUMBER(4)

Page | 75
c. Database design, Procedural Design/Object Oriented Design:-

Procedural Design:-

Technical Architecture:-

Fig: Three tier

Three-tier is a client-server architecture in which the user interface, functional process logic,
computer data storage and data access are developed and maintained as independent modules,
most often on separate platforms.

The 3-Tier architecture has the following three tiers:


Presentation Tier
This is the topmost level of the application. The presentation tier displays information related
to such services as browsing merchandise, purchasing, and shopping cart contents. It
communicates with other tiers by outputting results to the browser/client tier and all other
tiers in the network.

Application Tier (Business Logic/Logic Tier)


The logic tier is pulled out from the presentation tier and, as its own layer, it controls an
application’s functionality by performing detailed processing.

Data Tier
This tier consists of Database Servers. Here information is stored and retrieved. This tier
keeps data neutral and independent from application servers or business logic. Giving data its
own tier also improves scalability and performance.

Page | 76
Process Logic of Each Module:-

Page | 77
Homepage

Start

Read Code no, Circle ID

Sign in

Read uname,
pwd

Login

Consumer Revenue Bill & Reports


account
Management Collection

Stop Page | 78
Figure: Process Logic of Home Page

Page | 79
Consumer Management

Start

Read Circle id,


User id

Consumer
Managemen
t

Ne
New
w
Use Consume
r? r

Modify

Meter Deletion of
Delete
change? consumer
Consumer?

M_part Meter
change? change
Query

Meter Part
change

Figure: Process Logic of Consumer


Management

Page | 80
Stop
Revenue Collection

Start

Read Circle id, User id

Revenue
Collection

Online Offline Receipt


Receipt Receipt Collect

Stop

Page | 81
Figure: Process Logic of Revenue Collection

Page | 82
Billing & Accounting

Start

Read Circle id, User id

Billing &
Accounting

Journal Journal entry pwd change


entry cancel

Stop

Figure: Process Logic of Billing and Accounting Module

Page | 83
Database Design:-

A Complete Database & Table Structure:-

Table-CONSUMER:- to store consumer details


Column Name Data Type(size) Constraint
CTSCNO CHAR(8) NOT NULL
CTNAME VARCHAR2(30)
CTADD1 VARCHAR2(30)
CTADD2 VARCHAR2(30)
CTADD3 VARCHAR2(30)
CTADD4 VARCHAR2(30)
CTPINCODE NUMBER(6)
CTCAT NUMBER(1)
CTSUBCAT NUMBER(1)
CTDISCD CHAR(3)
CTAREACD VARCHAR2(6)
CTEROCD NUMBER(3)
CTSUBDIVCD CHAR(2)
CTSECCD CHAR(2)
CTGROUP CHAR(1)
CTLCNO CHAR(2)
CTBILLMODE NUMBER(1)
CTSUPCONDT DATE
CTCNVTDT DATE
CTSERVTYPE CHAR(2)
CTCONLD NUMBER(8,3)
CTCTRLD NUMBER(8,3)
CTMRBNO VARCHAR2(3)
CTMRBPAGE NUMBER(3)
CTCONSTAT NUMBER(1)
CTDATASTAT CHAR(1)
CTCAPAVAIL NUMBER(3,1)
CTCAPREQ NUMBER(3,1)
CTAGRMTDT DATE
CTCAPSURCHGPE NUMBER(3,2)
R
CTAGRMTEXPDT DATE
CTENTDT DATE
CTBLSTDT DATE
CTSDINTDT DATE
CTSDTOTAMT NUMBER(9,2)
CTSDREQ NUMBER(11,2)
CTSDINTAMT NUMBER(9,2)
CTSDONINTDT NUMBER(11,2)
CTAMGAMT NUMBER(9,2)
CTAMGYR NUMBER(2)
CTAMGEXPR DATE

Page | 84
CTMETSINSERV NUMBER(1)
CTBLNOTPREPMN NUMBER(2)
CTPENINTIND NUMBER(1)
CTREBATEIND NUMBER(1)
CTINSTMTIND NUMBER(1)
CTBLISSUEID NUMBER(1)
CTMTRCHGIND NUMBER(1)
CTOTHERREV NUMBER(9,2)
CTPHONE NUMBER(8)
CTELDTYIND NUMBER(1)
CTTYPE CHAR(1)
CTTRCODE VARCHAR2(8)
CTDEFAMT NUMBER(9,2)
CTNEWSCNO CHAR(11)
CTCYCLE CHAR(2)
CTFEEDERCD VARCHAR2(12)
CTDLISTFLG NUMBER(3)
CTDLSTFLG NUMBER(3)
CTAUTOPAY VARCHAR2(20)
CTSDBALAMT NUMBER(9,2)
CTACDSURCHG NUMBER(9,2)

Table-Meter_Part:- to store meter details


Column Name Data Type(size) Constraints
MPTSCNO CHAR(8) NOT NULL
MPTMSLNO NUMBER(1)
M PTMTRNO VARCHAR2(12)
MPTMTRPHASE NUMBER(1)
MPTMTRMF NUMBER(5,2)
MPTMTRDIGIT NUMBER(1)
MPTMTRCAP VARCHAR2(8)
MPTMTROPNRDG NUMBER(6)
MPTMTRCLRDG NUMBER(6)
MPTMTROPNRDGDT DATE
MPTMTRCLRDGDT DATE
MPTMTRPREVSTAT CHAR(2)
MPTMTRCURRENTST CHAR(2)
AT
MPTMTRCHNGDT DATE
MPTMTRMAKE VARCHAR2(10)
MPTMTRSEALNO VARCHAR2(8)
MPTEXCEPDT DATE

Table-BILL:- to store bill details.


Column Name Data Type(size) Constraints
BTBLNO VARCHAR2(7)
BTBLDT DATE

Page | 85
BTDUEDT DATE
BTDISCDT DATE
BTBLMTH1 DATE
BTBLMTH2 DATE
BTENGCHG NUMBER(9,2)
BTCAPSURCHG NUMBER(8,2)
BTFIXCHG NUMBER(7,2)
BTFUELCHG NUMBER(8,2)
BTCUSTCHG NUMBER(9,2)
BTADLCHG NUMBER(9,2)
BTOTHRCHG NUMBER(9,2)
BTARRAMT NUMBER(9,2)
BTADLARRAMT NUMBER(9,2)
BTADLCHGARR NUMBER(9,2)
BTADJAMT NUMBER(9,2)
BTCURBAL NUMBER(9,2)
BTOLDCURBAL NUMBER(9,2)
BTPENINT NUMBER(9,2)
BTINSTALAMT NUMBER(9,2)
BTREBATEAMT NUMBER(9,2)
BTROUNDAMT NUMBER(9,2)
BTBLDUNITS NUMBER(6)
BTELDTY NUMBER(9,2)
BTELDTYARR NUMBER(9,2)
BTELDTYINT NUMBER(9,2)
BTELDTYINTARR NUMBER(9,2)
BTEDADJAMT NUMBER(9,2)
BTAMTPAID NUMBER(9,2)
BTDEFFEE NUMBER(9,2)
BTDEFARR NUMBER(9,2)
BTCONCESS NUMBER(9,2)
BTAPRARR NUMBER(9,2)
BTARRCURR NUMBER(9,2)
BTAPRARR1 NUMBER(9,2)
BTARRCURR1 NUMBER(9,2)
BTSUBSIDYAMT NUMBER(8,2)
BTACDSURCHG NUMBER(8,2)
BTSCNO CHAR(8) NOT NULL

Table-Payment:- to store Payment details


Column Name Data Type(size) Constraints
PTSCNO CHAR(8) NOT NULL
PTBCRNO CHAR(8)
PTPRNO NUMBER(10)
PTPRDT DATE
PTRCCD CHAR(2)
PTCOUNTER NUMBER(3)
PTONOROFF CHAR(1)
PTPAYMETH CHAR(1)

Page | 86
PTCHKNO CHAR(7)
PTCHKDT DATE
PTBNKCD CHAR(3)
PTBLAMT NUMBER(9,2)
PTMISAMT NUMBER(9,2)
PTRECONCHG NUMBER(5,2)
PTCANCELID CHAR(1)
PTBRNNAME VARCHAR2(40)
PTMISAMTCD CHAR(2)
PTELDTY NUMBER(9,2)
PTELDTYINT NUMBER(9,2)
PTADLAMT NUMBER(9,2)
PTDEFAMT NUMBER(9,2)
PTTOTARR NUMBER(11,2)
PTTOTCUR NUMBER(11,2)

Table-RcNames:- to store Regional Code details


Column Name Data Type(size) Constraints
RCCODE CHAR(2) NOT NULL
RCINUSE NUMBER(1)
RCSLNO NUMBER(4)
RCPASS VARCHAR2(8)
RCNAME VARCHAR2(30)
RCTRY NUMBER(1)
RCMAXDATE DATE

Table-ERO:- to store ERO details


Column Name Data Type(size) Constraints
EROCODE NUMBER(3)
ERONAME VARCHAR2(30)
EROUSER VARCHAR2(20)
EROTYPE NUMBER(1)

Table-Section:- to store sectional details


Column Name Data Type(size) Constraints
SECCODE CHAR(2)
SECNAME VARCHAR2(30)

Table-Sub_Div:- to store sub division details


Column Name Data Type(size) Constraints
SDCODE CHAR(2)
SDNAME VARCHAR2(30)

Table-Area:- to store area details


Column Name Data Type(size) Constraints
Page | 87
AREACODE VARCHAR2(6) NOT NULL
AREANAME VARCHAR2(30)

Table-Area_Name:- to store area name details


Column Name Data Type(size) Constraints
AREACODE VARCHAR2(6) NOT NULL
AREANAME VARCHAR2(30)
AREAMR VARCHAR2(20)
AREALI VARCHAR2(20)
PVTMR VARCHAR2(20)

Table-Bank:- to store bank details


Column Name Data Type(size) Constraints
BANKCODE CHAR(2)
BANKDESC VARCHAR2(35)

Table- Sub Category: - to store sub categorical details


Column Name Data Type(size) Constraints
SCCAT NUMBER(1)
SCSUBCAT NUMBER(2)
SCDESC VARCHAR2(45)
SCBILL_TYPE NUMBER(1)
SCREAD_YN NUMBER(1)
SCMAX_LOAD NUMBER(8,3)
SCLOAD_HP_KW VARCHAR2(10)
SCLOAD_UNITS NUMBER(6)
SCREBATE_YN NUMBER(1)
SCAMG_YN NUMBER(1)
SCTARIFF_DT DATE NOT NULL
SCBILL_FACTOR NUMBER(6,4)
SC_CONCESSION_UNITS NUMBER(4)

d. User Interface Design:-

Page | 88
Interface: Home Page

Interface: Login Screen

Page | 89
Interface: About “EBS”

Interface: EBS Main Menu

Page | 90
Ne
w Interface: Consumer Entry

Interface: EBS Central Power Estimation

Page | 91
Interface: Modify Consumer

Interface: Billing Details

Page | 92
Interface: Billing Name and Category

Page | 93
Interface: Service Change

Interface: Delete Consumer

Page | 94
Interface: Display Consumer Details

Interface: Modify Meter Details

Page | 95
Interface: Enter Meter Details

Interface: Online Receipt

Page | 96
Interface: Offline Receipt

Interface: Offline Entry

Page | 97
Interface: Receipt Cancel

Interface: Offline Receipt Cancel

Page | 98
Interface: Password Change

e. Test Cases (Unit Test Cases and System Test Cases):-

Unit Testing: -

Unit Testing is a software verification and validation method, where the programmer
gains confidence that individual units of source codes are fit for use. 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. Unit testing can be done by something as simple as stepping
through code in a debugger; modern applications include the use of a test framework
such as xUnit.

Page | 99
Ideally, each test case is independent from the others: substitutes like method stubs,
mock objects, fakes and test harnesses can be used to assist testing a module in
isolation. Unit tests are typically written and run by software developers to ensure that
code meets its requirements and behaves as intended. Its implementation can vary
from being very manual (pencil and paper) to being formalized as part of build
automation.

System Testing: -

System Testing (sometimes called System and Testing, abbreviated I&T) is the
activity of software testing in which individual software modules are combined and
tested as a group. It occurs after unit testing and before system testing.

System testing takes as its input modules that have been unit tested, groups them in
larger aggregates, applies tests defined in an System test plan to those aggregates, and
delivers as its output the integrated system ready for system testing.

The purpose of System 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.

Page | 100
4. Coding

a. Complete Project Coding, Comments & Description ,


Standardization Of Coding, Parameters Calling/Passing,
Validation Checks:-

SERVER SITE CODING:-

Admin.jsp- Code for Aministrator’s page


<html>
<body>
<p align="center">
&nbsp;</p>
<p align="center">
&nbsp;</p>
<p align="center">
<a href="adminhome.jsp" style="text-decoration: none; font-weight: 700" target="_parent">
<font color="#000000" face="Nina" size="6">Click To Admin Page </font> </a>
</p>
</body>
</html>

Adminhome.jsp- Code for administrator’s home page


<html>
<frameset rows="16%,*" border=0>
<frame src="head1.jsp" >
<frameset rows="11%,*">
<frame src="center1.jsp" name="center">
<frameset rows="80%">

Page | 101
<frame src="bottom1.jsp" name="bottom">
</frameset>
</frameset>
</html>
<html>
<frameset cols="100%" border="0">
<frame src="admin_home.jsp" name="right">
</frameset>
</html>

Page | 102
Bill.jsp – Code for Bill Generation

<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-


com:office:office" xmlns="http://www.w3.org/TR/REC-html40">

<BODY bgColor=#FFFFFF>

<p><b><font face="AC"
size="4">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs
p;&nbsp;&nbsp;

<%@ page import="java.sql.*,java.util.*" %>

<%!
Connection con;
ResultSet rs,rs1;
Statement st,st1;
String cname,dname,mno,mcname,name,type;
%>
<%
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection
con=DriverManager.getConnection("jdbc:odbc:power","power","power");

String empid = request.getParameter("mno");

st=con.createStatement();
String jy="select * from consumer where mno="+empid+"";

rs=st.executeQuery(jy);
Page | 103
if(rs.next())
{
%>
<form action="bill_reg.jsp">
<table align="center" width="399">
<tr><td width="393">
<table align="center" width="404" height="90">

<tr><td colspan="2" width="278" height="1">


<p align="center"><b><font face="Monotype Corsiva" size="5" color="#FF0000">
Meter Details </font></b> </td></tr>

<tr><td width="244" align="right" height="23" dir="ltr" bgcolor="#00FF00"> <b><font


face="Courier New" size="4">Circle Name
</font></b> </td>
<td width="150" height="23" dir="ltr" bgcolor="#00FF00"> <%cname =
rs.getString(1);%>
<input type="hidden" name="cname" value="<%out.println(cname);%>"><
%out.println(cname);%></td></tr>
<tr><td width="244" align="right" height="23" dir="ltr" bgcolor="#FFFF00"> <b><font
face="Courier New" size="4">Division Name
</font></b> </td>
<td width="150" height="23" dir="ltr" bgcolor="#FFFF00"> <%dname =
rs.getString(2);%>
<input type="hidden" name="dname" value="<%out.println(dname);%>"><
%out.println(dname);%></td></tr>

<tr><td width="244" align="right" height="23" dir="ltr" bgcolor="#00FF00"> <b><font


face="Courier New" size="4">Meter No
</font></b> </td>
<td width="150" height="23" dir="ltr" bgcolor="#00FF00"> <%mno =
rs.getString(3);%>
<input type="hidden" name="mno" value="<%out.println(mno);%>"><%out.println(mno);
%></td></tr>
Page | 104
<tr><td width="244" align="right" height="22" dir="rtl" bgcolor="#FFFF00"> <b><font
face="Courier New" size="4">Company Name
</font></b> </td>
<td width="150" height="22" dir="ltr" bgcolor="#FFFF00"><%mcname =
rs.getString(4);%>
<input type="hidden" name="mcname" value="<%out.println(mcname);%>"><
%out.println(mcname);%>
</td></tr>

<tr><td width="244" align="right" height="22" dir="rtl" bgcolor="#FFFF00"> <b><font


face="Courier New" size="4">Consumer Name
</font></b> </td>
<td width="150" height="22" dir="ltr" bgcolor="#FFFF00"><%name =
rs.getString(5);%>
<input type="hidden" name="name" value="<%out.println(name);%>"><
%out.println(name);%>
</td></tr>

<tr><td width="244" align="right" height="22" dir="rtl" bgcolor="#FFFF00"> <b><font


face="Courier New" size="4">
Connection type
</font></b> </td>
<td width="150" height="22" dir="ltr" bgcolor="#FFFF00"><%type =
rs.getString(10);%>
<input type="hidden" name="type" value="<%out.println(type);%>"><%out.println(type);
%>
</td></tr>

<tr><td width="244" align="right" height="22" dir="rtl" bgcolor="#FFFF00">


<b><font face="Courier New" size="4">No Of Units Used </td>
<td width="150" height="22" dir="ltr" bgcolor="#FFFF00">
<input type="text" name="used" size="13"></td>
Page | 105
</tr>
</font></b>
<tr><td>
<p align="center"> <input type="submit" value="Submit"></td>
<td></td>
</tr>
</font></b>
<%
}
}
catch (Exception e)
{
out.println(e);
}
%>

BillPayment.jsp- Code for payment of Billing

<%@ page import="java.sql.*,java.util.*" %>

<%!
Connection con;
ResultSet rs,rs1;
Statement st,st1;
%>
<%
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection
con=DriverManager.getConnection("jdbc:odbc:power","power","power");

String mno = request.getParameter("mno");


String due = request.getParameter("due");
Page | 106
String cno = request.getParameter("cno");

st1=con.createStatement();

int a = cno.length();
if(a == 16)
{
due = "paid";

int i = st1.executeUpdate("update billing set cno="+cno+" , due='"+due+"' where


mno="+mno+"");

if(i==1)
{
out.println(" Bill Paid ");
}
}

else
{
out.println("please check your Card No ");
}
}
catch(Exception e)
{
out.println(e);
}

%>

Page | 107
BillReg.jsp-Code for Bill wise registration details

<%@ page import="java.sql.*,java.util.*" %>

<%!
Connection con;
ResultSet rs,rs1;
Statement st,st1;
int no = 0;
int cno =0;
int amount =0;
String due;
%>
<%
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection
con=DriverManager.getConnection("jdbc:odbc:power","power","power");

String cname = request.getParameter("cname").trim();


String dname= request.getParameter("dname").trim();
String mno= request.getParameter("mno").trim();
String mcname= request.getParameter("mcname").trim();
String name= request.getParameter("name").trim();
String type= request.getParameter("type").trim();
String used= request.getParameter("used").trim();

st=con.createStatement();
st1=con.createStatement();

rs=st.executeQuery("select * from billing where mno="+mno+"");

if(!rs.next())
{
Page | 108
rs1 = st1.executeQuery("select max(bno) from billing");

if(rs1.next())
{
no = rs1.getInt(1);
no = no+1;

int units = Integer.parseInt(used);


if(units >=0 && units<=50)
{
amount = units * 4;
}
else
if(units >= 51 && units <=100)
{
amount = units * 6;
}
else
{
amount = units * 8;
}
due = "balance";
int i = st.executeUpdate("insert into billing
values("+no+",'"+cname+"','"+dname+"',"+mno+",'"+mcname+"','"+name+"','"+type+"',"+us
ed+","+amount+","+cno+",'"+due+"')");
if(i==1)
response.sendRedirect("commercial_bill.jsp");
}
}
else
{
out.println("Sorry");
}
%>
Page | 109
CommercialBill.jsp-Code for commercial bill generation

<%@ page import="java.sql.*,java.util.*" %>

<%!
Connection con,con1;
ResultSet rs,rs1;
Statement st,st1;
String cname,dname,mno,mcname;
%>
<%

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection
con=DriverManager.getConnection("jdbc:odbc:power","power","power");

String empid = "commercial";

st=con.createStatement();
String jy="select * from consumer where type='"+empid+"'";

%>
<form action="bill.jsp">
<table align="center" width="283">
<tr> <td width="229" align="center">
<font face="Franklin Gothic Medium" size="5" color="#FF0000">Meter No </font> </td>
</tr>
<tr> <td width="229" align="center"> <b><font face="Courier New" size="4">Select The
Meter
NO </font></b> </td>
<td width="44">
<select name="mno">
<%
Page | 110
rs=st.executeQuery(jy);
while(rs.next())
{
%>
<option> <% out.println(rs.getString(3));%></option>
<%
}
%>
</select>
</td>
</tr>
<tr><td> <input type="Submit" value="Submit"></td></tr>
</table>

<table align="center" border="2">


<tr>
<td><font face="Franklin Gothic Medium" color="#0000FF">Meter No </font>
</td>
<td><font face="Franklin Gothic Medium" color="#0000FF">Consumer Name
</font> </td>
<td><font face="Franklin Gothic Medium" color="#0000FF">Connection Type
</font> </td>
<td><font face="Franklin Gothic Medium" color="#0000FF">Units Used </font>
</td>
<td> <font face="Franklin Gothic Medium" color="#0000FF">Amount </font> </td>
<td> <font face="Franklin Gothic Medium" color="#0000FF">Status</font></td>
<td> <font face="Franklin Gothic Medium" color="#0000FF">Delete </font> </td>
</tr>
<%
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

Connection x = DriverManager.getConnection("jdbc:odbc:power","power","power");
Page | 111
Statement s = x.createStatement();
String emp = "commercial";
String jy1="select * from billing where type='"+emp+"'";

ResultSet r = s.executeQuery(jy1);

while(r.next())
{

String mno = r.getString(4);


/*String name = rs.getString(6);
String type = rs.getString(7);
String units = rs.getString(8);
String amount = rs.getString(9);
String due = rs.getString(11);*/
%>
<tr>
<td><%out.println(mno);%>&nbsp;</td>
<td><%out.println(r.getString(6));%>&nbsp;</td>
<td><%out.println(r.getString(7));%>&nbsp;</td>
<td><%out.println(r.getString(8));%>&nbsp;</td>
<td><%out.println(r.getString(9));%>&nbsp;</td>
<td><%out.println(r.getString(11));%>&nbsp;</td>
<td><a href="delete_from_bill.jsp?mno=<%=mno%>"> Yes </a></td>
</tr>
<%
}
}
catch(Exception e)
{out.println(e);}%>
</table>

Page | 112
Consumer.jsp-Code for consumer details

<html>
<body>
<p align="center">
&nbsp;</p>
<p align="center">
&nbsp;</p>
<p align="center">
<a href="consumerhome.jsp" style="text-decoration: none; font-weight: 700"
target="_parent">
<font color="#000000" face="Nina" size="6">Click To Consumer Page </font> </a>
</p>
</body>
</html>

ConsumerDetails.jsp-Code for printing consumer details

<html>
<body>
<p>&nbsp;</p>
<p align="center"><b><font face="Monotype Corsiva" size="6" color="#FF0000">
Consumer Details</font></b></p>
<table align="center" height="162">
<tr><td align="center" height="36"> <b>
<font face="Courier New" size="5">
<a style="text-decoration: none" href="select_meter12.jsp"><font
color="#000000">Create</font></a></font></b></td> </tr>
<tr><td align="center" height="35"> <b>
<font face="Courier New" size="5">
<a style="text-decoration: none" href="select_consumer1.jsp">
<font color="#000000">View</font></a></font></b></td> </tr>
<tr><td align="center" height="39"> <b>
Page | 113
<font face="Courier New" size="5">
<a style="text-decoration: none" href="select_consumer.jsp">
<font color="#000000">Update</font></a></font></b></td> </tr>
<tr><td align="center" height="36"> <b>
<font face="Courier New" size="5">
<a style="text-decoration: none" href="select_consumer2.jsp">
<font color="#000000">Delete</font></a></font></b></td> </tr>
</table>
</body>
</html>

Consumerhome.jsp-code for consumer’s home page


<html>
<frameset rows="16%,*" border=0>
<frame src="head2.jsp" >
<frameset rows="11%,*">
<frame src="center2.jsp" name="center">
<frameset rows="80%">
<frame src="bottom2.jsp" name="bottom">
</frameset>
</frameset>
</html>

Consumer_registration.jsp-code for consumer’s registration details


<html>
<frameset rows="16%,*" border=0>
<frame src="head2.jsp" >
<frameset rows="11%,*">
<frame src="center2.jsp" name="center">
<frameset rows="80%">
<frame src="bottom2.jsp" name="bottom">
</frameset>
</frameset>
</html>
Page | 114
Consumerupdate.jsp-code for consumer details updation

<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-


com:office:office" xmlns="http://www.w3.org/TR/REC-html40">

<BODY bgColor=#FFFFFF>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;
<font face="AC"><b><a style="text-decoration: none" href="consumer_details.jsp">
<font color="#000000" size="7">Back</font></a></a></b></font></p>

<%@ page import="java.sql.*,java.util.*" %>

<%!
Connection con;
ResultSet rs,rs1;
Statement st,st1;
%>
<%
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection
con=DriverManager.getConnection("jdbc:odbc:power","power","power");

String cname = request.getParameter("cname").trim();


String dname = request.getParameter("dname").trim();
String mno = request.getParameter("mno").trim();
String mcname = request.getParameter("mcname").trim();
String name = request.getParameter("name").trim();
String age = request.getParameter("age").trim();
Page | 115
String sex = request.getParameter("sex").trim();
String cno = request.getParameter("cno").trim();
String address = request.getParameter("address").trim();
String type = request.getParameter("type").trim();
String uname = request.getParameter("uname");
String pass = request.getParameter("pass");

st1=con.createStatement();

int i = st1.executeUpdate("update consumer set


cname='"+cname+"',dname='"+dname+"',mno="+mno+",mcname='"+mcname+"'
,name='"+name+"',age="+age+",sex='"+sex+"',cno="+cno+",address='"+address+"',type='"+t
ype+"',uname='"+uname+"',pass='"+pass+"' where mno ="+mno+"");

if(i==1)
{
out.println("<font color=blue size=4><b><center><b><h1>consumer Updated ");
out.println("<p><h1><font
color=blue><b><center><b><center>Thanks</p>");
}
}
catch (Exception e)
{
out.println(e);
}
%>

DeleteConsumer.jsp-Code for consumer deletion

<%@ page import="java.sql.*,java.util.*" %>

<%!
Connection con;
Page | 116
ResultSet rs,rs1;
Statement st,st1;
%>

<html>
<body>
<p>&nbsp;</p>
<p align="center"><b><font face="Monotype Corsiva" size="6" color="#FF0000">

<%
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection
con=DriverManager.getConnection("jdbc:odbc:power","power","power");
String cid = request.getParameter("no");
st=con.createStatement();

String jy = "delete from consumer where mno="+cid;

st.executeUpdate(jy);
%>
<h3 align ="center" > Deleted </h3>
<b><font size="5" face="A.C.M.E. Secret Agent">
<a style="text-decoration: none" href="consumer_details.jsp"><font
color="#000000">Back</font></a></font></b></p>

DeleteFromBill.jsp-Code for bill deletion


<%@ page import="java.sql.*,java.util.*" %>

<%!
Connection con;
ResultSet rs,rs1;
Statement st,st1;
%>

Page | 117
<html>
<body>
<p>&nbsp;</p>
<%
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection
con=DriverManager.getConnection("jdbc:odbc:power","power","power");
String mno = request.getParameter("mno");
st=con.createStatement();

String jy = "delete from billing where mno="+mno;

st.executeUpdate(jy);
%>
<h3 align ="center" > Deleted </h3>

Division_new.jsp-code for new division details create

<%@ page import="java.sql.*,java.util.*" %>

<%!
Connection con;
ResultSet rs,rs1;
Statement st,st1;
%>
<%
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection
con=DriverManager.getConnection("jdbc:odbc:power","power","power");

//String empid = request.getParameter("no");

Page | 118
st=con.createStatement();
String jy="select * from circle ";//where idno="+empid+"";

rs=st.executeQuery(jy);

%>
<html>
<body>
<form action="division_registration.jsp">
<table align="center" width="347" height="120">
<tr><td colspan="2" width="341" height="1">
<p align="center"><b><font face="Monotype Corsiva" size="5" color="#FF0000">
Division Details </font></b> </td></tr>
<tr><td width="131" align="right" height="1" dir="ltr" bgcolor="#00FF00"> <b><font
face="Courier New" size="4">No
</font></b> </td>
<td width="206" height="1" dir="ltr" bgcolor="#00FF00"> <input type="text"
name="idno" size="5">&nbsp;
<font color="#FF0000"><b>* numbers only</b></font></td></tr>
<tr><td width="131">
<p align="right"><b><font face="Courier New" size="4">Circle Name </font></b> </td>
<td width="206">
<select name="cname">
<%
while(rs.next())
{%>
<option><%out.println(rs.getString(2));%> </option>
<%}
}
catch(Exception w)
{
out.println(w);
}%></td>
</tr>
Page | 119
<tr><td width="131" align="right" height="22" dir="rtl" bgcolor="#FFFF00"> <b><font
face="Courier New" size="4">Name
</font></b> </td>
<td width="206" height="22" dir="ltr" bgcolor="#FFFF00">
<input name="dname" size="20" style="float: left"></td></tr>
<tr><td width="131" align="center" height="26"><input type="Submit"
value="Submit"></td>
<td width="206" align="center" height="26"><input type="Reset"
value="Reset"></td></tr>
</table>
</form>
<%
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection
con=DriverManager.getConnection("jdbc:odbc:power","power","power");

String empid = request.getParameter("no");

st=con.createStatement();
String jy="select * from division";//f where didno="+empid+"";

%>
<table align="center" width="508" height="47" border="2">

<tr>
<td width="150" align="center" height="1" dir="ltr"> <b>
<font face="Courier New" size="4" color="#0000FF">Id No
</font></b> </td>
<td width="224" align="center" height="1" dir="rtl"> <b>
<font face="Courier New" size="4" color="#0000FF">Circle Name
Page | 120
</font></b> </td>
<td width="237" align="center" height="1" dir="rtl"> <b>
<font face="Courier New" size="4" color="#0000FF">Division Name
</font></b> </td>
</tr>
<%
rs=st.executeQuery(jy);
while(rs.next())
{
%>
<tr>

<td width="187" height="23" dir="ltr" align="center"> <


%out.println(rs.getString(1));;%>
&nbsp;</td>
<td width="261" height="22" dir="ltr" align="center">
<%out.println(rs.getString(2));%>
</td>
<td width="274" height="22" dir="ltr" align="center">
<%out.println(rs.getString(3));%>
</td>
<%
}
}
catch (Exception e)
{
out.println(e);
}
%>
</table>
</body>
</html>

Page | 121
Division_registration.jsp- Code for division wis consumer registration details

<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-


com:office:office" xmlns="http://www.w3.org/TR/REC-html40">

<BODY bgColor=#FFFFFF>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;
<font face="AC"><b><a style="text-decoration: none" href="division_details.jsp">
<font color="#000000" size="7">Back</font></a></a></b></font></p>

<%@ page import="java.sql.*,java.util.*" %>


<%!
Connection con;
ResultSet rs,rs1;
Statement st,st1;
%>
<%
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection
con=DriverManager.getConnection("jdbc:odbc:power","power","power");

String nid = request.getParameter("idno");


String cname = request.getParameter("cname");
String dname = request.getParameter("dname");
st=con.createStatement();

rs=st.executeQuery("select * from division where didno="+nid+"");

if(!rs.next())
{
int i =st.executeUpdate("insert into division values("+nid+",'"+cname+"','"+dname+"')");
Page | 122
//out.println("<font color=blue size=4><b><center><b><h1>Division Added");
// out.println("<p><h1><font color=blue><b><center><b><center>Thanks</p>");

if(i==1)
response.sendRedirect("division_new.jsp");
%>

<%
}
else
{
out.println("<h1><font color=red><b><center><b> Please Check
Circle Id ");
}
%>

Login.jsp- code for consumer login

<html>
<base target="_self">

<body bgcolor=#FFFFFF>
<%@ page import="java.sql.*"%>
<%

try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con=DriverManager.getConnection("jdbc:odbc:power","power","power");
%>
<%
String uname=request.getParameter("uname");
Page | 123
String s2=request.getParameter("password");

session.setAttribute("uname",uname);

Statement st=con.createStatement();
Statement st1=con.createStatement();

ResultSet rs=st.executeQuery("select * from logindetails where UNAME='"+uname+"' and


PASSWORD='"+s2+"'");

if(rs.next())
{
String s3= rs.getString(3);

if(s3.equals("admin"))
{
response.sendRedirect("admin.jsp ");
}
}

ResultSet rs1=st1.executeQuery("select * from consumer where UNAME='"+uname+"' and


PASS='"+s2+"'");
if(rs1.next())
{
response.sendRedirect("consumer.jsp");
}
else
{
response.sendRedirect("error.html");
}
}
catch(Exception e)
{
Page | 124
System.out.println(e);
}
%>
</body>
</html>

Login_main.jsp-code for mainstream login for the new users’

<%@ page import="java.sql.*,java.util.*" %>

<html>
<body>
<div align="center">
<center>
<p>&nbsp;</p>
<table width="493" style="border-collapse: collapse" bordercolor="#111111"
cellpadding="0" cellspacing="0">
<tr><td width="258"><form action="login.jsp">
<table class="arialn" m="" style="border: 1px solid
rgb(204, 204, 204); border-collapse:collapse" width="247" border="0" cellpadding="3"
cellspacing="0" height="159" bordercolor="#111111">
<tr>
<td colspan="2" bgcolor="#fbfbfb" height="42" width="237"><strong>
<div style="background-color: rgb(229, 229, 229); padding-top: 2px; padding-
left: 5px; padding-bottom: 2px; width:224; height:42">
<p align="center">
<font face="Times New Roman" size="6" color="#0000FF">
Login</font></div></strong></td>
</tr>
<tr>
<td width="90" bgcolor="#fbfbfb" height="22">
<font face="Nina"><b>User Name </b></font> </td>
<td width="148" bgcolor="#fbfbfb" height="22">
<input name="uname" type="text" size="20"></td>
Page | 125
</tr>
<tr>
<td bgcolor="#fbfbfb" width="90" height="22">
<font face="Nina"><b>Password</b></font></td>
<td bgcolor="#fbfbfb" width="148" height="22">
<input name="password" type="password" size="20"></td>
</tr>
<tr>
<td style="padding-bottom: 8px;" bgcolor="#fbfbfb" width="90" height="21">
<p align="center"><input name="submit" id="submit" value="Submit"
type="submit"></td>
<td style="padding-bottom: 8px;" bgcolor="#fbfbfb" width="148" height="21">
<p align="center">
<input type="Reset" value="Reset">
</td>
</tr>

</table></form>
</td><td width="294">
<img border="0" src="images/banner_web_man.jpg" width="263"
height="276"></td></tr>
</table></center></div>

Meter_new.jsp-Code for new meter related application

<%@ page import="java.sql.*,java.util.*" %>

<%!
Connection con;
ResultSet rs,rs1;
Statement st,st1;
%>
<%

Page | 126
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection
con=DriverManager.getConnection("jdbc:odbc:power","power","power");

String cname = request.getParameter("cname");


String dname = request.getParameter("dname");
%>

<html>
<body>
<form action="meter_registration.jsp">
<table align="center" width="347" height="120">
<tr><td colspan="2" width="341" height="1">
<p align="center"><b><font face="Monotype Corsiva" size="5" color="#FF0000">
Meter Details </font></b> </td></tr>

<tr><td width="157">
<p align="right"><b><font face="Courier New" size="4">Circle Name </font></b> </td>
<td width="180"><input type="hidden" name="cname" value="<
%out.println(cname);%>">
<%out.println(cname);%>
</td>
</tr>
<tr><td width="157">
<p align="right"><b><font face="Courier New" size="4">Division Name </font></b>
</td>
<td width="180"><input type="hidden" name="dname" value="<
%out.println(dname);%>">
<%out.println(dname);%>
</td>
</tr>

<tr><td width="157" align="right" height="1" dir="ltr" bgcolor="#00FF00"> <b><font


face="Courier New" size="4">&nbsp;Meter No
Page | 127
</font></b> </td>
<td width="180" height="1" dir="ltr" bgcolor="#00FF00"> <input type="text"
name="mno" size="5">&nbsp;
<font color="#FF0000"><b>* numbers only</b></font></td></tr>

<tr><td width="157" align="right" height="22" dir="rtl" bgcolor="#FFFF00"> <b>


<font face="Courier New" size="4">Company Name </font></b> </td>
<td width="180" height="22" dir="ltr" bgcolor="#FFFF00">
<input name="mcname" size="20" style="float: left"></td></tr>
<tr><td width="157" align="center" height="26"><input type="Submit"
value="Submit"></td>
<td width="180" align="center" height="26"><input type="Reset"
value="Reset"></td></tr>
</table>
</form>
</body>
</html>

Page | 128
Meter_registration.jsp-code for meter related registration details

<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-


com:office:office" xmlns="http://www.w3.org/TR/REC-html40">

<BODY bgColor=#FFFFFF>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;
<font face="AC"><b><a style="text-decoration: none" href="select_circle_name.jsp">
<font color="#000000" size="7">Back</font></a></a></b></font></p>
<%@ page import="java.sql.*,java.util.*" %>
<%!
Connection con;
ResultSet rs,rs1;
Statement st,st1;
%>
<%
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection
con=DriverManager.getConnection("jdbc:odbc:power","power","power");

String cname = request.getParameter("cname").trim();


String dname = request.getParameter("dname").trim();
String mno = request.getParameter("mno");
String mcname = request.getParameter("mcname");
st=con.createStatement();

if(cname.equals(null) || dname.equals(null) || mno.equals(null) || mcname.equals(null))


{
out.println(" Please check the fields ! Some fields are empty");
}
else
Page | 129
{

rs=st.executeQuery("select * from meter where mno="+mno+"");

if(!rs.next())
{
int i = st.executeUpdate("insert into meter
values('"+cname+"','"+dname+"',"+mno+",'"+mcname+"')");

//out.println("<font color=blue size=4><b><center><b><h1>Meter Added");


// out.println("<p><h1><font color=blue><b><center><b><center>Thanks</p>");
if(i == 1)
response.sendRedirect("select_circle_name.jsp");
%>

<%
}
else
{
out.println("<h1><font color=red><b><center><b> Please Check
Meter Id ");
}
}%>

Query.jsp-code for user’s query

<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-


com:office:office" xmlns="http://www.w3.org/TR/REC-html40">

<BODY bgColor=#FFFFFF>

<p><b><font face="AC"
size="4">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&
Page | 130
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs
p;
</font></b>
</p>
<%@ page import="java.sql.*,java.util.*" %>
<%!
Connection con;
ResultSet rs,rs1;
Statement st,st1;
String cname,dname,mno,mcname;
%>
<%
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection
con=DriverManager.getConnection("jdbc:odbc:power","power","power");

String uname = (String)session.getAttribute("uname");


st=con.createStatement();
String jy="select * from consumer where uname='"+uname+"'";

rs=st.executeQuery(jy);
while(rs.next())
{
%>
<form action="query_details.jsp">
<table align="center" width="399">
<tr><td width="393">
<table align="center" width="399" height="90">
<tr><td colspan="2" width="341" height="1">
<p align="center"><b><font face="Monotype Corsiva" size="5" color="#FF0000">
Query Details </font></b> </td></tr>
Page | 131
<tr><td width="204" align="right" height="23" dir="ltr" bgcolor="#00FF00"> <b><font
face="Courier New" size="4">Circle Name
</font></b> </td>
<td width="185" height="23" dir="ltr" bgcolor="#00FF00"> <%cname =
rs.getString(1);%>
<input type="hidden" name="cname" value="<%out.println(cname);%>"><
%out.println(cname);%></td></tr>
<tr><td width="204" align="right" height="23" dir="ltr" bgcolor="#FFFF00"> <b><font
face="Courier New" size="4">Division Name
</font></b> </td>
<td width="185" height="23" dir="ltr" bgcolor="#FFFF00"> <%dname =
rs.getString(2);%>
<input type="hidden" name="dname" value="<%out.println(dname);%>"><
%out.println(dname);%></td></tr>

<tr><td width="204" align="right" height="23" dir="ltr" bgcolor="#00FF00"> <b><font


face="Courier New" size="4">Meter No
</font></b> </td>
<td width="185" height="23" dir="ltr" bgcolor="#00FF00"> <%mno =
rs.getString(3);%>
<input type="hidden" name="mno" value="<%out.println(mno);%>"><%out.println(mno);
%></td></tr>

<tr><td width="204" align="right" height="22" dir="rtl" bgcolor="#FFFF00"> <b><font


face="Courier New" size="4">Company Name
</font></b> </td>
<td width="185" height="22" dir="ltr" bgcolor="#FFFF00"><%mcname =
rs.getString(4);%>
<input type="hidden" name="mcname" value="<%out.println(mcname);%>"><
%out.println(mcname);%>
</td></tr>

Page | 132
<tr><td height="1" align="right" width="204"> <b><font face="Courier
New">&nbsp;&nbsp;&nbsp;&nbsp; Name</font></b></td>
<td height="1" width="185">
<input type="hidden" name="name" size="20" value="<%String name = rs.getString(5);
out.println(name);%>"><%out.println(name);%></td></tr>

<tr><td width="204">
<p align="right"><font face="Courier New" size="4"><b>Description </b></font> </td>
<td width="185"> <textarea name="query" rows="7"
cols="25"></textarea></td></tr>
<tr><td height="26" align="center" width="204"><input type="Submit"
value="Submit"></td>
<td height="26" align="center" width="185"><input type="Reset"
value="Reset"></td></tr>
</table>
</td></tr>
</table>
</form>

<%
}
}
catch (Exception e)
{
out.println(e);
}
%>

Query_details.jsp-code for view all query details

<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-


com:office:office" xmlns="http://www.w3.org/TR/REC-html40">
<BODY bgColor=#FFFFFF>
<p>&nbsp;</p>
Page | 133
<p>&nbsp;</p>
<%@ page import="java.sql.*,java.util.*" %>

<%!
Connection con;
ResultSet rs,rs1;
Statement st,st1;
%>
<%
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection
con=DriverManager.getConnection("jdbc:odbc:power","power","power");

String cname = request.getParameter("cname").trim();


String dname = request.getParameter("dname").trim();
String mno = request.getParameter("mno").trim();
String mcname = request.getParameter("mcname").trim();
String name = request.getParameter("name").trim();
String age = request.getParameter("query").trim();

st1=con.createStatement();
int i = st1.executeUpdate("insert into query values('"+cname+"','"+dname+"',"+mno+",
'"+mcname+"','"+name+"','"+age+"')");

if(i==1)
{
out.println("<font color=blue size=4><b><center><b><h1>Query Added ");
out.println("<p><h1><font
color=blue><b><center><b><center>Thanks</p>");
}
}
catch (Exception e)
Page | 134
{
out.println(e);
}
%>

Residential_bill.jsp-code to generate residential bill only

<%@ page import="java.sql.*,java.util.*" %>

<%!
Connection con;
ResultSet rs,rs1;
Statement st,st1;
String cname,dname,mno,mcname;
%>
<%

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection
con=DriverManager.getConnection("jdbc:odbc:power","power","power");

String empid = "residential";

st=con.createStatement();
String jy="select * from consumer where type='"+empid+"'";

%>
<form action="bill1.jsp">
<table align="center" width="205">
<tr> <td width="151" align="center">
<font face="Franklin Gothic Medium" size="5" color="#FF0000">Meter No </font> </td>
</tr>
<tr> <td width="151" align="center"> <b>Select The Meter No</b></td>
<td width="44">
Page | 135
<select name="mno">
<%
rs=st.executeQuery(jy);
while(rs.next())
{
%>
<option> <% out.println(rs.getString(3));%></option>
<%
}
%>
</select>
</td>
</tr>
<tr><td><input type="Submit" value="Submit"></td></tr>
</table>
<table align="center" border="2">
<tr>
<td><font face="Franklin Gothic Medium" color="#0000FF">Meter No </font>
</td>
<td><font face="Franklin Gothic Medium" color="#0000FF">Consumer Name
</font> </td>
<td><font face="Franklin Gothic Medium" color="#0000FF">Connection Type
</font> </td>
<td><font face="Franklin Gothic Medium" color="#0000FF">Units Used </font>
</td>
<td> <font face="Franklin Gothic Medium" color="#0000FF">Amount </font> </td>
<td> <font face="Franklin Gothic Medium" color="#0000FF">Status</font></td>
<td> <font face="Franklin Gothic Medium" color="#0000FF">Delete </font> </td>
</tr>
<%
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

Page | 136
Connection x = DriverManager.getConnection("jdbc:odbc:power","power","power");

Statement s = x.createStatement();

String emp = "residential";


String jy1="select * from billing where type='"+emp+"'";
ResultSet r = s.executeQuery(jy1);
while(r.next())
{

String mno = r.getString(4);


/*String name = rs.getString(6);
String type = rs.getString(7);
String units = rs.getString(8);
String amount = rs.getString(9);
String due = rs.getString(11);*/
%>
<tr>
<td><%out.println(mno);%>&nbsp;</td>
<td><%out.println(r.getString(6));%>&nbsp;</td>
<td><%out.println(r.getString(7));%>&nbsp;</td>
<td><%out.println(r.getString(8));%>&nbsp;</td>
<td><%out.println(r.getString(9));%>&nbsp;</td>
<td><%out.println(r.getString(11));%>&nbsp;</td>
<td><a href="delete_from_bill.jsp?mno=<%=mno%>"> Yes </a></td>
</tr>
<%
}
}
catch(Exception e)
{out.println(e);}%>
Select_bill_type.jsp-code to select bill type
<%
String type = request.getParameter("type");
Page | 137
out.println(type);

if (type.equals("commercial"))
{
response.sendRedirect("commercial_bill.jsp");
}
else
if(type.equals("residential"))
{
response.sendRedirect("residential_bill.jsp");
}
%>
Select_consumer.jsp-code to select consumer details
<%@ page import="java.sql.*,java.util.*" %>

<%!
Connection con;
ResultSet rs,rs1;
Statement st,st1;
%>

<html>
<body>
<p>&nbsp;</p>
<p align="center"><b><font face="Monotype Corsiva" size="6" color="#FF0000">Edit
Consumer Details</font></b></p>
<form action="edit_consumer.jsp" >
<table align="center" width="306">
<tr>
<td width="252"> <b><font face="Courier New" size="4">Select the Consumer Meter
No</font></b>
</td>

<td width="44">
Page | 138
<%
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection
con=DriverManager.getConnection("jdbc:odbc:power","power","power");
st=con.createStatement();
String jy = "select * from consumer ";
rs = st.executeQuery(jy);
%>
<select size="1" name="no">
<%
while(rs.next())
{
String no = rs.getString(3);
%>

<option> <% out.println(no);%> </option>


<%
}
%>
</td>
</tr>
<tr><td> <input type="Submit" value="Submit"></td></tr>
</table>
</form>
</body></html>

View_bill.jsp-Code to view all bill details by the admin

<%@ page import="java.sql.*,java.util.*" %>


<%!
Connection con;
ResultSet rs,rs1;
Statement st,st1;
String status;
Page | 139
%>
<%

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con=DriverManager.getConnection("jdbc:odbc:power","power","power");

String name = (String)session.getAttribute("uname");

st=con.createStatement();
st1 = con.createStatement();
rs=st.executeQuery("select * from consumer where uname='"+name+"'");
if(rs.next())
{
String mnumber = rs.getString(3);
status = "balance";
rs1=st1.executeQuery("select * from billing where mno='"+mnumber+"' and
due='"+status+"'");
if(rs1.next())
{
String mno = rs1.getString(4);
%>

<p>&nbsp;</p>
<p align="center"><font face="Franklin Gothic Medium" size="5" color="#FF0000">
Bill Payment Details</font> </p>
<form action="bill_payment.jsp">
<table align="center" >
<tr>
<td><font face="Franklin Gothic Medium" color="#0000FF">Meter No </font>
</td>
<td><input type="hidden" name="mno" value="<%out.println(mno);%>"><
%out.println(mno);%>&nbsp;</td>
</tr>
<tr>
Page | 140
<td><font face="Franklin Gothic Medium" color="#0000FF">Consumer Name
</font> </td>
<td><%out.println(rs1.getString(6));%>&nbsp;</td></tr>
<tr>
<td><font face="Franklin Gothic Medium" color="#0000FF">Connection Type
</font> </td><td><%out.println(rs1.getString(7));%>&nbsp;</td></tr>
<tr>
<td><font face="Franklin Gothic Medium" color="#0000FF">Units Used </font>
</td>
<td><%out.println(rs1.getString(8));%>&nbsp;</td></tr>
<tr>
<td> <font face="Franklin Gothic Medium" color="#0000FF">Amount </font> </td>
<td><%out.println(rs1.getString(9));%>&nbsp;</td></tr>
<tr>
<td> <font face="Franklin Gothic Medium" color="#0000FF">Status</font></td>
<td><%out.println(rs1.getString(11));%>&nbsp;</td></tr>
<tr>
<td>
<input type="hidden" name="due" value="<%out.println(status);%>">
<font face="Franklin Gothic Medium" color="#0000FF">Card No </font> </td>
<td><input type="text" name="cno" size="25"> <b><font
color="#FF0000">* 16 Digit No</font></b></td>
</tr>
<tr><td colspan="2">
<p align="center"><input type="Submit" value="Pay Bill"></td></tr>

<%}
else
{
out.println(" Bill Paid Thanks ");
out.println(" New Bill Will Update Shortly Thanks");
}

}%>
Page | 141
</table>
</form>

View_consumer.jsp – view all consumer details by admin

<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-


com:office:office" xmlns="http://www.w3.org/TR/REC-html40">
<BODY bgColor=#FFFFFF>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp; </p>

<p><b><font face="AC"
size="4">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs
p;&nbsp;&nbsp;
</font></b>
<font face="AC"><b><a style="text-decoration: none" href="consumer_details.jsp">
<font color="#000000" size="4">Back</font></a></a></b></font></p>
<%@ page import="java.sql.*,java.util.*" %>

<%!
Connection con;
ResultSet rs,rs1;
Statement st,st1;
%>
<%
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

Page | 142
Connection
con=DriverManager.getConnection("jdbc:odbc:power","power","power");

String empid = request.getParameter("no");

st=con.createStatement();
String jy="select * from consumer where mno="+empid+"";

rs=st.executeQuery(jy);
while(rs.next())
{
%>
<table align="center" width="347" height="90">
<tr><td colspan="2" width="278" height="1">
<p align="center"><b><font face="Monotype Corsiva" size="5"
color="#FF0000">Consumer Details
</font></b> </td></tr>

<tr><td width="199" align="right" height="23" dir="ltr" bgcolor="#00FF00"> <b><font


face="Courier New" size="4">Circle Name
</font></b> </td>
<td width="138" height="23" dir="ltr" bgcolor="#00FF00"> <
%out.println(rs.getString(1));%></td></tr>

<tr><td width="199" align="right" height="22" dir="rtl" bgcolor="#FFFF00"> <b><font


face="Courier New" size="4">Division Name</font></b> </td>
<td width="138" height="22" dir="ltr" bgcolor="#FFFF00"><%out.println(rs.getString(2));
%></td></tr>

<tr><td width="199" align="right" height="23" dir="ltr" bgcolor="#00FF00"> <b><font


face="Courier New" size="4">Meter No
</font></b> </td>

Page | 143
<td width="138" height="23" dir="ltr" bgcolor="#00FF00"> <
%out.println(rs.getString(3));%></td></tr>

<tr><td width="199" align="right" height="22" dir="rtl" bgcolor="#FFFF00"> <b><font


face="Courier New" size="4">Meter Company Name</font></b> </td>
<td width="138" height="22" dir="ltr" bgcolor="#FFFF00"><%out.println(rs.getString(4));
%></td></tr>

<tr><td width="199" align="right" height="23" dir="ltr" bgcolor="#00FF00"> <b><font


face="Courier New" size="4">Consumer Name
</font></b> </td>
<td width="138" height="23" dir="ltr" bgcolor="#00FF00"> <
%out.println(rs.getString(5));%></td></tr>

<tr><td width="199" align="right" height="22" dir="rtl" bgcolor="#FFFF00"> <b><font


face="Courier New" size="4">Age</font></b> </td>
<td width="138" height="22" dir="ltr" bgcolor="#FFFF00"><%out.println(rs.getString(6));
%></td></tr>

<tr><td width="199" align="right" height="23" dir="ltr" bgcolor="#00FF00"> <b><font


face="Courier New" size="4">Sex
</font></b> </td>
<td width="138" height="23" dir="ltr" bgcolor="#00FF00"> <
%out.println(rs.getString(7));%></td></tr>

<tr><td width="199" align="right" height="22" dir="rtl" bgcolor="#FFFF00"> <b><font


face="Courier New" size="4">Contact No</font></b> </td>
<td width="138" height="22" dir="ltr" bgcolor="#FFFF00"><%out.println(rs.getString(8));
%></td></tr>

<tr><td width="199" align="right" height="23" dir="ltr" bgcolor="#00FF00"> <b><font


face="Courier New" size="4">Address
</font></b> </td>

Page | 144
<td width="138" height="23" dir="ltr" bgcolor="#00FF00"> <
%out.println(rs.getString(9));%></td></tr>

<tr><td width="199" align="right" height="22" dir="rtl" bgcolor="#FFFF00"> <b><font


face="Courier New" size="4">Connection Type</font></b> </td>
<td width="138" height="22" dir="ltr" bgcolor="#FFFF00"><%out.println(rs.getString(10));
%></td></tr>

<tr><td width="199" align="right" height="23" dir="ltr" bgcolor="#00FF00"> <b><font


face="Courier New" size="4">User Name</font></b> </td>
<td width="138" height="23" dir="ltr" bgcolor="#00FF00"> <
%out.println(rs.getString(11));%></td></tr>

<tr><td width="199" align="right" height="22" dir="rtl" bgcolor="#FFFF00"> <b><font


face="Courier New" size="4">Password</font></b> </td>
<td width="138" height="22" dir="ltr" bgcolor="#FFFF00"><%out.println(rs.getString(12));
%></td></tr>

</table>

<%
}
}
catch (Exception e)
{
out.println(e);
}
%>

View_meter.jsp-Code for viewing all meter related details by the consumer

<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-


com:office:office" xmlns="http://www.w3.org/TR/REC-html40">
<BODY bgColor=#FFFFFF>
Page | 145
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p>
<p>&nbsp;</p>
<p><b><font face="AC"
size="4">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs
p;&nbsp;&nbsp;
</font></b>
<font face="AC"><b><a style="text-decoration: none" href="meter_details.jsp">
<font color="#000000" size="4">Back</font></a></a></b></font></p>
<%@ page import="java.sql.*,java.util.*" %>

<%!
Connection con;
ResultSet rs,rs1;
Statement st,st1;
%>
<%
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection
con=DriverManager.getConnection("jdbc:odbc:power","power","power");

String empid = request.getParameter("no");

st=con.createStatement();
String jy="select * from meter where mno="+empid+"";

rs=st.executeQuery(jy);
Page | 146
while(rs.next())
{
%>
<table align="center" width="347" height="90">

<tr><td colspan="2" width="278" height="1">


<p align="center"><b><font face="Monotype Corsiva" size="5" color="#FF0000">
Meter Details </font></b> </td></tr>

<tr><td width="166" align="right" height="23" dir="ltr" bgcolor="#00FF00"> <b><font


face="Courier New" size="4">Circle Name
</font></b> </td>
<td width="171" height="23" dir="ltr" bgcolor="#00FF00"> <
%out.println(rs.getString(1));;%>
&nbsp;</td></tr>
<tr><td width="166" align="right" height="23" dir="ltr" bgcolor="#FFFF00"> <b><font
face="Courier New" size="4">Division Name
</font></b> </td>
<td width="171" height="23" dir="ltr" bgcolor="#FFFF00"> <
%out.println(rs.getString(2));;%>
&nbsp;</td></tr>

<tr><td width="166" align="right" height="23" dir="ltr" bgcolor="#00FF00"> <b><font


face="Courier New" size="4">Meter No
</font></b> </td>
<td width="171" height="23" dir="ltr" bgcolor="#00FF00"> <
%out.println(rs.getString(3));;%>
&nbsp;</td></tr>

<tr><td width="166" align="right" height="22" dir="rtl" bgcolor="#FFFF00"> <b><font


face="Courier New" size="4">Company Name
</font></b> </td>
<td width="171" height="22" dir="ltr" bgcolor="#FFFF00">
<%out.println(rs.getString(4));%>
Page | 147
</td></tr>

</table>

<%
}
}
catch (Exception e)
{
out.println(e);
}
%>

Page | 148
CLINET SITE CODING:-

Error.html- Code to generate error page

<html>
<body>
<p>&nbsp;</p>
<p>&nbsp;</p>
<table align="center">
<tr>
<td width="176" background="new-support-
inquiry_data/login_error_header_bg.gif">
<img src="new-support-inquiry_data/login_error_header.gif" alt="" border="0"
width="176" height="165"></td>
<td width="516" background="new-support-
inquiry_data/login_error_header_bg.gif">&nbsp;<span style="font-weight: bold; font-size:
16px; color: rgb(212, 113, 0);">No login entered</span><br>
&nbsp;<span style="font-size: 14px; font-family: Arial;">For access on this site, a
<strong>login</strong> is required.</span>
<p>&nbsp;</p>
</td>
</tr>
</table>
</body>
</html>

Index.html- Code for Index Page


<html>
<frameset rows="16%,*" border=0>
<frame src="head.jsp" >
<frameset rows="11%,*">
<frame src="center.jsp" name="center">
<frameset rows="80%">

Page | 149
<frame src="bottom.jsp" name="bottom">
</frameset>
</frameset>
</html>

b. Code Efficiency of the Project:-

Efficiency of any system is concern with the proper use of scare recourses by the system. The
need of efficiency arises due to cost considerations. If some resources are scarce and
expensive, it is desirable that those resources be used efficiency are processor time and
memory. An efficient system is concern with less CPU interaction and less memory. It is
important to make my software as a quick and intelligent to solve the desire purpose with in
some fraction of second. Code efficiency means that especially code that is executed often
with in tight loop.

Simplicity of the code an also consideration factor. Efficient the coding structures handle the
entire problem to arrive at required output. In the system i.e. “Electricity Billing System” is
designed in well-structured manner to suit “Code Efficiency” in such a way that can prove by
default. I use some tools to make the code efficient. If the code is not simple then they
maintain and up- gradation will be a tedious job for the user of the system.

The said criteria are not nor may independent and increase of one have unfavorable for
another.

A code should be design clearly that can be verifiable, complete (implements all the
specification) and traceable (all design elements can be traced to some requirements).

Code Optimization:-

In the design methodology used, the basic structure of the design was created during analysis.
As the analysis is concerned with capturing and representing various aspects of the problem,
some inefficiency may have crept in. In this final step, the issue of efficiency is considered,

Page | 150
keeping in mind that the final structures should not deviate too much from the logical
structure produced by the analysis time.

Optimization of the code is the intermediate process of the system design. After completion
of the coding, Optimization of the code is evaluated. There are number of different steps
through which we can design the system and maintain the entire system with the application.

While developing the system ,I have sincerely taken the following factors:-

Minimize the code size and accurate code forget desire output in less execution
time.
Internal relation between modules is managed very efficiently;also try to decrease
the interdependency between modules.
Normalize the table as normalize as possible for preventing redundancy of data.
Easily modifiable to rectify and type of errors found during testing or actual
operations.
Write procedures/function for same type of models execution.
Inclusion of entire new modules (System Expandability) becomes easy and
simple.
Flexibility for add new module at any time.

So, I think that my “Electricity Billing System” system wills easily shootout any times of
real life problems in an efficient manner.

Error Handling:-

Error Handling refers to the programming practice of anticipating and coding for error
conditions that may arise when our program runs. Errors in general come in three flavors:-

Compiler errors:

Page | 151
Such as undeclared variables that prevent our code from compiling; user data
entry error such as a user entering a negative value where only a positive number
is acceptable; and run time errors, that occur when system cannot correctly
execute a program statement.

Run time errors:

Run time errors, that occur when system cannot correctly execute a program
statement.

Typical Run time errors:

Typical run time errors include attempting to access a non-existent worksheet or


workbook, or attempting to divide by zero. The example code in this article will
use the division by zero error when we want to deliberately raise an error

Page | 152
5. Testing

a. Principles of Testing:-
Testing is a comprehensive organized effort to exercise all aspects of a software system for
possible failure.

Successful testing is not a proof of correctness (unless we try every input


exhaustively), but it can provide useful reassurance.
Design test cases, Testing should not be "random." When the number of possible
inputs is small, try them Test all "branches" of the code. For example, be sure to
include test cases that go through the if part as well as the else part of a
conditional statement. Test boundary cases, like 0, 1, -1, etc.
Look for ways to "break" the program, and try those to be sure they don't.
Know what the expected results of our tests should be. Otherwise, we might not
recognize an incorrect result.
Always be aggressive about testing. If we test gingerly, we won’t uncover as
many errors. Remember, the objective in testing is to find errors.
Save our test program (and the expected results), so we can run it again later.
Whenever modifying a program to fix one problem, there is a risk that we might
have caused a different problem, so it's best to repeat all the tests.

Program Errors: -

Compilation Errors:

Syntax errors -- The compiler cannot understand our program because it does not follow the
syntax (the rules for a valid program). Common syntax errors include:

Missing or misplaced; or },
Missing return type for a procedure,
Missing or duplicate variable declaration.

Page | 153
Type errors -- these include:

Type mismatch on assignment,


Type mismatch between actual and formal parameters (the Java compiler might say
"no such method..." instead).

Run-time Errors:

Output errors -- the program runs but produces an incorrect result. This
indicates an error in the meaning of the program (logic error).

Exceptions -- the program terminates abnormally. Examples include division


by zero, null pointer (we'll see what this means later), out of memory.

These also indicate an error in the semantics (logic error).

Non-termination -- the program does not terminate as expected, but continues


running "forever." (We'll see how this could happen later.)

Correcting Compiler Errors:-

The compiler reports the approximate location of the error and a vague description of it. In
Symantec Cafe, double click on the error message to find that location in the code. Then
study that line, as well as a few previous lines, for the error. Check any procedure call on that
line for proper number, order, and types of arguments.

Note: Errors may cause the compiler to go "off course." Try correcting the first few errors
and running the compiler again.

Page | 154
b. Correcting Run-time Errors (Debugging):-

1. Avoid it. Taking the time to write a correct and well-documented program from the
outset will pay back many times over. Finding and correcting bugs takes a lot of time,
and it can be frustrating, especially if documentation is insufficient. However, nobody
writes perfect software all the time.
2. Debug on a small scale. Thoroughly test each component of application (each method
of each object) piece by piece, correcting errors as we go. This is much easier than
finding errors in a large program.
3. Understand the symptom. Before changing a program, understand the error and where
in the program it occurred. Look at what the program tried to do and where it went
wrong.
4. Reason about each error, trying to understand how it could have arisen. This is an
important problem-solving task. Form several hypotheses about how the error might
have arisen and explore them.
5. Find the source of the error. Don't waste time making "random" changes to our
program. After reasoning about the error, we can start searching back through the
execution of our program to see where things went wrong.

A Debugger can help :-

(a). Examine the call stack and the values of parameters and local
variables. See if it matches our expectation of what the program "should" do.
(b). Trace through an execution of our program by hand and with a
debugger, stopping at certain points in the execution and/or printing out values
along the way, to correct the errors and test throughly.

General Concept: -

A good rule of thumb is that testing should take approximately half the effort that was
expended in developing and implementing the algorithms, including testing performed by the
software development team. Common estimates of the cost of finding and fixing errors in
programs range from 40% to 80% of the total development costs. In addition, it has estimated

Page | 155
that programs released to testing have one to three bugs per every 100 lines of code, and this
is after the programmers have fixed 99% of their mistakes.

Many likely and less-than likely input variations should be tried during testing with the
emphasis on tests that are likely to discover bugs. It is not cost effective, and often not
possible, to test software so completely that it is bug-free. Instead, the strategy is to find the
bugs that are the most likely to cause problems and those that cause the largest problems.
Generally, a bug which is the most important to catch will be one that delivers some or many
incorrect numbers but does not cause the program to crash or issue warning messages. This
includes output values reported in the wrong format, in an incorrect location, or outputs
which are just plain wrong. This is important to fix first since the user has a reasonable
expectation that any number delivered is “correct”. The next most important type bug to
catch is one that causes the program to crash, or not deliver the expected reports, or to issue
false error messages. In this case, the program at least indicates to the user that there is a
problem, and they will not depend on the results.

The effort of testing should not be limited by a specific plan. In many cases ,the majority of
the testing that is performed and found useful (discovered bugs) is testing that is done on an
ad hoc basis following the flow of the program and the intuition of the tester. Adequate time
for testing should be provided, since rushing this step serves only to increase the number of
likely bugs at the final release.

Glass Box Testing:-

Testing performed by a programmer with access to and understanding of the source code is
called Glass Box Testing or structural Testing. Glass Box testing is usually performed during
source code development and prior to Black Box testing which is also known as Functional
Testing. The original programmers typically perform some Glass Box testing. Unlike Glass
Box testing, Black Box testing is testing of the program from the user’s perspective with no
access to source code. Glass Box testing may include the following: 

Code Review- A careful line-by-line review of the source code by another programmer
familiar with the program’s overall objectives. In the development teams, exchanging source
code with another programmer best performs this. 

Page | 156
Complete Coverage- A coverage monitor ensures that all lines of the source code are
executed. Different types of coverage monitoring programs exist which look at executing all
lines, all branches, or all logic conditions for each branch. 

Drivers- Adding code that calls the module being developed with artificial data and getting a
known response. This also allows for incremental or evolutionary programming, which
allows the entire program to be run even when intermediate modules have not yet been
developed. 

Module deletion- To narrow down how crashes occur, modules are removed and stubs (non-
performing modules with the same name) are substituted. 

Assertion checks- Conditional statements of a premise at a certain point in the program. The
result of an assertion that is incorrect should be a special error condition. Assertion checks
may be conditionally compiled, so that they do not exist in the final program.

In addition, the programmer should identify the following during Glass Box Testing, if not
already defined in the specification: 

Input ranges – The maximum and minimum allowable values for every data entry field. 

Internal boundaries – Threshold values of inputs that cause different program segments to
be used.

Error handler triggers – Values of input that should cause error handling routines to be
executed.

Black Box Testing:-

Black Box testing that is also known as Functional or Behavioral testing. This is a testing
pre- release or release version of the program and trying various inputs looking for incorrect
outputs or program crashes. It is one of the best ways to diagnose bugs before users discover
them. Given the complexity of many software packages, much thought must be devoted to
Page | 157
optimizing the testing process. Ideally only one test will be performed for each possible set of
software conditions. Of all possible sets of software conditions there are groupings of
conditions that if all tested would be testing, the same code and reveal the same bugs (or
hopefully the lack of bugs). These groups of conditions are considered an equivalent class or
each is called an equivalent class partition.

Software Testing Standards and Guiding Documents:

The Institute of Electrical and Electronics Engineers has a number of publications on quality
assurance procedures and standards for developing software. The most applicable standard,
“Standard 829-1998 IEEE Standard for Software Test Documentation,”should be reviewed,
when developing a testing plan.

Acceptance Testing;-

A range of simple buildings should be simulated with the building simulation program
undergoing testing automatically prior to all other tests. These should be considered an
acceptance test intended to weed out unstable versions of the software that would not be
fruitful to use for further debugging. Acceptance tests are often automated and may be
provided to the programmers as a way to reduce the number of versions submitted for testing.

Regression Testing:-

Tests are performed multiple times, including once after each major source code change. The
changes are usually due to inconsistencies found during the testing, and to implement new
features and are likely to contain problems. The first tests to be run with each new version are
considered Regression tests and compare the results before and after the series of tests. The
results of the Regression tests are all concatenated into a text file and are compared to a text
file prepared using the identical method on the previous version. The comparison will be
performed using a standard text file comparison utility and will report any new differences.
The inconsistencies that have been fixed by the development team should be easy to identify
and confirm that the fixes have been made correctly. The series of regression tests should
consist of automated quick-to-perform tests and all tests that have previously found errors.

Page | 158
The likelihood of an old error creeping back into the code, when new ones are fixed is high
enough to justify keeping tests in the regression suite that have been long since fixed.

Release Tests:-

Special consideration must be made just prior to a public release of the program to ensure that
all bugs that were intended to be fixed were actually fixed. A Release test is the most
comprehensive automated test that, in large part, consists of a mixture of previously failed-
and-fixed tests and tests that have always passed. It is critical that prior to any form of public
release that known problems are specifically identified. The public release should include a
“readme” file that describes all known problems at the time of release, and it is usually the
tester that is responsible for compiling this list of problems and any work-around that exist.
Release tests should include virus checking of the final installation package. Too many cases
of distribution of viruses have been reported to not take this additional precaution. One type
of Release test that also needs to be performed prior to a final public release is a comparison
of all features actually working reliably with prepared literature. It is crucial the literature
reflect all design decision made during development and testing.

Beta Tests:-

Other than the developers and testers, most software developed is not used by anyone else
until Beta tests commence. A common practice is to recruit a group of Beta testers who are
knowledgeable users of similar products. The Beta test group should be sent the program in
executable form for their target environment and should include documentation. They should
be warned extensively that the product still has bugs and should not be used for production
purposes. It is unrealistic to expect the Beta tester to contribute more than half a day of
testing per week. They should be informed of a clear path to make reports on bugs, general
problems, and possible enhancements. This should include both e-mail and telephone. Often
the lead tester is responsible for managing the feedback from the Beta testers. The lead tester
works with the Beta testers to verify any reported bugs by trying to reproduce them. It is not
uncommon for the Beta test support to require full time effort, especially if the Beta tester list
is above 20 people. Beta testers should get new versions of the program not more often than
once every other week otherwise the effort in installing and uninstalling the program is most
of the time spent. At times, a critical bug is found and Beta testing needs to be halted, so all

Page | 159
Beta testers should be available by e-mail. Beta testers have a few different motivations for
volunteering to be a Beta tester and each needs to be catered to:

Desire to become an expert quickly,


Anticipation of a free copy of the final program,
Professional curiosity,
Complementary product, or
Competitive product.

At times, it even makes sense to pay the Beta tester to provide expert advice, if there are a
limited number of experts in a field. Getting a final version of the program is very common in
Beta testing and if it is not part of the plan, the Beta testers should be explicitly told.

Test Suspension and Resumption Criteria:-

Some bugs are so fundamental that the credibility of the results of other tests is affected, and
tests need to be suspended. These include tests that appear to reveal general bugs in the input
and output processing, tests that show non-repeatable results using identical inputs, tests that
produce order of magnitude errors in fundamental algorithms, and tests that produce order of
magnitude errors in basic elements. These tests should result in an urgent bug report and a
follow up call to the responsible developer and the overall project manager. Both should be
informed that no further testing could be fruitful, until that bug is fixed. The overall project
manager is informed to let them know of the critical path that may be getting delayed due to
the bug ,so that additional programmers may be utilized if necessary. Upon receipt of an
updated version, the tester should perform the normal regression testing that is performed on
every new version, and repeat the tests that originally revealed the critical bug. Upon passing
these tests, both the programmer and the overall project manager should again be informed
that tests have resumed.

Full Code Tests:-

Full code tests are designed to exercise all lines of code by exercising combinations of inputs
and tracking which lines of code have been executed. This is a glass box testing technique
and must be performed by the programmer using software designed to aid in the testing

Page | 160
process. Many of the range tests may also be appropriate for performing these tests. Full code
tests are no panacea, since they cannot be as comprehensive as full logic flow tests. Full logic
flow tests test every possible set of preceding conditions that have been executed prior to a
particular portion of the code and, by definition, require an almost infinite amount of effort.

Documentation Tests:-

Comparing how the program operates and the Documentation describing the program is often
left to the tester. This is a crucial step. Even though many people don’t read the
Documentation, one can expect that any inconsistencies will be costly and embarrassing to
fix.

Comparative Tests:-

Comparative tests compare a program to it or to other simulation programs. This type of


testing accomplishes results on two different levels, both Validation and Debugging. From a
Validation perspective, Comparative tests will show, if the software is computing solutions
that are reasonable compared to similar programs. This is a very powerful method of
assessment, but it is no substitute for determining , if the program is absolutely correct, since
it may be just as equally incorrect as the Benchmark program or programs. The biggest
strength of Comparative testing is the ability to compare any cases that two or more programs
can both model. This is much more flexible than analytical tests, when only specific solutions
exist for simple models, and much more flexible than empirical tests, when only specific data
sets have been collected for usually a very narrow band of operation. Comparative testing is
also useful for field-by-field input Debugging. Complex programs have so many inputs and
outputs that the results are often difficult to interpret. To ascertain , if a given test passes or
fails, engineering judgment or hand calculations are often needed. Field by field Comparative
testing eliminates any calculation requirements for the subset of fields that are equivalent in
two or more simulation programs. The equivalent fields are exercised using equivalent inputs
and relevant outputs are directly compared.

Analytical Tests:-

Analytical tests compare results to mathematical solutions for simple cases.


Page | 161
Empirical Tests:-

Empirical tests compare results to experimental data. In many respects, these have proven to
be the most difficult type of tests to do. It is important that high-quality data be used as the
basis for comparison along with complete and accurate information for developing a
simulation model that represents the test building or module as closely as possible.

Range Tests:-

Range tests check the operation of the code over the complete range of valid inputs. The tests
will also go beyond all valid ranges to ensure that adequate error messages are generated.

Sensitivity Tests:-

Sensitivity tests compare results to a baseline case and exhaustively test the functioning of
every modeling input, including weather data for a full range of climate zones.

Executable Tests:-

Executable Tests interrupt and restart the program, including tests that remove selective
binary or input files, looking for graceful program stops with appropriate error messages.
Executable Tests also include:-- 

Load Tests– Testing the program’s ability to handle large tasks. 

Error Recovery– Attempting to make the program generate as many error messages
as possible. 

Compatibility– Checking the functioning of the program, simultaneously with other


applications such as word processors, spreadsheets, day planners, etc.

Page | 162
Installation– The installation program must be tested, to see if it properly installs in a
variety of environments.

Testing Deliverables:-

The ultimate deliverable from any testing effort is software that has fewer bugs than before
the testing. In order to understand the value of specific testing activities for use in planning
necessary revisions to the software, additional details should be provided in the form of :-

Test Logs,
Incident Reports,
Summary Report.

According to IEEE-829, the Summary Report should include:-

Summary,
Variances,
Comprehensiveness assessment,
Summary of results,
Evaluation,
Summary of activities.

The Summary Report should include what software was tested including version number and
a description of the software and hardware environment. It should reference the test plan, test
logs and test incident reports. It should describe in the variance section how certain tests
described in the test plan were not followed exactly and what additional tests were performed
beyond the test plan. The comprehensiveness assessment should include an evaluation of
what features or feature combinations of the software were not sufficiently tested and are
expected to contain a subjective assessment. The summary of results and evaluation should
include a description of all incidents and whether they were resolved, and provide an overall
evaluation of the testing and an estimate of the general reliability of the software. The
summary of activities describes the effort level and calendar time needed for performing
different aspects of the testing.
Page | 163
c. Testing Techniques & Strategies:-

Testing is a set of activities that can be planned in advance and conducted systematically.

No program or system design is perfect, communication between the user and the designer is
not always complete or clear, and time is usually short. So, the result is error and more errors.
The number and nature of errors in a new design depend on several factors:-

Communication between the user and the designer.


The programmer’s ability to generate a code that reflects exactly the system
specification.
The time frame for design.

Theoretically, a newly designed system should have all the pieces in working order, but in
reality, each piece works independently. Now is the time to put all the pieces into one system
and test it to determine whether it meets the user’s requirements. This is the last chance to
detect and correct errors, before the system is installed for user acceptance testing. The
purpose of system testing is to consider all the likely variations to which it will be subjected
and then push the system to its limit. It is a tedious but necessary step in system development.

Testing is vital to the success of the system. System testing makes a logical assumption that if
all parts of the system are correct, the goal will be successfully achieved. Inadequate testing
or contesting leads to errors that may not appear until months later.

Another reason for system testing is its utility as a user-oriented vehicle before
implementation. The best program is worthless if it does not meet user needs. Unfortunately,
the user’s demands are often compromised by efforts to facilitate program or design
efficiency in terms of processing time or memory utilization. Often the computer technician
and the user have communication barriers due to different backgrounds, interests, priorities,
and perhaps languages. The system tester (designer, programmer, or user) who has developed
some computer mastery can bridge this barrier.

Page | 164
Before going to test, it is very important to know some basic terms:-

Unit Testing- It is a testing changes made in an existing or a new program.

Sequential or Series Testing- It is checking the logic of one or more programs in


the candidate system, where the output of one program will affect the processing done
by another program.

System Testing- It is executing a program to check logic changes made in it and with
the intention of finding errors-making the program fail. Effective testing does not
guarantee reliability. Reliability is a design consideration.

Acceptance Testing- It is running the system with live data by the actual user.

The first test of a system is to see whether it produces the correct outputs. No other test
can be more crucial. Practically it is to be kept in mind that Testing has two broad aspects
or sites:-

Development Site:

Database Testing - Testing the database with some tests data, to check how the queries
are working?.

Interface Testing - Testing to ensure that the components of the interface are performing
properly.

Connection Testing - Testing to check the connection between GUI and database
(JDBC-ODBC Connectivity) is working properly.

Implementation Site:

After the implementation of the demo of the package, the users are asked to use the
package in the way , they want it without hesitation to test the robustness of the package.

Page | 165
Any discrepancies identified during this time are to be fixed before the original
implementation.

While testing, the more common errors in computation are….

Misunderstood or incorrect arithmetic precedence.


Mixed mode operations.
Incorrect initialization.
Precision inaccuracy.
Incorrect symbolic representation of an expression.
Test cases should uncover errors such as: -
o Comparison of different data types
o Incorrect logical operators or precedence
o Expectation of equality when precision error makes equality unlikely.
o Incorrect comparison of variables.
o Improper or nonexistent loop termination.
o Failure to exit when divergent iteration is encountered.
o Improperly modified loop variables.
Among the potential errors that should be tested when error handling is evaluated are-
o Error description is unintelligible.
o Error noted does not correspond to error encountered.
o Error condition causes system intervention prior to error handling.
o Exception-condition processing is incorrect.
o Error description does not provide enough information to assist in the location
of the cause of the error.

Page | 166
d. Test Case Design:-

Considering our project the following testing are took place:-

* Database Testing:
Considering the entire database i.e. all the tables created in the above project, some test or
sampledatas are input and tested the entire modules of the system behaves OK.
* User Data Input Testing:
Some invalid datas are input and tested if the system behaves properly to check or resist
against the input of invalid datas.
* Connection Testing:
Every connection between tables and JDBC-ODBC connections are tested here, also the
system behaves properly.
* Robustness:
After all testing, all the units and modules and integration testing is to be considered that
the system is flexible and can be recovered if crashed.

Test Reports:-
Some of the Test’s Result with input data:-

Page | 167
Input Data Effects Error Measures
Notification Taken
Login Screen: Successful Nil Nil
User name: Admin Login as an
Password : Admin administrator
Login Screen: Successful Nil Nil
User name :Teesta Login as general
Password : Teesta user
Login Screen: Login Invalid user Try to enter
User name: test impossible proper user’s
Password : test name and
password
Search: (SearchBill.jsp) Successfully Nil Nil
With relevant data find out the
product and
information
required
ForumFinal:(BillFinal.jsp) Adding to the Error message Input
With numeric value in name data in the table showing character
column –forum is not “numeric field field for
possible in place of correct and
name”. relevant
entry.
Table: Test reports with varied data

User Acceptance Testing:-

User acceptance of a system is a key factor for the success of any system. The system under
consideration was tested for user acceptance constantly, by keeping the users informed of the
progress and incorporating changes suggested, at the development time itself.

Test Case Report:-

Here we specify all the test cases that are used for system testing. The different conditions
that need to be tested along with the test case used for testing those conditions and the
expected outputs are given. The goal is to test the different functional requirement document.
Test cases have been selected for both valid and invalid inputs.

Page | 168
S.No Test case Condition Expected Output
1 Get Systems Input Domain name Print list of all system in
current domains & response
time
2 Get User Input Domain name System id, user id, port no,
domain name
3 Get Processes Select process Output the details of
details processes
4 Get modules details Select process & select Details of modules
thread opt
5 Get thread details Select process & select Details of threads
thread opt
6 Stop the processes System id, user id, Process close
password
7 Stop the system System id System close

Table: Test reports with varied output


Testing Analysis:-

S.No Testing object Expected value Simulated Explanation Remarks


value
1 User name & AEIND AEIND Equal of Pass
Password GUEST GUEST expected and
simulated values
2 User name & AEIND AEIND Unequal of Fail
Password GUEST GUEST expected and
simulated value
3 Change GUESS GUEST Equal of these Pass
password (Old password) two passwords
4 Start time and 11:03:05 11:03:05 Equal of these Pass
end time times
5 Start date and 20/02/2018 20/02/2018 Equal of these Pass
end date dates

Table: Test Analysis Reports with varied data

Page | 169
7. System Security Measures

a. Database Security/ Data Security:-

I have used SQL Server 2000 as my Backend Database System. I am discussing the overall
security features of the “OSCM” system as follows:-

Managing Security:-

A database must have a solid security system to control which activities can be performed
and which information can be viewed and modified. A solid security system ensures the
protection of data, regardless of how users gain access to the database.

This section describes the security tools built into Microsoft® SQL Server™ 2000 and
includes information about:-

Security Architecture.
Planning Security.
Creating Security Accounts.
Managing Security Accounts.
Managing Permissions.
Advanced Security Topics.
Auditing SQL Server Activity.

Security Architecture:

The architecture of a security system is based on users and groups of users. The following
illustration shows how users and local and global groups in Microsoft® Windows NT® 4.0
and Windows® 2000 can map to security accounts in Microsoft SQL Server™, and how SQL
Server can handle security accounts independently of the accounts in Windows NT 4.0 and
Windows 2000.

Page | 170
The CORPUSERS local group contains two users and a global group, Mktg, which also
contains two users. SQL Server allows Windows NT 4.0 and Windows 2000 local and global
groups to be used directly to organize its User accounts. Additionally, the Windows NT 4.0
users Fred and Jerry, not part of a Windows NT 4.0 group, can be added to an instance of
SQL Server either directly as a Windows NT 4.0 user (Fred for example), or as a SQL Server
user (Jerry).

SQL Server extends this model further with the use of roles. Roles are groups of users
organized for administrative purposes, like Windows NT 4.0 or Windows 2000 groups, but
are created in SQL Server when an equivalent Windows NT 4.0 or Windows 2000 group
does not exist. For example, the Managers role contains the Windows NT 4.0 Mktg global
group and the Windows NT 4.0 users Frank and Fred.

SQL Server also provides security at the application level through the use of individual
database application roles.

Creating Security Accounts: -

Each user must gain access to an instance of Microsoft® SQL Server™ through a login
account that establishes the user's ability to connect (authentication). This login then has to be
mapped to a SQL Server user account, which is used to control activities performed in the
database (permissions validation). Therefore, a single login is mapped to one user account
created in each database the login is accessing. If no user account exists in a database, the
user cannot access the database even though the user may be able to connect to an instance of
SQL Server.

Managing Permissions:-

When users connect to an instance of Microsoft® SQL Server™, the activities, they can
perform, are determined by the permissions granted to:-

Their security accounts.

Page | 171
The Microsoft Windows NT® 4.0 or Windows® 2000 groups or role hierarchies to which
their security accounts belong.
The user must have the appropriate permissions to perform any activity that involves
changing the database definition or accessing data.

Managing Permissions includes granting or revoking user rights to:-

Work with data and execute procedures (object permissions).


Create a database or an item in the database (statement permissions).
Utilize permissions granted to predefined roles (implied permissions).

Object Permissions:-

Working with data or executing a procedure requires a class of permissions known as Object
Permissions….

1. SELECT, INSERT, UPDATE, and DELETE statement permissions, which can be


applied to the entire table and view.
2. SELECT and UPDATE statement permissions, which can be selectively applied to
individual columns of a table or view.
3. SELECT permissions, which may be applied to user-defined functions.
4. INSERT and DELETE statement permissions, which affect the entire row, and
therefore can be applied only to the table and view and not to individual columns.
5. EXECUTE statement permissions, which affect stored procedures and functions.

Statement Permissions:-

Activities involved in creating a database or an item in a database, such as a table or stored


procedure, require a different class of permissions called Statement Permissions. For
example, if a user must be able to create a table within a database, then grant the CREATE
TABLE statement permission to the user. Statement permissions, such as CREATE
DATABASE, are applied to the statement itself, rather than to a specific object defined in the
database.

Page | 172
Statement Permissions are:-

1. BACKUP DATABASE.
2. BACKUP LOG.
3. CREATE DATABASE.
4. CREATE DEFAULT.
5. CREATE FUNCTION.
6. CREATE PROCEDURE.
7. CREATE RULE.
8. CREATE TABLE.
9. CREATE VIEW.

Implied Permissions:-

Implied Permissions control those activities that can be performed only by members of
predefined system roles or owners of database objects. For example, a member of the
sysadmin fixed server role inherits automatically full permission to do or see anything in a
SQL Server installation.

Database object owners also have Implied permissions that allow them to perform all
activities with the object they own. For example, a user who owns a table can view, add, or
delete data, alter the table definition, or control permissions that allow other users to work
with the table.

BACKUP:

Backs Up an entire database, transaction log, or one or more files or filegroups. For more
information about database backup and restore operations, see Backing Up and Restoring
Databases.

Page | 173
b. Creation of User Profiles and Access Rights: -

Userprofile, or simply profile when used in-context is a collection of personal data


associated to a specific user. A profile refers therefore to the explicit digital representation of
a person's identity. A user profile can also be considered as the computer representation of a
user model.

A profile can be used to store the description of the characteristics of person. This
information can be exploited by systems taking into account the persons' characteristics and
preferences.

Profiling is the process that refers to construction of a profile via the extraction from a
set of data.

Page | 174
7. Cost Estimation of the Project with Cost Estimation Model

Development Point of View:-

The COCOMO Model

In his classic book on “software engineering economics,” Barry Boehm [BOE81]


introduces a hierarchy of software estimation models bearing the name COCOMO, for
COnstructive COst MOdel. Boehm’s hierarchy of models takes the following form:

Model 1. The basic COCOMO model computes software development effort (and cost) as a
function of program size expressed in estimated lines of code.

Model 2. The intermediate COCOMO model computes software development effort as a


function of program size and a set of “cost drivers” that include subjective assessment of
product, hardware, personnel, and project attributes.

Model 3. The advanced COCOMO model incorporates all characteristics of the


intermediate version with an assessment of the cost driver’s impact on each step (analysis,
design, etc.) of the software engineering process.

E= 2.4 X (KLOC)1.05
value of KLOC is 4

Therefore, 2.4 * (4)1.05


= 25 person-months

D = 2.5E0.35
= 2.5(25)0.35
= 7 months

Page | 175
N= E/D
25/7= 3people.

Assumption:-

Per head salary of one people is 2000.


Therefore, cost of salary is 2000*3 = 6000 is for one month.

So, for seven months, the cost of salary will be 6000*7 = 42,000 excluding the software
development Cost.

Educational Point of View:-

Cost Amount
Books 3000
Internet Surfing 1000
Tours & Traveling 2800
Software 4000
Hardware 25000
Printing 1000
Pen, Paper 500
Xerox 700
Misc 4000

The COCOMO models are defined for three classes of software projects:
1. Organic mode
2. Semi–detached mode
3. Embedded mode

Organic mode: Relatively small, simple software projects in which small team with good
application experience work to a set of less than rigid requirements.

Page | 176
Semi–detached mode: An intermediate software project in which teams with mixed
experience levels must meet a mix of rigid and less than rigid requirements.
Embedded mode: A software project that must be developed within a set of tight hardware,
software and operational constraints
For this proposed project Basic COCOMO is used for the cost estimation.
The basic COCOMO equation is:
E = x KLOCy
D = z Ea

Where E is the effort applied in person–month, D is the development time in chronological


months and KLOC is the estimated number of delivered lines of code for the project
expressed in thousands. The coefficients x and z and the exponents y and a are given in table
below:

Software Project x y z a

Organic 2.4 1.05 2.5 0.38


Semi-detached 3.0 1.12 2.5 0.35
Embedded 3.6 1.20 2.5 0.32

As per consideration the project comes under organic model as being small and simple
software project.

Name of the project: “Electricity Billing System” Date: March,


2015

Estimated Initial Development Cost

1. Project planning Rs 10000 /-


2. Feasibility study Rs 3000/-
3. Design Rs 4000/-
4. Implementation Rs 4000/-
5. Miscellaneous Rs 2000/-
Page | 177
Total (A) Rs 22,000/-

(B) Estimated Capital Cost


1. Computer room equipment and H/W Rs 20000/-
2. Others Rs 5000/-

Total (B) Rs 25,000/-

(C ) Estimated operating Cost


1. Service Provider charges per year Rs 4000/-
2. Computer maintenance Rs 3000/-

Total(C) Rs 7,000/-

(D) Estimated Benefits


1. Reduced salary and labors cost Rs 3000/-
2. Reduced inventory cost Rs 2000/-
3. Improved customer base Rs 5000/-
4. Any other intangible benefits Rs 3000/-
Total(D) Rs 13,000/-

(E) Annual Saving (D-C) Rs 6,000./-

Page | 178
8. Reports

Some of the reports that are going to be produced automatically are listed below…

Report is well thought-out here as a split module to be developed. This module allows
printing different reports as the name specifies. The reports generated are listed below;
the functionalities of these are carried accordingly:-

Consumer Management
Revenue Collection
Billing and Accounting
Meter Details
Ledger Process
Journal Details, etc.

Sample Layout of Reports: -

Layout: Consumer Details

Page | 179
Layout: Receipt Cancel

Page | 180
9. Future Scope & Further Enhancement

Further Enhancements:-

This project has more scope in future and it can be integrated further
This project is successfully implemented with all the features mentioned earlier.
This project is designed keeping in view the needs of the common user and satisfying
the user up to the maximum extent possible.
Deployment of our application will help the user to reduce the unnecessary wastage of
time in going and ordering the product manually.
Therefore we are successfully able to reach the goals and target of the project.

Conclusion:-

We have been given the problem of Billing of Electricity Consumers. Earlier the Billing
process was being done manually calculated by using the database small tolls and small
scale packages at their desktop. In our project “Elctricity Billing System” we have
automated the entire billing system is Online and centralized with all offices which they
have in the central power distribution company limited.

In Consumer Management, I have tracked all the information of the consumer and have
given the privileged modifications, changes and deletion. This information can be easily
made available to all the stores throughout the offices through intranet/ Internet.

As a result of this automation, manual workload is reduced and data retrieval becomes
easy. This application can be helpful for centralization of information regarding the
stores.

Page | 181
10. Bibliography

Ref - Software Engineering –Roger S. Pressman


Ref -Master In J2EE
Ref - Learn Java in 21 Days (SAMS)
Ref - J2EE Complete Reference(Q-Series)
Ref - Java Study Materials -CMC
Ref- Teach Yourself in SQL Server Database Development-
Techmedia.
Ref - RDBMS -Bipin C. Desai.
J2EE Study Materials of SMU

Page | 182
11. Appendix
Literature Survey:-

This project is developed in Java under Windows XP platform. In this modern world of
computers, every noun in our vocabulary represents a class of objects sharing some set of
characteristics and functional traits. Java leads itself naturally in embodying these areas into
its own application domain.

HTML:-

HTML, an initialism of HyperText Markup Language, is the predominant markup language


for web pages. It provides a means to describe the structure of text-based information in a
document by denoting certain text as links, headings, paragraphs, lists, and so on and to
supplement that text with interactive forms, embedded images, and other objects. HTML is
written in the form of tags, surrounded by angle brackets. HTML can also describe, to some
degree, the appearance and semantics of a document, and can include embedded scripting
language code (such as JavaScript) which can affect the behavior of Web browsers and other
HTML processors. Web pages are built with the help of this HTML which are called the Web
Documents

Overview of Java:-

An Object Oriented Programming Language (OOPL) developed at Sun Microsystems. A


Virtual Machine Run Time Environment that can be embedded in web browser (IE, NN).
Java is a powerful but lean object oriented programming language. It has generated a lot of
excitement because it makes it possible to program for Internet by creating applets, programs
that can be embedded in web page.

Java is also being used more and more for writing standalone applications as well. It is
becoming so popular that many people believe it will become standard language for both
general purpose and Internet programming. There are many buzzwords associated with Java,
but because of its spectacular growth in popularity, a new buzzword has appeared ubiquitous.
Indeed, all indications are that it will soon be everywhere.
Page | 183
Java builds on the strength of C++. It has taken the best features of C++ and discarded the
more problematic and error prone parts. To this lean core, it has added garbage collection
(automatic memory management), multithreading (the capacity for one program to do more
than one thing at a time), security capabilities. The result is simple, elegant, powerful and
easy to use.
Java is actually a platform consisting of three components
Java Programming Language.
Java Library of Classes and Interfaces.
Java Virtual Machine.

It also has a Standardized set of Packages (Class, Interfaces)


Creating Graphical User Interfaces
Controlling Multimedia Data
Communicating over Network

Features of Java:-

Java is portable, object oriented, makes to write correct code, has Garbage collection, is
Simple, it includes a library of classes and interfaces, is extensible, has Security, performs
well, is robust, scales well, is multithreaded, is important to the internet. It has evolved a
fantastic ability to generalize, classify and generate abstractions.
The essential aspects included in object-oriented approach
Inheritance
Polymorphism
Platform Independence
Robust
Security
Dynamic Binding

Inheritance:-
Inheritance is a sharing attribute and operation among classes based on hierarchical
relationship. A class can be defined broadly and refined into successively five sub
classes. Each sub class incorporates or inherits at the properties of its super class and
Page | 184
adds its own unique properties. The ability to factor out common properties of several
classes into a common super class and inherits the properties from the super class can
greatly reduce repetition within designs and program is one of the main advantages of
the object oriented analysis.

Polymorphism:-
Polymorphism means that the same operation may behave differently on different
class. An operation is an action or transformation that an object performs or is subject
to. A specific function in a class is called a METHOD. The language automatically
selects the correct method to implement an operation based on the name of the
operation and class the object operated on. New classes can be added without
changing executing code provided methods are provided for each applications
operation on the new classes.

Platform Independence:-
The Write-Once-Run-Anywhere ideal has not been achieved, but closer than with
other languages. The java program written on one system can be run in any system
with the help of the java virtual machine.

Robust:-
Exception handling built-in, strong type checking, local variables must be initialized.
Thus the system is less error prone and more accurate results are obtained.

Security:-
No memory pointers
Programs run inside the virtual machine sandbox.
Array index limit checking
Code pathologies reduced by
byte code verifier - checks classes after loading
Class loader - confines objects to unique namespaces. Prevents loading a
hacked "java.lang.SecurityManager" class, for example.
security manager - determines what resources a class can access such as
reading and writing to the local disk
Page | 185
Dynamic Binding:-
The linking of data and methods to where they are located is done at run-time.
New classes can be loaded while a program is running. Linking is done on the fly.
Even if libraries are recompiled, there is no need to recompile code that uses classes
in those libraries.

This differs from C++, which uses static binding. This can result in fragile classes for cases
where linked code is changed and memory pointers then point to the wrong addresses.

Why Java Is Important To The Internet:-

The Internet helped catapult java to the forefront of programming and java in turn has had
profound effect on the Internet. The reason is simple. Java expands the universe of objects
that can move about freely in cyberspace. In a network, there are two broad categories of
objects transmitted between the server and your personal computer. Passive information and
dynamic, active programs. For example when you read your email, you are viewing passive
data. Even when you down load a program, the program’s code is still only passive data until
execute it. However, there is a second type of object that can be transmitted to your
computer: a dynamic, self-executing program. Such a program would be an active agent on
the client computer, yet the server would initiate it.

Servlets:-

Java Servlet technology provides Web developers with a simple, consistent mechanism for
extending the functionality of a Web server and for accessing existing business systems. A
servlet can almost be thought of as an applet that runs on the server side--without a face. Java
servlets make many Web applications possible

Page | 186
Fig: Servlet Architecture

A servlet is a Java programming language class used to extend the capabilities of servers that
host applications accessed via a request-response programming model. Although servlets can
respond to any type of request, they are commonly used to extend the applications hosted by
Web servers. For such applications, Java Servlet technology defines HTTP-specific servlet
classes.

The javax.servlet and javax.servlet.http packages provide interfaces and classes for writing
servlets. All servlets must implement the Servlet interface, which defines life-cycle methods.

Servlet containers:-
A Servlet container is a specialized web server that supports Servlet execution. It
combines the basic functionality of a web server with certain Java/Servlet specific
optimizations and extensions – such as an integrated Java runtime environment, and
the ability to automatically translate specific URLs into Servlet requests. Individual
Servlets are registered with a Servlet container, providing the container with
information about what functionality they provide, and what URL or other resource
locator they will use to identify themselves. The Servlet container is then able to
initialize the Servlet as necessary and deliver requests to the Servlet as they arrive.
Many containers have the ability to dynamically add and remove Servlets from the
system, allowing new Servlets to quickly be deployed or removed without affecting
other Servlets running from the same container. Servlet containers are also referred to
as web containers or web engines.

Page | 187
Java Server Pages (JSP):-

A JSP page is a text page document tat describes how to process request to create a response.
JSP is a Java-based technology that simplifies the process of developing dynamic web sites.
With JSP, web designers and developers can Quickly incorporate dynamic elements into web
pages using embedded Java and simple mark-up tags. These tags provide the HTML designer
with a way to access data and business logic stored inside Java object.

JSP are txt files with extension ‘.jsp’ which takes place of traditional HTML pages. JSP files
contain traditional HTML along with the embedded Code that allows the developer to access
data from the Java code running on the server.

Jsp is now an integral part of developing web-based application using java. Because of the
ability to separate presentation from implementation logic by combing standard mark-up text
with scripting element and object-oriented components, jsp provides an excellent front end
technology for application that are the deployed over the web.

Application Model:-

Jsp pages can be used in combination with servlets, http, html, xml, applets, java beans
components and enterprise java beans components, to implement a word variety of
application architecture(s)or models. To facilitate web-based applications, the, both servlets
and jsp are required elements of j2ee specifications. And while both technologies can be used
to dynamically generate html to be send to an end-users web browser, only jsp enforces a
strong separation between presentation logic involved in displaying data and the business or
programming logic used to generate data in first place. When
Using jsp, Changes to presentation of the data do not require any changes to the underlined
server code that supplied data in the first place.

The java server pages technology offers the following advantages:-

1 Write once, run anywhere properties


2 High quality tool support.
Page | 188
3 Re-use of components and tag libraries.
4
Separation of dynamic and static content:
1 Support for scripting and actions
2 Web access layer for N-tier enterprise application architecture.

Executing jsp:-

Adding JSP support-

The most basic requirements for using JSP are a web server implies. Both hardware in
the form of a computer accessible over the Internet or a corporate based intranet and
s/w in the form of an HTP server running on that hardware. Some of most popular
http servers are: apache, Microsoft Internet information sever, web logic etc.

Jsp execution start with request for a jsp page the processing is done based on jsp tag
on the page In order to generate contents dynamically and the output of the processing
combined with the page static HTML, must be returned on the web browser.

Scripting Languages:-

The default scripting languages for JSP is, naturally, java. Since JSP Pages are compiled into
java servlets, this assumption makes the translation of the scripts into sevlets code every
straight forward. To be acceptable for use with JSP, scripting languages must meet three
requirements:

1. It must support the manipulation of Java objects.


2. It must be include the ability to catch Java exceptions and specify exception handlers.
3. It must be able to invoke methods on Java objects.

Page | 189
JSP Tags:-

JSP provides four major categories of markup tags. The first, directives, is a set of tags for
providing the JSP container with page specific instructions for how the documents containing
the directives are to be processed.
Secondly, scripting elements are used to embedded programming instructions written in the
designated scripting language for the pages witch are to be executed each time.

The page is processed for request. Thirdly, comments are used for adding documentation
strings to a JSP page. Fourthly, action support different behaviors.
<%=%> : USED FOR EXPRESSIONS
<%%> : USED FOR SCRIPLETS
<%!%> : USED FOR DECLARATION
<%@%> : USED FOR DIRECTIVES
<%@page%> : USED FOR PAGE DIRECTIVES.

Expressions:-

A JSP expression element is an scripting language expression that is evaluated and that
can be converted into a string which is succeed emitted into the out object.
Syntax: <%= expression%>

Scriplet:-

Scrip let can contain any code fragment that is valid for scripting language fragment.
Syntax: <%scrip let %>

Declarations:-

These are used to declare variables and methods in the scripting language.
A declaration is initialized when the JSP page is initialized and is make available to other
declarations and scrip lets.
Syntax: <%! Declarations%>
Page | 190
Directives:-

These are messages to JSP engine.


Syntax: <%@directives%>

Page directives:-

The page directive defines a number of page dependent attributes and communicates
these to the JSP engine.
Syntax: <%@page = directive-attribute-list%>

Tomcat:-

Apache Tomcat is an implementation of the Java Servlet and Java Server Pages technologies.
The Java Servlet and Java Server Pages specifications are developed under the Process.
Apache Tomcat is developed in an open and participatory environment and released under
the Apache Software License. Apache Tomcat is intended to be a collaboration of the best-of-
breed developers from around the world. We invite you to participate in this open
development project Apache Tomcat powers numerous large-scale, mission-critical web
applications across a diverse range of industries and organizations.

Java Database Connectivity:-

Java Database Connectivity (JDBC) is a back-end tool for connecting to a server to ODBC in
that respect, However JDBC can connect only Java clients and it uses ODBC for the
connectivity. JDBC is essentially a low-level application programming interface. It is called a
low-level API since any data manipulation, storage and retrieval has to be done by the
program itself. Some tools which provide a higher-level abstraction or expected shortly.
s
To use JDBC you need a basic knowledge of database and SQL. Apart from this you need
the jdk1.1 (Java Development Kit 1.1) or a version of Java since jdk1.1 and above come
bundled with JDBC software.

Page | 191
After that you need to have a back-end database engine for which a JDBC driver is available.
When JDBC drivers are not available JDBC-ODBC bridge drivers are used to access the
database through ODBC. Back-end is not need when JDBC driver is capable of storing and
retrieving the data itself, or if JDBC-ODBC Bridge and the ODBC driver can be store and
retrieve the information.

JDBC Driver Types:-


The JDBC drivers that we are aware of at this time fit into one of four categories:

JDBC-ODBC Bridge plus ODBC driver:-


The Java Soft bridge product provides JDBC access via ODBC drivers. Note that
ODBC binary code and in many cases database client code must be loaded on each
client machine that uses this driver. As a result, this kind of driver is most appropriate
on a corporate network where client installations are not a major problem, or for
application server code written in Java in three-tier architecture.

Native-API partly-Java driver:-


This kind of driver converts JDBC calls into calls on the client API for Oracle,
Sybase, Informix, DB2, or other DBMS. Note that, like the bridge driver, this style of
driver requires that some binary code be loaded on each client machine.

JDBC-Net all-Java driver:-


This driver translates JDBC calls into a DBMS-independent net protocol that is then
translated to a DBMS protocol by server. This net server middle ware is able to
connect its all-Java clients to many different databases. The specific protocol used
depends on the vendor. In general, this is the most flexible JDBC alternative. It is
likely that all vendors of this solution will provide products suitable for Internet use.
In order for these products to also support Internet access, they must handle the
additional requirements for security, access through firewalls, etc., that the Web
imposes. Several vendors are adding JDBC drivers to their existing database middle
ware products.

Page | 192
Native-protocol all-Java driver:-
This kind of driver converts JDBC calls into the network protocol used by DBMS
directly. This allows a direct call from the client machine to the DBMS server and is a
practical solution for Internet access.

Data Models:-

JDBC and accessing the database through applets, and JDBC API via an intermediate server
resulted in a new type of database model which is different from the client-servers through
which the request should go it is named as single tier, two tier and multi tier architecture.

Microsoft SQL-Server:-

Ms-SQL-Server is a database management system. Databases are an important part of


everyday use. We use computers at home, in the fields of medicine, education, law, business,
engineering and government. A database is a collection of data and facts that are related to a
particular object or purpose, such as tracking customer orders or maintaining a music
collection.

The heart of the database is the Table. One or more tables comprise a database. In addition to
tables, a database can contain other objects such as queries, reports, forms and other
components. These objects can be viewed and can manipulate the data contained in the
database in variety of ways.

Database Description
Objects
The primary units of a database that stores field names, field description,
Table field controls and field data. Tables display multiple records in a
row/column format similar to a spreadsheet layout.
Query A structured guideline used to search database tables and retrieve
records that meet specific conditions.

Table: Description of data base objects

Page | 193
CD with Project Details

The End

Page | 194

You might also like