IP Project PDF
IP Project PDF
Morwadi
Class : 12-C
Certificate
This is to certify that,
Name of the Student ________________________________
Class _______________
Has successfully completed the project
Name of the Project _________________________________
Under the guidance and observation of
Name of the Teacher ________________________________
During the academic session 2022-2023, in the partial fulfilment of
Practical Examination conducted by AISSCE-2024.
School Seal
Date __________________
IP 4
Introduction
We are providing electricity billing system project in java with source
code. 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 JSP
(Java Server Pages) as front end and MySQL as back end for
developing our project. This project Electricity Billing System has been
developed on Java, JSP and MySQL. There are two types of users
available in the project, first one is Customer and second one is
Admin. Customer user have limited access right to access the system,
while the admin users have full control over the system. We can
develop easy java projects code for students who want to use java
software projects to learn. We have used JSP for frontend logic
implementation, Java for business logic, MySQL as a database, HTML
for structure designing, CSS for web page formatting, JavaScript for
form validation and animation. Here students can get java projects
with source code free download. Rest of the things I have listed below.
I have also attached the project video and screens of this project look
into it.
IP 5
• Write effective procedural code to solve small to medium sized
problems.
• Students will demonstrate a breadth of knowledge in computer
science, as exemplified in the areas of systems, theory and
software development.
• Students will demonstrate ability to conduct a research or
applied Computer Science project, requiring writing and
presentation skills which exemplify scholarly style in computer
science.
Proposed System
One has to use the data management software. Software has been an
ascent in atomization various organisations. Many software products
working are now in markets, which have helped in making the
organizations work easier and efficiently. Data management initially
had to maintain a lot of ledgers and a lot of paperwork has to be done
but now software production, this organization has made their work
faster and easier. Now only this software has to be loaded on the
computer and work can be done.
This prevents a lot of time and money. The work becomes fully
automated and any information regarding the organization can be
obtained by clicking the button. Moreover, now it’s an age of
computers of and automating such an organization gives the better
look.
IP 6
Customer Module
The main aim of this module is provide all the functionality related to
customer. It tracks all the information of the customer. We have
developed all type of CRUD (Create, Read, Update and Delete)
operations of the customer. This is a role based module where admin
can perform each and every operations on data but the customer will
be able to view only his/her data, so access level restrictions has also
been implemented on the project.
Bill Module
The main aim for developing this module is to manage the bill. This bill
module is the main module in this project Elctricity Billing
System which has been developed on Java, JSP and MySQL. Here we
are providing easy java projects with source code. So all bill will be
managed by admin. It tracks all the information of the bill. We have
developed all type of CRUD (Create, Read, Update and Delete)
operations of the bill. Customer will be able to see his bill details.
IP 7
Payment Module
The main aim of this module is provide all the functionality realted to
payment. It tracks all the information and details of the payment.
Admin will manage all payment and customer will be able to see their
connection. Students get free download java projects with source code
and database.
IP 8
Functionality Performed by admin user
• Login For Admin
• Forgot password for Admin
• Edit Profile For Admin
• Manage Customer
o Adding New Customer
o Edit the Exiting Customer
o View Profile of the Customer
o Listing of all Customer
• Manage Bills
o Add Bills of the Customer
o View Details of the Bills
o Listing of all Bills
o Filter Bills according to Customer
• Manage Payments
o Add Payments of Customer
o Listing of the Payments
o Filter Payments according to Customer
• Reports of the project
o Report of all Customer
o Report of all Bills
o Report of all Payments
IP 9
Software Requirements
• Windows OS
• Python
Testing
Software Testing is an empirical investigation conducted to provide
stakeholders with information about the quality of the product or
service under test, with respect to the context in which it is intended
to operate. Software Testing also provides an objective, independent
view of the software to allow the business to appreciate and
understand the risks at implementation of the software. Test
techniques include, but are not limited to, the process of executing a
program or application with the intent of finding software bugs.
IP 10
It can also be stated as the process of validating and verifying that a
software program/application/product meets the business and
technical requirements that guided its design and development, so
that it works as expected and can be implemented with the same
characteristics. Software Testing, depending on the testing method
employed, can be implemented at any time in the development
process, however the most test effort is employed after the
requirements have been defined and coding process has been
completed.
Testing Methods
Software testing methods are traditionally divided into black box
testing and white box testing. These two approaches are used to
describe the point of view that a test engineer takes when designing
test cases.
IP 11
Workflow
IP 12
Source Code
class Bill_App:
def __init__(self,root):
self.root = root
self.root.geometry("1300x700+0+0")
self.root.maxsize(width = 1280,height = 700)
self.root.minsize(width = 1280,height = 700)
self.root.title("Billing Software")
#====================Variables========================#
self.cus_name = StringVar()
self.c_phone = StringVar()
#For Generating Random Bill Numbers
x = random.randint(1000,9999)
self.c_bill_no = StringVar()
#Seting Value to variable
self.c_bill_no.set(str(x))
self.bath_soap = IntVar()
self.face_cream = IntVar()
self.face_wash = IntVar()
self.hair_spray = IntVar()
self.body_lotion = IntVar()
self.rice = IntVar()
self.daal = IntVar()
self.food_oil = IntVar()
self.wheat = IntVar()
self.sugar = IntVar()
self.maza = IntVar()
self.coke = IntVar()
self.frooti = IntVar()
self.nimko = IntVar()
self.biscuits = IntVar()
self.total_cosmetics = StringVar()
self.total_grocery = StringVar()
self.total_other = StringVar()
self.tax_cos = StringVar()
self.tax_groc = StringVar()
self.tax_other = StringVar()
#===================================
bg_color = "#074463"
fg_color = "white"
lbl_color = 'white'
#Title of App
title = Label(self.root,text = "Billing Software",bd = 12,relief =
GROOVE,fg = fg_color,bg = bg_color,font=("times new roman",30,"bold"),pady =
3).pack(fill = X)
#==========Customers Frame==========#
F1 = LabelFrame(text = "Customer Details",font = ("time new
roman",12,"bold"),fg = "gold",bg = bg_color,relief = GROOVE,bd = 10)
F1.place(x = 0,y = 80,relwidth = 1)
#===============Customer Name===========#
IP 13
cname_lbl = Label(F1,text="Customer Name",bg = bg_color,fg =
fg_color,font=("times new roman",15,"bold")).grid(row = 0,column = 0,padx =
10,pady = 5)
cname_en = Entry(F1,bd = 8,relief = GROOVE,textvariable =
self.cus_name)
cname_en.grid(row = 0,column = 1,ipady = 4,ipadx = 30,pady = 5)
#=================Customer Phone==============#
cphon_lbl = Label(F1,text = "Phone No",bg = bg_color,fg =
fg_color,font = ("times new roman",15,"bold")).grid(row = 0,column = 2,padx
= 20)
cphon_en = Entry(F1,bd = 8,relief = GROOVE,textvariable =
self.c_phone)
cphon_en.grid(row = 0,column = 3,ipady = 4,ipadx = 30,pady = 5)
#==================Cosmetics Frame=====================#
F2 = LabelFrame(self.root,text = 'Cosmetics',bd = 10,relief =
GROOVE,bg = bg_color,fg = "gold",font = ("times new roman",13,"bold"))
F2.place(x = 5,y = 180,width = 325,height = 380)
#===========Frame Content
bath_lbl = Label(F2,font = ("times new roman",15,"bold"),fg =
lbl_color,bg = bg_color,text = "Bath Soap")
bath_lbl.grid(row = 0,column = 0,padx = 10,pady = 20)
bath_en = Entry(F2,bd = 8,relief = GROOVE,textvariable =
self.bath_soap)
bath_en.grid(row = 0,column = 1,ipady = 5,ipadx = 5)
#=======Face Cream
face_lbl = Label(F2,font = ("times new roman",15,"bold"),fg =
lbl_color,bg = bg_color,text = "Face Cream")
face_lbl.grid(row = 1,column = 0,padx = 10,pady = 20)
face_en = Entry(F2,bd = 8,relief = GROOVE,textvariable =
self.face_cream)
face_en.grid(row = 1,column = 1,ipady = 5,ipadx = 5)
#========Face Wash
wash_lbl = Label(F2,font = ("times new roman",15,"bold"),fg =
lbl_color,bg = bg_color,text = "Face Wash")
wash_lbl.grid(row = 2,column = 0,padx = 10,pady = 20)
wash_en = Entry(F2,bd = 8,relief = GROOVE,textvariable =
self.face_wash)
wash_en.grid(row = 2,column = 1,ipady = 5,ipadx = 5)
#========Hair Spray
hair_lbl = Label(F2,font = ("times new roman",15,"bold"),fg =
lbl_color,bg = bg_color,text = "Hair Spray")
hair_lbl.grid(row = 3,column = 0,padx = 10,pady = 20)
hair_en = Entry(F2,bd = 8,relief = GROOVE,textvariable =
self.hair_spray)
IP 14
hair_en.grid(row = 3,column = 1,ipady = 5,ipadx = 5)
#============Body Lotion
lot_lbl = Label(F2,font = ("times new roman",15,"bold"),fg =
lbl_color,bg = bg_color,text = "Body Lotion")
lot_lbl.grid(row = 4,column = 0,padx = 10,pady = 20)
lot_en = Entry(F2,bd = 8,relief = GROOVE,textvariable =
self.body_lotion)
lot_en.grid(row = 4,column = 1,ipady = 5,ipadx = 5)
#==================Grocery Frame=====================#
F2 = LabelFrame(self.root,text = 'Grocery',bd = 10,relief =
GROOVE,bg = bg_color,fg = "gold",font = ("times new roman",13,"bold"))
F2.place(x = 330,y = 180,width = 325,height = 380)
#===========Frame Content
rice_lbl = Label(F2,font = ("times new roman",15,"bold"),fg =
lbl_color,bg = bg_color,text = "Rice")
rice_lbl.grid(row = 0,column = 0,padx = 10,pady = 20)
rice_en = Entry(F2,bd = 8,relief = GROOVE,textvariable = self.rice)
rice_en.grid(row = 0,column = 1,ipady = 5,ipadx = 5)
#=======
oil_lbl = Label(F2,font = ("times new roman",15,"bold"),fg =
lbl_color,bg = bg_color,text = "Food Oil")
oil_lbl.grid(row = 1,column = 0,padx = 10,pady = 20)
oil_en = Entry(F2,bd = 8,relief = GROOVE,textvariable =
self.food_oil)
oil_en.grid(row = 1,column = 1,ipady = 5,ipadx = 5)
#=======
daal_lbl = Label(F2,font = ("times new roman",15,"bold"),fg =
lbl_color,bg = bg_color,text = "Daal")
daal_lbl.grid(row = 2,column = 0,padx = 10,pady = 20)
daal_en = Entry(F2,bd = 8,relief = GROOVE,textvariable = self.daal)
daal_en.grid(row = 2,column = 1,ipady = 5,ipadx = 5)
#========
wheat_lbl = Label(F2,font = ("times new roman",15,"bold"),fg =
lbl_color,bg = bg_color,text = "Wheat")
wheat_lbl.grid(row = 3,column = 0,padx = 10,pady = 20)
wheat_en = Entry(F2,bd = 8,relief = GROOVE,textvariable =
self.wheat)
wheat_en.grid(row = 3,column = 1,ipady = 5,ipadx = 5)
#============
sugar_lbl = Label(F2,font = ("times new roman",15,"bold"),fg =
lbl_color,bg = bg_color,text = "Sugar")
sugar_lbl.grid(row = 4,column = 0,padx = 10,pady = 20)
sugar_en = Entry(F2,bd = 8,relief = GROOVE,textvariable =
self.sugar)
sugar_en.grid(row = 4,column = 1,ipady = 5,ipadx = 5)
#==================Other Stuff=====================#
#===========Frame Content
maza_lbl = Label(F2,font = ("times new roman",15,"bold"),fg =
lbl_color,bg = bg_color,text = "Maza")
maza_lbl.grid(row = 0,column = 0,padx = 10,pady = 20)
maza_en = Entry(F2,bd = 8,relief = GROOVE,textvariable = self.maza)
IP 15
maza_en.grid(row = 0,column = 1,ipady = 5,ipadx = 5)
#=======
cock_lbl = Label(F2,font = ("times new roman",15,"bold"),fg =
lbl_color,bg = bg_color,text = "Coke")
cock_lbl.grid(row = 1,column = 0,padx = 10,pady = 20)
cock_en = Entry(F2,bd = 8,relief = GROOVE,textvariable = self.coke)
cock_en.grid(row = 1,column = 1,ipady = 5,ipadx = 5)
#=======
frooti_lbl = Label(F2,font = ("times new roman",15,"bold"),fg =
lbl_color,bg = bg_color,text = "Frooti")
frooti_lbl.grid(row = 2,column = 0,padx = 10,pady = 20)
frooti_en = Entry(F2,bd = 8,relief = GROOVE,textvariable =
self.frooti)
frooti_en.grid(row = 2,column = 1,ipady = 5,ipadx = 5)
#========
cold_lbl = Label(F2,font = ("times new roman",15,"bold"),fg =
lbl_color,bg = bg_color,text = "Nimkos")
cold_lbl.grid(row = 3,column = 0,padx = 10,pady = 20)
cold_en = Entry(F2,bd = 8,relief = GROOVE,textvariable = self.nimko)
cold_en.grid(row = 3,column = 1,ipady = 5,ipadx = 5)
#============
bis_lbl = Label(F2,font = ("times new roman",15,"bold"),fg =
lbl_color,bg = bg_color,text = "Biscuits")
bis_lbl.grid(row = 4,column = 0,padx = 10,pady = 20)
bis_en = Entry(F2,bd = 8,relief = GROOVE,textvariable =
self.biscuits)
bis_en.grid(row = 4,column = 1,ipady = 5,ipadx = 5)
#===================Bill Aera================#
F3 = Label(self.root,bd = 10,relief = GROOVE)
F3.place(x = 960,y = 180,width = 325,height = 380)
#===========
bill_title = Label(F3,text = "Bill Area",font =
("Lucida",13,"bold"),bd= 7,relief = GROOVE)
bill_title.pack(fill = X)
#============
scroll_y = Scrollbar(F3,orient = VERTICAL)
self.txt = Text(F3,yscrollcommand = scroll_y.set)
scroll_y.pack(side = RIGHT,fill = Y)
scroll_y.config(command = self.txt.yview)
self.txt.pack(fill = BOTH,expand = 1)
#===========Buttons Frame=============#
F4 = LabelFrame(self.root,text = 'Bill Menu',bd = 10,relief =
GROOVE,bg = bg_color,fg = "gold",font = ("times new roman",13,"bold"))
F4.place(x = 0,y = 560,relwidth = 1,height = 145)
#===================
cosm_lbl = Label(F4,font = ("times new roman",15,"bold"),fg =
lbl_color,bg = bg_color,text = "Total Cosmetics")
cosm_lbl.grid(row = 0,column = 0,padx = 10,pady = 0)
cosm_en = Entry(F4,bd = 8,relief = GROOVE,textvariable =
self.total_cosmetics)
cosm_en.grid(row = 0,column = 1,ipady = 2,ipadx = 5)
#===================
gro_lbl = Label(F4,font = ("times new roman",15,"bold"),fg =
lbl_color,bg = bg_color,text = "Total Grocery")
gro_lbl.grid(row = 1,column = 0,padx = 10,pady = 5)
IP 16
gro_en = Entry(F4,bd = 8,relief = GROOVE,textvariable =
self.total_grocery)
gro_en.grid(row = 1,column = 1,ipady = 2,ipadx = 5)
#================
oth_lbl = Label(F4,font = ("times new roman",15,"bold"),fg =
lbl_color,bg = bg_color,text = "Others Total")
oth_lbl.grid(row = 2,column = 0,padx = 10,pady = 5)
oth_en = Entry(F4,bd = 8,relief = GROOVE,textvariable =
self.total_other)
oth_en.grid(row = 2,column = 1,ipady = 2,ipadx = 5)
#================
cosmt_lbl = Label(F4,font = ("times new roman",15,"bold"),fg =
lbl_color,bg = bg_color,text = "Cosmetics Tax")
cosmt_lbl.grid(row = 0,column = 2,padx = 30,pady = 0)
cosmt_en = Entry(F4,bd = 8,relief = GROOVE,textvariable =
self.tax_cos)
cosmt_en.grid(row = 0,column = 3,ipady = 2,ipadx = 5)
#=================
grot_lbl = Label(F4,font = ("times new roman",15,"bold"),fg =
lbl_color,bg = bg_color,text = "Grocery Tax")
grot_lbl.grid(row = 1,column = 2,padx = 30,pady = 5)
grot_en = Entry(F4,bd = 8,relief = GROOVE,textvariable =
self.tax_groc)
grot_en.grid(row = 1,column = 3,ipady = 2,ipadx = 5)
#==================
otht_lbl = Label(F4,font = ("times new roman",15,"bold"),fg =
lbl_color,bg = bg_color,text = "Others Tax")
otht_lbl.grid(row = 2,column = 2,padx = 10,pady = 5)
otht_en = Entry(F4,bd = 8,relief = GROOVE,textvariable =
self.tax_other)
otht_en.grid(row = 2,column = 3,ipady = 2,ipadx = 5)
#====================
total_btn = Button(F4,text = "Total",bg = bg_color,fg =
fg_color,font=("lucida",12,"bold"),bd = 7,relief = GROOVE,command =
self.total)
total_btn.grid(row = 1,column = 4,ipadx = 20,padx = 30)
#========================
genbill_btn = Button(F4,text = "Generate Bill",bg = bg_color,fg =
fg_color,font=("lucida",12,"bold"),bd = 7,relief = GROOVE,command =
self.bill_area)
genbill_btn.grid(row = 1,column = 5,ipadx = 20)
#====================
clear_btn = Button(F4,text = "Clear",bg = bg_color,fg =
fg_color,font=("lucida",12,"bold"),bd = 7,relief = GROOVE,command =
self.clear)
clear_btn.grid(row = 1,column = 6,ipadx = 20,padx = 30)
#======================
exit_btn = Button(F4,text = "Exit",bg = bg_color,fg =
fg_color,font=("lucida",12,"bold"),bd = 7,relief = GROOVE,command =
self.exit)
exit_btn.grid(row = 1,column = 7,ipadx = 20)
IP 17
(self.bath_soap.get() * 40)+
(self.face_cream.get() * 140)+
(self.face_wash.get() * 240)+
(self.hair_spray.get() * 340)+
(self.body_lotion.get() * 260)
)
self.total_cosmetics.set("Rs. "+str(self.total_cosmetics_prices))
self.tax_cos.set("Rs.
"+str(round(self.total_cosmetics_prices*0.05)))
#====================Total Grocery Prices
self.total_grocery_prices = (
(self.wheat.get()*100)+
(self.food_oil.get() * 180)+
(self.daal.get() * 80)+
(self.rice.get() *80)+
(self.sugar.get() * 170)
)
self.total_grocery.set("Rs. "+str(self.total_grocery_prices))
self.tax_groc.set("Rs. "+str(round(self.total_grocery_prices*0.05)))
#======================Total Other Prices
self.total_other_prices = (
(self.maza.get() * 20)+
(self.frooti.get() * 50)+
(self.coke.get() * 60)+
(self.nimko.get() * 20)+
(self.biscuits.get() * 20)
)
self.total_other.set("Rs. "+str(self.total_other_prices))
self.tax_other.set("Rs. "+str(round(self.total_other_prices*0.05)))
IP 18
{self.body_lotion.get()} {self.body_lotion.get() * 260}")
if self.wheat.get() != 0:
self.txt.insert(END,f"\nWheat {self.wheat.get()}
{self.wheat.get() * 100}")
if self.food_oil.get() != 0:
self.txt.insert(END,f"\nFood Oil {self.food_oil.get()}
{self.food_oil.get() * 180}")
if self.daal.get() != 0:
self.txt.insert(END,f"\nDaal {self.daal.get()}
{self.daal.get() * 80}")
if self.rice.get() != 0:
self.txt.insert(END,f"\nRice {self.rice.get()}
{self.rice.get() * 80}")
if self.sugar.get() != 0:
self.txt.insert(END,f"\nSugar {self.sugar.get()}
{self.sugar.get() * 170}")
if self.maza.get() != 0:
self.txt.insert(END,f"\nMaza {self.maza.get()}
{self.maza.get() * 20}")
if self.frooti.get() != 0:
self.txt.insert(END,f"\nFrooti {self.frooti.get()}
{self.frooti.get() * 50}")
if self.coke.get() != 0:
self.txt.insert(END,f"\nCoke {self.coke.get()}
{self.coke.get() * 60}")
if self.nimko.get() != 0:
self.txt.insert(END,f"\nNimko {self.nimko.get()}
{self.nimko.get() * 20}")
if self.biscuits.get() != 0:
self.txt.insert(END,f"\nBiscuits {self.biscuits.get()}
{self.biscuits.get() * 20}")
self.txt.insert(END,"\n===================================")
self.txt.insert(END,f"\n Total :
{self.total_cosmetics_prices+self.total_grocery_prices+self.total_other_pric
es+self.total_cosmetics_prices * 0.05+self.total_grocery_prices *
0.05+self.total_other_prices * 0.05}")
#Function to exit
def exit(self):
self.root.destroy()
root = Tk()
object = Bill_App(root)
root.mainloop()
IP 19
Output
IP 20
IP 21
Bibliography
• www.wikipedia.org
• www.w3schools.com
• www.w3resource.com
• www.python.org
IP 22
Thank You