A MINOR PROJECT SYNOPSIS
ON
Electricity Billing system
Submitted for partial fulfillment of award of
BACHELOR OF COMPUTER APPLICATIONS
Degree
Session 2017-20
DEPARTMENT OF BCA
BEACON INSTITUTE OF TECHNOLOGY
MEERUT
SUBMITTED TO - SUBMITTED BY –
Mrs Lucky Berwal Abhinav Chauhan
(Project Guide) (R1709681741)
Rajat Tomar
(R1709681782)
Ashish Kumar
(R1709681754)
Nitesh Taliyan
(R1709681776)
BCA VI SEM
1
TO WHOM IT MAY CONCERN
This is to certify that Abhinav Chauhan, Rajat Tomar, Ashish Kumar,Nitesh Talian from
Department of BCA, Beacon Institute of Technology, Meerut has carried out the project at
our organization from < > to < >.
Under training period, he/she has worked on the project entitled Electricity Billing System
under the guidance of ................................ During this project, he/she has been an active
member of the team. His/ Her specific role in the project was
The work carried by him/her is satisfactory and wish his /her all the best for future
assignments.
Authorized Signatory
Name………………….
Designation ……………….
Date………………
Seal
2
Table of Contents
1. Introduction
2. Feasibility Study
3. Data Tables
4. Data Flow Diagram
5. Entity Relationship Diagram
6. Screen Shots of Module
7. Future Scope
8. Conclusion
9. Bibliography
3
INTRODUCTION:
1.1 Introduction to Proposed System
Our project entitled “Electricity Billing System” aims is to generate electricity bill
with all the charges and penalty. Manual system that is employed is extremely
laborious and quite inadequate. It only makes the process more difficult and hard.
The aim of our project is to develop a system that is meant to partially computerize the
work performed in the Electricity Board like generating monthly electricity bill, record of
consuming unit of energy, store record of the customer and previous unpaid record.
We used Microsoft Java as front end and Ms SQL as back end for developing our
project. Visual Basic is primarily a visual design environment. We can create a VB application
by designing the form and that make up the user interface. Adding visual basic application code
to the form and the objects such as buttons and text boxes on them and adding any required
support code in additional modular.
MySQL is a powerful relational database application with which a desktop user can
efficiently create and manipulate database systems. Access targets the desktop category and
works best for individuals and workgroup
Managing megabytes of data for multi-user access to the same database, Access uses file-server
architecture, rather than client-server architecture.
Access is included in the professional and developer editions of Microsoft office.
The overall project report is divided into some parts. These parts are further divided into their
subparts. In the parts we have described the purpose, scope of the project, objective of the
project i.e. approach which used for developing this software. It includes the topics like the
4
problems with the existing system and the functionality of the organization. Introduction to
tools, design, coding, testing and debugging of the system are discussed in very detail. We have
also provided the names of the books from which we have taken guidance to complete the work.
Last section contains the matter about the overall work performed and the efforts taken to
complete the project.
5
HARDWARE SOFTWARE
REQUIREMENT
EXTERNAL INTERFACE REQUIREMENT
(1)USER INTERFACE
The external users are the student information system is college administration and the
teachers of the college. The administration and teachers can have an access to this
system. The administrative user has also an authority to access their account for
uploading of the students’ information.
Windows 7,0
(2) HARDWARE INTERFACE
The external hardware interface used for accessing the institute student information is the
personal computers of the administration.
550 GB Hard Disk
1 Ghz RAM
Dualcore PROCESSOR
KEYBOARD
14” COLOR MONITOR
PRINTER
MOUSE
6
Feasibility Study:
Feasibility study is the phase in which the analyst checks that the candidate system is
feasible for the organization or not. This entails identification, description & evaluation of the
system. Feasibility study is done to select the best system that meets the performance
requirement.
If the feasibility study is to serve as a decision document, it must answer key questions.
1. Is there a new and better way to do the job that will benefit the user?
2. What are the costs and savings of the alternatives?
3. What is recommended?
The most successful system projects are not necessarily the biggest or most visible in the
business but rather those truly meet user’s expectations.
Feasibility considerations
Three key considerations are involved in the feasibility study. They are as follows:-
Economic Feasibility:
Economic analysis is the most frequently used method for evaluating the effectiveness of the
candidate system.
We analyze the candidate system (computerized system) is feasible as than the manual system
because it saves the money, time and manpower. It also feasible according to cost benefits
analysis.
Technical Feasibility:
7
Technical feasibility centers around the technology used. It means the candidate system is
technically feasible i.e. it don’t have any technical fault and work properly in the given
environment. Our system is technically feasible; it is providing us required output.
Behavioral Feasibility:
Behavioral feasibility is the analysis of behavior of the candidate system. In this we
analyze that the candidate system is working properly or not. If working than it communicating
proper with the environment or not. All this matters are analyzed and a good candidate system is
prepared. Due to the change of system what is the change in behavior of the users, this factors
are also analyzed.
8
DATA TABLE
Table Name: BILL
Field Name Data Type Size Constraint
Bill_no Number Auto Primary key
BillDate Date
Amount Number Auto
City Text 30
In this table there are no multivalued attributes. So this is in First Normal Form.
2. Table Name : Customer
Field Name Data Type Size Constraint
Customer First Name Text 10
Customer Middle Text 10
Name
Customer Last Name Text 10
Cust_id Number Auto Primary Key
Service_Centre Text 20
Street Text 20
City Text 20
City Code Number Auto
State Text 20
In this table there are no multivalued attributes. So this is in First Normal Form.
Service Centre Table:
9
Field Name Data Type Size Constraint
Cust_id Number Auto Foreign Key
Service_Centre Text 20
Street Text 20
City Text 20
City Code Number Auto
State Text 10
In this table there are no multivalued attributes. So this is in First Normal Form.
Bill Charge Table:
Field Name Data Type Size Constraint
Bill_no Number Auto Primary Key
Fix _charge Number Auto
E_duty Number Auto
Total Charge Number Auto
Total Unit Number Auto
In this table there are no multivalued attributes. So this is in First Normal Form.
Commercial Bill Table:
Field Name Data Type Size Constraint
Customer Name Text 20
Shop_no Text 20 Primary Key
Street Text 20
10
Bill_no Integer Auto Foreign Key
Bill Amount Integer Auto
Bill Date Date
11
ER DIAGRAM
12
SCREEN SHOTS
LOGIN FORM
13
DOMESTIC BILL CALCULATION FORM
14
COMERCIAL BILL CALCULATION FORM
15
DOMESTIC CUSTOMER RECORD FORM
16
COMMERCIAL BILL RECORD FORM
17
CODING
package medicalstore.resources;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
public class billinfo extends javax.swing.JInternalFrame {
Connection con = null;
PreparedStatement pst = null;
ResultSet rs = null;
public billinfo() {
initComponents();
con= re.getCon();
@SuppressWarnings("unchecked")
18
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-
BEGIN:initComponents
private void initComponents() {
jLabelRollNo = new javax.swing.JLabel();
jLabelStName = new javax.swing.JLabel();
jTextFieldRollNo = new javax.swing.JTextField();
jTextFieldStName = new javax.swing.JTextField();
jButtonSave = new javax.swing.JButton();
jButtonPrint = new javax.swing.JButton();
setClosable(true);
setIconifiable(true);
setMaximizable(true);
setResizable(true);
jLabelRollNo.setText("Roll No");
jLabelStName.setText("Student Name");
62
jButtonSave.setText("Save");
jButtonSave.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButtonSaveActionPerformed(evt);
19
}
});
jButtonPrint.setText("Print");
jButtonPrint.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButtonPrintActionPerformed(evt);
});
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADIN
G)
.addComponent(jLabelRollNo)
.addComponent(jLabelStName))
.addGap(34, 34, 34)
20
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADIN
G)
.addGroup(layout.createSequentialGroup()
.addComponent(jButtonSave)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jButtonPrint))
.addComponent(jTextFieldRollNo, javax.swing.GroupLayout.PREFERRED_SIZE, 59,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jTextFieldStName, javax.swing.GroupLayout.PREFERRED_SIZE,
156, javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap(126, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(20, 20, 20)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELI
NE)
.addComponent(jLabelRollNo)
21
.addComponent(jTextFieldRollNo, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELI
NE)
.addComponent(jLabelStName)
.addComponent(jTextFieldStName, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(36, 36, 36)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELI
NE)
.addComponent(jButtonSave)
.addComponent(jButtonPrint))
.addContainerGap(141, Short.MAX_VALUE))
);
pack();
}// </editor-fold>//GEN-END:initComponents
22
private void jButtonSaveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-
FIRST:event_jButtonSaveActionPerformed
private void jButtonPrintActionPerformed(java.awt.event.ActionEvent evt) {//GEN-
FIRST:event_jButtonPrintActionPerformed
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton jButtonPrint;
private javax.swing.JButton jButtonSave;
private javax.swing.JLabel jLabelRollNo;
private javax.swing.JLabel jLabelStName;
private javax.swing.JTextField jTextFieldRollNo;
private javax.swing.JTextField jTextFieldStName;
64
// End of variables declaration//GEN-END:variables
package medicalstore.resources;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.sql.Connection;
23
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.logging.Logger;
public class customersdetail extends javax.swing.JInternalFrame {
Connection con = null;
PreparedStatement pst = null;
ResultSet rs = null;
public customersdetail() {
initComponents();
con= re.getCon();
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-
BEGIN:initComponents
private void initComponents() {
jLabelRollNo = new javax.swing.JLabel();
jLabelStName = new javax.swing.JLabel();
jTextFieldRollNo = new javax.swing.JTextField();
jTextFieldStName = new javax.swing.JTextField();
jButtonSave = new javax.swing.JButton();
24
jButtonPrint = new javax.swing.JButton();
setClosable(true);
setIconifiable(true);
setMaximizable(true);
setResizable(true);
jLabelRollNo.setText("Roll No");
jLabelStName.setText("Student Name");
jButtonSave.setText("Save");
jButtonSave.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButtonSaveActionPerformed(evt);
});
jButtonPrint.setText("Print");
jButtonPrint.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButtonPrintActionPerformed(evt);
});
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
25
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADIN
G)
.addComponent(jLabelRollNo)
.addComponent(jLabelStName))
.addGap(34, 34, 34)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADIN
G)
.addGroup(layout.createSequentialGroup()
.addComponent(jButtonSave)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jButtonPrint))
.addComponent(jTextFieldRollNo, javax.swing.GroupLayout.PREFERRED_SIZE, 59,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jTextFieldStName, javax.swing.GroupLayout.PREFERRED_SIZE,
156, javax.swing.GroupLayout.PREFERRED_SIZE))
26
.addContainerGap(126, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(20, 20, 20)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELI
NE)
.addComponent(jLabelRollNo)
.addComponent(jTextFieldRollNo, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELI
NE)
.addComponent(jLabelStName)
.addComponent(jTextFieldStName, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(36, 36, 36)
27
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELI
NE)
.addComponent(jButtonSave)
.addComponent(jButtonPrint))
.addContainerGap(141, Short.MAX_VALUE))
);
pack();
}// </editor-fold>//GEN-END:initComponents
private void jButtonSaveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-
FIRST:event_jButtonSaveActionPerformed
private void jButtonPrintActionPerformed(java.awt.event.ActionEvent evt) {//GEN-
FIRST:event_jButtonPrintActionPerformed
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton jButtonPrint;
private javax.swing.JButton jButtonSave;
private javax.swing.JLabel jLabelRollNo;
private javax.swing.JLabel jLabelStName;
private javax.swing.JTextField jTextFieldRollNo;
28
private javax.swing.JTextField jTextFieldStName;
68
// End of variables declaration//GEN-END:variables
package medicalstore.resources;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
public class ITEMSDETAIL extends javax.swing.JInternalFrame {
Connection con = null;
PreparedStatement pst = null;
ResultSet rs = null;
public ITEMSDETAIL() {
initComponents();
con= re.getCon();
29
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-
BEGIN:initComponents
private void initComponents() {
jLabelRollNo = new javax.swing.JLabel();
jLabelStName = new javax.swing.JLabel();
jTextFieldRollNo = new javax.swing.JTextField();
jTextFieldStName = new javax.swing.JTextField();
jButtonSave = new javax.swing.JButton();
jButtonPrint = new javax.swing.JButton();
setClosable(true);
setIconifiable(true);
setMaximizable(true);
setResizable(true);
jLabelRollNo.setText("Roll No");
jLabelStName.setText("Student Name");
jButtonSave.setText("Save");
jButtonSave.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
30
jButtonSaveActionPerformed(evt);
});
jButtonPrint.setText("Print");
jButtonPrint.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButtonPrintActionPerformed(evt);
});
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADIN
G)
.addComponent(jLabelRollNo)
.addComponent(jLabelStName))
.addGap(34, 34, 34)
31
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADIN
G)
.addGroup(layout.createSequentialGroup()
.addComponent(jButtonSave)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jButtonPrint))
.addComponent(jTextFieldRollNo, javax.swing.GroupLayout.PREFERRED_SIZE, 59,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jTextFieldStName, javax.swing.GroupLayout.PREFERRED_SIZE,
156, javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap(126, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(20, 20, 20)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELI
NE)
.addComponent(jLabelRollNo)
32
.addComponent(jTextFieldRollNo, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELI
NE)
.addComponent(jLabelStName)
.addComponent(jTextFieldStName, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(36, 36, 36)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELI
NE)
.addComponent(jButtonSave)
.addComponent(jButtonPrint))
.addContainerGap(141, Short.MAX_VALUE))
);
pack();
}// </editor-fold>//GEN-END:initComponents
33
private void jButtonSaveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-
FIRST:event_jButtonSaveActionPerformed
private void jButtonPrintActionPerformed(java.awt.event.ActionEvent evt) {//GEN-
FIRST:event_jButtonPrintActionPerformed
}//GEN-LAST:event_jButtonPrintActionPerformed
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton jButtonPrint;
private javax.swing.JButton jButtonSave;
private javax.swing.JLabel jLabelRollNo;
private javax.swing.JLabel jLabelStName;
private javax.swing.JTextField jTextFieldRollNo;
private javax.swing.JTextField jTextFieldStName;
// End of variables declaration//GEN-END:variables
34
package medicalstore.resources;
import java.awt.ScrollPane;
import java.sql.*;
import java.text.DateFormat;
import java.util.Vector;
import java.util.Date;
import java.util.logging.Level;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.table.DefaultTableModel;
import java.util.logging.Logger;
public class BILLING extends javax.swing.JInternalFrame {
private static class JasperDesign {
public JasperDesign() {
private Vector<Vector<String>> data;
private Vector<Vector<String>> data1;
private Vector<String> header;
int tot=0;
35
Connection con=null;
PreparedStatement pst=null;
Statement st=null,stDelete=null;
ResultSet rs = null;
ScrollPane s;
int i_no=0;
private Vector<String> header1=null;
public BILLING() {
try
con= re.getCon();
74
st=con.createStatement();
DCEngin dce = new DCEngin("select * from Item_Master");
data = dce.getData();
header = new Vector<String>();
header.add("item no");
header.add("item Name");
header.add("make");
header.add("rate");
36
header.add("ratio");
header.add("unit");
DummyData dce1 = new DummyData("select * from dummy");
data1 = dce1.getData();
header1 = new Vector<String>();
header1.add("item no");
header1.add("item Name");
header1.add("make");
header1.add("srno");
header1.add("unitprice");
header1.add("quantity");
header1.add("total");
initComponents();
rs=st.executeQuery("select max(Bill_no) from Billinfo");
rs.next();
if(rs!=null)
i_no=rs.getInt(1);
i_no++;
37
else
i_no=1;
bn.setText(""+i_no);
bn.setEditable(false);
pno.setEditable(false);
make.setEditable(false);
unitp.setEditable(false);
ratio.setEditable(false);
unit.setEditable(false);
pname.setEditable(false);
75
subtotal.setEditable(false);
Date d = new Date();
String curDate = "";
DateFormat df=null;
df=DateFormat.getDateInstance(DateFormat.SHORT);
String s1= df.format(d);
datetxt.setText(""+s1);
try {
st=con.createStatement();
38
rs=st.executeQuery("select * from Customer_Master");
while(rs.next())
billto.addItem(""+rs.getString(2));
} catch (Exception ex) {
Logger.getLogger(AddItem.class.getName()).log(Level.SEVERE, null, ex);
}catch(Exception e)
39
FUTURE ANALYSIS:
We have left all the options open so that if there is any other future
requirement in the system by the user for the enhancement of the system then it is
possible to implement them.
In the last we would like to thanks all the persons involved in the development of
the system directly or indirectly. We are also thankful to the Shastri Nagar South
Division Electricity Department for so much taken by them in helping to develop
the system.
We hope that the project will serve its purpose for which it is develop there by
underlining success of process.
40
CONCLUSION
We have tried to develop a system that can be a great help for the owner of the
referred electricity department to receiving bill from the customer. Despite all our
efforts there are some bugs in the system, which are still to be removed. This is
possible by the testing being done in the system.
We have left all the options open so that if there is any other future requirement in
the system by the user for the enhancement of the system then it is possible to
implement them.
In the last we would like to thanks all the persons involved in the development of
the system directly or indirectly. We are also thankful to the Meerut Electricity
Department for so much taken by them in helping to develop the system.
We hope that the project will serve its purpose for which it is develop there by
underlining success of process.
41
Bibliography
Olsen, L. A., Technical writing and professional communication. 2nded. London:
McGraw- Hill companies. p.310-329
Schwalb, K., 2006. Information technology project management
thed. Delhi:
Baba Barkha Nath Printers. p.38-69.
Gerson, S. J. & Gerson, S. M., 2000. Technical Writing process & product.
3rd edition.
Sommerville, I., 2001 Software engineering.
6thed. Delhi: Pearson Education. 2001.
42