Bill Payment System 02-1[1]
Bill Payment System 02-1[1]
Bill Payment System 02-1[1]
USING PYTHON
AN INTERNSHIP
PROJECT REPORT
Submitted by
AKASH S M
Register No. 952621104002
BACHELOR OF ENGINEERING
IN
AUGUST 2024
AKCNOWLEDGEMENT
Firstly, I express my heartiest thanks and gratefulness to almighty God for His divine
blessing makes us possible to complete the project work successfully.
I would also generously welcome each one of those individuals who have helped me straight
forwardly or in a roundabout way in making this project a win. In this unique situation, I
might want to thank the various staff individuals, both educating and non-instructing, which
have developed their convenient help and facilitated my undertaking.
Finally, I must acknowledge with due respect the constant support and patients of my parents.
AKASH S M
(952621104002)
TABLE OF CONTENTS
CERTIFICATE
AKCNOWLEDGEMENT
TABLE OF CONTENTS
ABSTRACT 5
CHAPTER 1 COMPANY PROFILE 6
CHAPTER 2 WEEKLY OVERVIEW OF INTERNSHIP ACTIVITIES 8
CHAPTER 3 INTRODUCTION 11
CHAPTER 4 TECHNOLOGY LEARNT 15
CHAPTER 5 SYSTEM SPECIFICATION 17
CHAPTER 6 PROJECT DESCRIPTION 18
CHAPTER 7 CODING 20
CHAPTER 8 RESULTS 24
CHAPTER 9 CONCLUSION 26
CHAPTER 10 27
BILL PAYMENT SYSTEM USING PYTHON
ABSTRACT
This project is aimed to automate the BILL PAYMENT SYSTEM. This project
is developed mainly to administrate student records. The purpose of the project
entitled as BILL PAYMENT SYSTEM is to computerize the Front Office
Management of student records in colleges, schools and coaching’s, to develop
software which is user friendly, simple, fast, and cost – effective. Traditionally,
it was done manually. The main function of the system is to register and store
student details, retrieve these details as and when required, and also to
manipulate these details meaningfully.
Our project BILL PAYMENT SYSTEM includes adding and removing the
students name, storing their details into the system i.e. computerized the
process. Our software has the facility to give a unique id for every student and
stores the details of every student. It includes a search facility also –search by
name. The data can be retrieved easily. The interface is very User-friendly. The
data are well protected for personal use and makes the data processing very fast.
5
CHAPTER 1
COMPANY PROFILE
VISION:
Be a global force in innovative solutions, quality excellence and redefine creative
thoughts. Striving to be a global force in innovative solutions, quality excellence,
and the redefinition of creative thoughts, we embark on a journey that transcends
boundaries. Our commitment extends beyond mere problem-solving; it
encompasses a vision to reshape industries and leave an indelible mark on the
6
global landscape. At the core of our mission is a relentless pursuit of innovation,
where we challenge the status quo and push the limits of what is conceivable
MISSION:
We endeavour to bring innovative solutions to the forefront, employing
a simple yet effective approach that underscores our commitment to providing
deserving quality. Our mission is rooted in a dedication to pushing the
boundaries of what's possible, embracing creativity, and maintaining a relentless
pursuit of excellence. By adhering to these principles, we aim to not only meet
but exceed the expectations of our users, clients, and partners. Through a
combination of forward-thinking strategies and a focus on quality, we strive to
make a meaningful impact in every endeavour we undertake.
OUR SERVICES
➢ WEBSITE DEVELOPMENT
➢ MOBILE APPLICATION DEVELOPMENT
➢ E-COMMERCE
➢ WORDPRESS DEVELOPMENT
➢ OUTSOURCING
➢ CLOUD SERVICES
➢ DIGITAL MARKETING
➢ SEO
➢ COLLEGE PROJECT
➢ INTERNSHIP
➢ SOFTWARE TRAINING
7
CHAPTER 2
WEEKLY OVERVIEW OF INTERNSHIP ACTIVITIES
8
DATE DAY NAME OF THETOPIC/MODULE
COMPLETED
24/07/2024 Wednesday Classes
3rd WEEK
9
DATE DAY NAME OF THETOPIC/MODULE
COMPLETED
07/08/2024 Wednesday Project Requirement Analysis
5th WEEK
10
CHAPTER 3
INTRODUCTION
The Bill Payment System is a software application designed to
facilitate the seamless and efficient management of various bills,
including utility bills, subscription services, and more. With the
growing need for automation in everyday tasks, a bill payment system
serves as a solution to streamline the payment process, eliminate
manual errors, and reduce time spent on bill tracking and processing.
In this project, we develop a Bill Payment System using Python, one of
the most versatile and widely-used programming languages. Python's
simplicity, readability, and vast array of libraries make it an ideal
choice for developing robust and user-friendly applications.
The Bill Payment System in Python allows users to add, view, update,
and delete bill details, making it easy to manage multiple types of bills.
It integrates the use of databases or simple file handling to store bill
information, providing users with an efficient method to track and
settle their dues. The system also automates the calculation of due
amounts, payment deadlines, and provides reminders or notifications
to ensure that bills are paid on time.
This project serves not only as a practical tool for users but also as a
valuable learning experience for developers, allowing them to apply
core programming concepts such as data handling, user interfaces,
error handling, and the integration of libraries. The Bill Payment
System also exemplifies how Python can be used to develop real-world
applications, enhancing productivity and organization in daily
financial tasks.
The following report details the design, development, and
implementation of the Bill Payment System, including the features
11
offered, the technologies used, and the challenges faced during its
creation. It also provides an overview of the system's functionality,
demonstrating its capabilities and its role in modern financial
management.
.
Key Concepts:
1. Objective of the Project:
o The primary goal is to automate the tedious task of managing
bills manually. By using the Bill Payment System, users can
easily add bill details (such as amount, due date, and bill type),
view a list of bills, make payments, and even receive reminders
about upcoming due dates.
o The system reduces human errors and saves time by
automating processes that would otherwise require significant
manual effort, such as calculations and reminders.
2. Core Features of the System:
o Bill Management: Users can add, update, and delete bills from
the system. Each bill is typically associated with information
like the biller’s name, due date, amount, payment status, etc.
o Payment Tracking: The system can keep track of paid and
pending bills, ensuring that no payment is overlooked.
o Due Date Reminders: The system can notify or remind users
about upcoming due dates, preventing late payments and
associated penalties.
o Database/File Management: Python can handle data storage
either through databases (like SQLite, MySQL) or simpler file
12
handling (like CSV files or JSON files). The system stores the
bill data in a structured format, making it easy to retrieve,
update, or delete entries.
3. Technologies Used:
o Python: The programming language used to create the entire
system. Python is popular due to its simplicity, wide range of
libraries, and ease of integration with different technologies.
o Data Storage: A local database or file handling system is
typically used to store bill information persistently. This allows
the system to store and retrieve data each time it is used.
o User Interface: While not always necessary in simple projects,
a user interface (either command-line or GUI-based using
libraries like Tkinter) can be created to enhance usability,
allowing users to interact with the system more intuitively.
4. Benefits:
o Efficiency: The system automates the process of bill
management and payment, saving users time and reducing the
likelihood of missing payments.
o Accuracy: By eliminating manual tracking, it ensures the
information entered is consistent, and calculations like the total
amount due are accurate.
o Organization: Users can keep track of multiple bills in one
place, making it easy to manage and view all bills in one
interface.
5. Learning Experience:
o For developers, this project is an excellent opportunity to learn
and apply core programming skills. Key topics like handling
13
user input, managing data, performing calculations, and
organizing data into a structured format are all integral to
creating this project.
o Additionally, developers may also explore concepts like error
handling, system design, and working with databases or files in
Python, all of which are essential skills for real-world software
development.
- Data Handling: Working with data structures like lists and dictionaries to
store and manage contact details.
- File Handling: Using Python's built-in file handling capabilities to read
from and write to external files, allowing for persistent storage of contact
information.
- Search Algorithms: Implementing efficient search and retrieval
techniques to locate and display contact information based on user queries.
- User Interaction: Designing an interface (CLI or GUI) that allows users
to interact with the system in an intuitive way.
Technologies Used
14
core functionality.
- SQLite or File Storage: A lightweight database (or text file) for storing
contact information.
- Tkinter (Optional): If a GUI is implemented, Tkinter can be used for
creating simple windows and forms for user interaction.
- CSV Format (Optional): A common format for storing and exchanging
contact data in a structured manner, which can be read and written by
Python using the built-in csv module.
15
➢ An objective for this position should emphasize the skills you already possess in
the area and your interest in learning more
➢ Internships are utilized in a number of different career fields, including
architecture, engineering, healthcare, economics, advertising and many more.
➢ Some internship is used to allow individuals to perform scientific research while
others are specifically designed to allow people to gain first-hand experience
working.
➢ Utilizing internships is a great way to build your resume and develop skills that
can be emphasized in your resume for future jobs. When you are applying for a
Training Internship, make sure to highlight any special skills or talents that can
make you stand apart from the rest of the applicants so that you have an improved
chance of landing the position.
The motivation behind this Python project stems from a desire to leverage the
power of Python to solve a real-world problem or meet a specific need. Python
is widely recognized for its simplicity, readability, and extensive libraries,
which make it an ideal language for both beginners and experienced developers.
Its versatility allows for applications in various fields, including but not limited
to data analysis, artificial intelligence, machine learning, web development, and
automation. By undertaking this project, the goal is to gain a deeper
understanding of how Python can be applied practically to address challenges in
these areas.
16
Furthermore, Python has a rich ecosystem of libraries and frameworks, which
can significantly speed up development time and open doors to innovative
solutions. By utilizing tools such as Pandas for data manipulation, TensorFlow
for machine learning, or Flask/Django for web development, this project aims to
showcase the practical advantages of Python’s modular approach to
development.
Ultimately, this project serves as both a stepping stone for personal growth in
the programming field and a practical demonstration of Python’s capabilities.
By focusing on problem-solving and real-world applications, the project aims to
provide valuable insights into how Python can be used to address complex
issues, improve productivity, and create impactful solutions in an increasingly
tech-driven world.
17
CHAPTER 4
TECHNOLOGIES LEARNT
PYTHON
TKINTER
➢ Running python -m tkinter from the command line should open a window
demonstrating a simple Tk interface, letting you know that tkinter is
properly installed on your system, and also showing what version of
Tcl/Tk is installed, so you can read the Tcl/Tk documentation specific to
that version.
18
➢ Tkinter supports a range of Tcl/Tk versions, built either with or without
thread support. The official Python binary release bundles Tcl/Tk 8.6
threaded. See the source code for the _tkinter module for more
information about supported versions.
➢ Tkinter is not a thin wrapper, but adds a fair amount of its own logic to
make the experience more pythonic. This documentation will concentrate
on these additions and changes, and refer to the official Tcl/Tk
documentation for details that are unchanged.
19
CHAPTER 5
SYSTEM REQUIREMENTS
Software Requirements:
Language : Python 3.x
Text Editor : Visual Code
Operating System : Windows 10.
Hardware Requirements:
Processor : Intel core i5
Memory : 8GB RAM
Hard Disk : 1TB
20
CHAPTER 6
PROJECT DESCRIPTION
21
o The system can categorize bills by type (e.g., utility,
subscription) or display all bills in a comprehensive list.
3. Update Bill Details:
o Users can modify bill details, such as updating the amount,
changing the due date, or marking a bill as paid.
o This feature ensures that the system remains up to date as bills
evolve over time.
4. Delete Bill:
o Users can delete bills that are no longer required (e.g., once
they have been paid or are no longer applicable).
o This feature helps keep the bill records clean and organized.
5. Track Payments:
o The system keeps track of which bills have been paid and
which ones are still pending.
o It provides an option to mark bills as paid once a payment has
been made, updating the payment status automatically.
6. Due Date Reminders:
o The system sends reminders or notifications about upcoming
bill due dates, helping users avoid late payments.
o Reminders can be configured to notify users a few days before
the due date.
7. Data Storage:
o Bill data can be stored in a local database (e.g., SQLite) or in
simple file formats (e.g., CSV or JSON). This ensures data is
persisted and can be accessed whenever the system is run.
o The data storage system makes it easy to retrieve, update, or
22
delete bill information.
8. User Interface:
o The system can be built with a basic command-line interface
(CLI) for simple user interaction or a graphical user interface
(GUI) using Python libraries like Tkinter for a more polished
and user-friendly experience.
9. Payment History:
o Users can track their payment history to view previously
settled bills and amounts paid.
o The history allows users to analyze past transactions for better
budgeting and financial planning.
.
23
CHAPTER 7
CODING
from tkinter import *
import random
import os
import sys
from tkinter import messagebox
class Bill_App:
def __init__(self,root):
self.root=root
self.root.geometry("1350x700+0+0")
self.root.configure(bg="#5B2C6F")
self.root.title("Billing Software")
title=Label(self.root,text="Billing
System",bd=12,relief=RIDGE,font=("Arial
Black",20),bg="#A569BD",fg="white").pack(fill=X)
#===================================variables==============
=========================================================
================
self.nutella=IntVar()
self.noodles=IntVar()
self.lays=IntVar()
self.oreo=IntVar()
self.muffin=IntVar()
self.silk=IntVar()
self.namkeen=IntVar()
self.atta=IntVar()
self.pasta=IntVar()
24
self.rice=IntVar()
self.oil=IntVar()
self.sugar=IntVar()
self.dal=IntVar()
self.tea=IntVar()
self.soap=IntVar()
self.shampoo=IntVar()
self.lotion=IntVar()
self.cream=IntVar()
self.foam=IntVar()
self.mask=IntVar()
self.sanitizer=IntVar()
self.total_sna=StringVar()
self.total_gro=StringVar()
self.total_hyg=StringVar()
self.a=StringVar()
self.b=StringVar()
self.c=StringVar()
self.c_name=StringVar()
self.bill_no=StringVar()
x=random.randint(1000,9999)
self.bill_no.set(str(x))
self.phone=StringVar()
#==========================================customer
details label
frame=================================================
details=LabelFrame(self.root,text="Customer Details",font=("Arial
Black",12),bg="#A569BD",fg="white",relief=GROOVE,bd=10)
25
details.place(x=0,y=80,relwidth=1)
cust_name=Label(details,text="Customer Name",font=("Arial
Black",14),bg="#A569BD",fg="white").grid(row=0,column=0,padx=15)
cust_entry=Entry(details,borderwidth=4,width=30,textvariable=self.c_name).gri
d(row=0,column=1,padx=8)
contact_name=Label(details,text="Contact No.",font=("Arial
Black",14),bg="#A569BD",fg="white").grid(row=0,column=2,padx=10)
contact_entry=Entry(details,borderwidth=4,width=30,textvariable=self.phone).g
rid(row=0,column=3,padx=8)
bill_name=Label(details,text="Bill.No.",font=("Arial
Black",14),bg="#A569BD",fg="white").grid(row=0,column=4,padx=10)
bill_entry=Entry(details,borderwidth=4,width=30,textvariable=self.bill_no).grid
(row=0,column=5,padx=8)
#=======================================snacks label
frame=====================================================
============
snacks=LabelFrame(self.root,text="Snacks",font=("Arial
Black",12),bg="#E5B4F3",fg="#6C3483",relief=GROOVE,bd=10)
snacks.place(x=5,y=180,height=380,width=325)
26
item1_entry=Entry(snacks,borderwidth=2,width=15,textvariable=self.nutella).g
rid(row=0,column=1,padx=10)
item2=Label(snacks,text="Noodles(1 Pack)",font=("Arial
Black",11),bg="#E5B4F3",fg="#6C3483").grid(row=1,column=0,pady=11)
item2_entry=Entry(snacks,borderwidth=2,width=15,textvariable=self.noodles).
grid(row=1,column=1,padx=10)
item3=Label(snacks,text="Lays(10Rs)",font=("Arial
Black",11),bg="#E5B4F3",fg="#6C3483").grid(row=2,column=0,pady=11)
item3_entry=Entry(snacks,borderwidth=2,width=15,textvariable=self.lays).grid
(row=2,column=1,padx=10)
item4=Label(snacks,text="Oreo(20Rs)",font=("Arial
Black",11),bg="#E5B4F3",fg="#6C3483").grid(row=3,column=0,pady=11)
item4_entry=Entry(snacks,borderwidth=2,width=15,textvariable=self.oreo).grid
(row=3,column=1,padx=10)
item5=Label(snacks,text="Chocolate Muffin",font=("Arial
Black",11),bg="#E5B4F3",fg="#6C3483").grid(row=4,column=0,pady=11)
item5_entry=Entry(snacks,borderwidth=2,width=15,textvariable=self.muffin).g
rid(row=4,column=1,padx=10)
item6_entry=Entry(snacks,borderwidth=2,width=15,textvariable=self.silk).grid(
row=5,column=1,padx=10)
27
item7=Label(snacks,text="Namkeen(15Rs)",font=("Arial
Black",11),bg="#E5B4F3",fg="#6C3483").grid(row=6,column=0,pady=11)
item7_entry=Entry(snacks,borderwidth=2,width=15,textvariable=self.namkeen)
.grid(row=6,column=1,padx=10)
#===================================GROCERY============
=========================================================
================
grocery=LabelFrame(self.root,text="Grocery",font=("Arial
Black",12),relief=GROOVE,bd=10,bg="#E5B4F3",fg="#6C3483")
grocery.place(x=340,y=180,height=380,width=325)
item8=Label(grocery,text="Aashirvaad Atta(1kg)",font=("Arial
Black",11),bg="#E5B4F3",fg="#6C3483").grid(row=0,column=0,pady=11)
item8_entry=Entry(grocery,borderwidth=2,width=15,textvariable=self.atta).grid
(row=0,column=1,padx=10)
item9=Label(grocery,text="Pasta(1kg)",font=("Arial
Black",11),bg="#E5B4F3",fg="#6C3483").grid(row=1,column=0,pady=11)
item9_entry=Entry(grocery,borderwidth=2,width=15,textvariable=self.pasta).gr
id(row=1,column=1,padx=10)
item10=Label(grocery,text="Basmathi Rice(1kg)",font=("Arial
Black",11),bg="#E5B4F3",fg="#6C3483").grid(row=2,column=0,pady=11)
item10_entry=Entry(grocery,borderwidth=2,width=15,textvariable=self.rice).gri
d(row=2,column=1,padx=10)
28
item11=Label(grocery,text="Sunflower Oil(1ltr)",font=("Arial
Black",11),bg="#E5B4F3",fg="#6C3483").grid(row=3,column=0,pady=11)
item11_entry=Entry(grocery,borderwidth=2,width=15,textvariable=self.oil).gri
d(row=3,column=1,padx=10)
item12=Label(grocery,text="Refined Sugar(1kg)",font=("Arial
Black",11),bg="#E5B4F3",fg="#6C3483").grid(row=4,column=0,pady=11)
item12_entry=Entry(grocery,borderwidth=2,width=15,textvariable=self.sugar).
grid(row=4,column=1,padx=10)
item13=Label(grocery,text="Daal(1kg)",font=("Arial
Black",11),bg="#E5B4F3",fg="#6C3483").grid(row=5,column=0,pady=11)
item13_entry=Entry(grocery,borderwidth=2,width=15,textvariable=self.dal).gri
d(row=5,column=1,padx=10)
item14=Label(grocery,text="Tea Powder(1kg)",font=("Arial
Black",11),bg="#E5B4F3",fg="#6C3483").grid(row=6,column=0,pady=11)
item14_entry=Entry(grocery,borderwidth=2,width=15,textvariable=self.tea).gri
d(row=6,column=1,padx=10)
#========================================beauty and
hygine====================================================
===========================
hygine=LabelFrame(self.root,text="Beauty & Hygine",font=("Arial
Black",12),relief=GROOVE,bd=10,bg="#E5B4F3",fg="#6C3483")
hygine.place(x=677,y=180,height=380,width=325)
item15=Label(hygine,text="Bathing Soap",font=("Arial
Black",11),bg="#E5B4F3",fg="#6C3483").grid(row=0,column=0,pady=11)
29
item15_entry=Entry(hygine,borderwidth=2,width=15,textvariable=self.soap).gri
d(row=0,column=1,padx=10)
item16=Label(hygine,text="Shampoo(1ltr)",font=("Arial
Black",11),bg="#E5B4F3",fg="#6C3483").grid(row=1,column=0,pady=11)
item16_entry=Entry(hygine,borderwidth=2,width=15,textvariable=self.shampo
o).grid(row=1,column=1,padx=10)
item17=Label(hygine,text="Body Lotion(1ltr)",font=("Arial
Black",11),bg="#E5B4F3",fg="#6C3483").grid(row=2,column=0,pady=11)
item17_entry=Entry(hygine,borderwidth=2,width=15,textvariable=self.lotion).g
rid(row=2,column=1,padx=10)
item18=Label(hygine,text="Face Cream",font=("Arial
Black",11),bg="#E5B4F3",fg="#6C3483").grid(row=3,column=0,pady=11)
item18_entry=Entry(hygine,borderwidth=2,width=15,textvariable=self.cream).g
rid(row=3,column=1,padx=10)
item19=Label(hygine,text="Shaving Foam",font=("Arial
Black",11),bg="#E5B4F3",fg="#6C3483").grid(row=4,column=0,pady=11)
item19_entry=Entry(hygine,borderwidth=2,width=15,textvariable=self.foam).gr
id(row=4,column=1,padx=10)
item20=Label(hygine,text="Face Mask(1piece)",font=("Arial
Black",11),bg="#E5B4F3",fg="#6C3483").grid(row=5,column=0,pady=11)
item20_entry=Entry(hygine,borderwidth=2,width=15,textvariable=self.mask).gr
id(row=5,column=1,padx=10)
30
item21=Label(hygine,text="Hand Sanitizer(50ml)",font=("Arial
Black",11),bg="#E5B4F3",fg="#6C3483").grid(row=6,column=0,pady=11)
item21_entry=Entry(hygine,borderwidth=2,width=15,textvariable=self.sanitizer
).grid(row=6,column=1,padx=10)
#=====================================================billa
rea=======================================================
=======================
billarea=Frame(self.root,bd=10,relief=GROOVE,bg="#E5B4F3")
billarea.place(x=1010,y=188,width=330,height=372)
bill_title=Label(billarea,text="Bill Area",font=("Arial
Black",17),bd=7,relief=GROOVE,bg="#E5B4F3",fg="#6C3483").pack(fill=X)
scrol_y=Scrollbar(billarea,orient=VERTICAL)
self.txtarea=Text(billarea,yscrollcommand=scrol_y.set)
scrol_y.pack(side=RIGHT,fill=Y)
scrol_y.config(command=self.txtarea.yview)
self.txtarea.pack(fill=BOTH,expand=1)
#=================================================billing
menu=====================================================
====================================
billing_menu=LabelFrame(self.root,text="Billing Summery",font=("Arial
Black",12),relief=GROOVE,bd=10,bg="#A569BD",fg="white")
billing_menu.place(x=0,y=560,relwidth=1,height=137)
total_snacks_entry=Entry(billing_menu,width=30,borderwidth=2,textvariable=s
elf.total_sna).grid(row=0,column=1,padx=10,pady=7)
31
total_grocery=Label(billing_menu,text="Total Grocery Price",font=("Arial
Black",11),bg="#A569BD",fg="white").grid(row=1,column=0)
total_grocery_entry=Entry(billing_menu,width=30,borderwidth=2,textvariable=
self.total_gro).grid(row=1,column=1,padx=10,pady=7)
total_hygine_entry=Entry(billing_menu,width=30,borderwidth=2,textvariable=s
elf.total_hyg).grid(row=2,column=1,padx=10,pady=7)
tax_snacks=Label(billing_menu,text="Snacks Tax",font=("Arial
Black",11),bg="#A569BD",fg="white").grid(row=0,column=2)
tax_snacks_entry=Entry(billing_menu,width=30,borderwidth=2,textvariable=se
lf.a).grid(row=0,column=3,padx=10,pady=7)
tax_grocery=Label(billing_menu,text="Grocery Tax",font=("Arial
Black",11),bg="#A569BD",fg="white").grid(row=1,column=2)
tax_grocery_entry=Entry(billing_menu,width=30,borderwidth=2,textvariable=s
elf.b).grid(row=1,column=3,padx=10,pady=7)
32
tax_hygine_entry=Entry(billing_menu,width=30,borderwidth=2,textvariable=se
lf.c).grid(row=2,column=3,padx=10,pady=7)
button_frame=Frame(billing_menu,bd=7,relief=GROOVE,bg="#6C3483")
button_frame.place(x=830,width=500,height=95)
button_total=Button(button_frame,text="Total Bill",font=("Arial
Black",15),pady=10,bg="#E5B4F3",fg="#6C3483",command=lambda:total(self
)).grid(row=0,column=0,padx=12)
button_clear=Button(button_frame,text="Clear Field",font=("Arial
Black",15),pady=10,bg="#E5B4F3",fg="#6C3483",command=lambda:clear(sel
f)).grid(row=0,column=1,padx=10,pady=6)
button_exit=Button(button_frame,text="Exit",font=("Arial
Black",15),pady=10,bg="#E5B4F3",fg="#6C3483",width=8,command=lambda
:exit1(self)).grid(row=0,column=2,padx=10,pady=6)
intro(self)
def total(self):
if (self.c_name.get=="" or self.phone.get()==""):
messagebox.showerror("Error", "Fill the complete Customer Details!!")
self.nu=self.nutella.get()*120
self.no=self.noodles.get()*40
self.la=self.lays.get()*10
self.ore=self.oreo.get()*20
self.mu=self.muffin.get()*30
self.si=self.silk.get()*60
self.na=self.namkeen.get()*15
total_snacks_price=(
33
self.nu+
self.no+
self.la+
self.ore+
self.mu+
self.si+
self.na)
self.total_sna.set(str(total_snacks_price)+" Rs")
self.a.set(str(round(total_snacks_price*0.05,3))+" Rs")
self.at=self.atta.get()*42
self.pa=self.pasta.get()*120
self.oi=self.oil.get()*113
self.ri=self.rice.get()*160
self.su=self.sugar.get()*55
self.te=self.tea.get()*480
self.da=self.dal.get()*76
total_grocery_price=(
self.at+
self.pa+
self.oi+
self.ri+
self.su+
self.te+
self.da)
self.total_gro.set(str(total_grocery_price)+" Rs")
34
self.b.set(str(round(total_grocery_price*0.01,3))+" Rs")
self.so=self.soap.get()*30
self.sh=self.shampoo.get()*180
self.cr=self.cream.get()*130
self.lo=self.lotion.get()*500
self.fo=self.foam.get()*85
self.ma=self.mask.get()*100
self.sa=self.sanitizer.get()*20
total_hygine_price=(
self.so+
self.sh+
self.cr+
self.lo+
self.fo+
self.ma+
self.sa)
self.total_hyg.set(str(total_hygine_price)+" Rs")
self.c.set(str(round(total_hygine_price*0.10,3))+" Rs")
self.total_all_bill=(total_snacks_price+
total_grocery_price+
total_hygine_price+
(round(total_grocery_price*0.01,3))+
(round(total_hygine_price*0.10,3))+
(round(total_snacks_price*0.05,3)))
35
self.total_all_bil=str(self.total_all_bill)+" Rs"
billarea(self)
def intro(self):
self.txtarea.delete(1.0,END)
self.txtarea.insert(END,"\tWELCOME TO SUPER MARKET\n\tPhone-
No.739275410")
self.txtarea.insert(END,f"\n\nBill no. : {self.bill_no.get()}")
self.txtarea.insert(END,f"\nCustomer Name : {self.c_name.get()}")
self.txtarea.insert(END,f"\nPhone No. : {self.phone.get()}")
self.txtarea.insert(END,"\n====================================\n"
)
self.txtarea.insert(END,"\nProduct\t\tQty\tPrice\n")
self.txtarea.insert(END,"\n====================================\n"
)
def billarea(self):
intro(self)
if self.nutella.get()!=0:
self.txtarea.insert(END,f"Nutella\t\t {self.nutella.get()}\t{self.nu}\n")
if self.noodles.get()!=0:
self.txtarea.insert(END,f"Noodles\t\t {self.noodles.get()}\t{self.no}\n")
if self.lays.get()!=0:
self.txtarea.insert(END,f"Lays\t\t {self.lays.get()}\t{self.la}\n")
if self.oreo.get()!=0:
self.txtarea.insert(END,f"Oreo\t\t {self.oreo.get()}\t{self.ore}\n")
if self.muffin.get()!=0:
self.txtarea.insert(END,f"Muffins\t\t {self.muffin.get()}\t{self.mu}\n")
if self.silk.get()!=0:
36
self.txtarea.insert(END,f"Silk\t\t {self.silk.get()}\t{self.si}\n")
if self.namkeen.get()!=0:
self.txtarea.insert(END,f"Namkeen\t\t {self.namkeen.get()}\t{self.na}\n")
if self.atta.get()!=0:
self.txtarea.insert(END,f"Atta\t\t {self.atta.get()}\t{self.at}\n")
if self.pasta.get()!=0:
self.txtarea.insert(END,f"Pasta\t\t {self.pasta.get()}\t{self.pa}\n")
if self.rice.get()!=0:
self.txtarea.insert(END,f"Rice\t\t {self.rice.get()}\t{self.ri}\n")
if self.oil.get()!=0:
self.txtarea.insert(END,f"Oil\t\t {self.oil.get()}\t{self.oi}\n")
if self.sugar.get()!=0:
self.txtarea.insert(END,f"Sugar\t\t {self.sugar.get()}\t{self.su}\n")
if self.dal.get()!=0:
self.txtarea.insert(END,f"Daal\t\t {self.dal.get()}\t{self.da}\n")
if self.tea.get()!=0:
self.txtarea.insert(END,f"Tea\t\t {self.tea.get()}\t{self.te}\n")
if self.soap.get()!=0:
self.txtarea.insert(END,f"Soap\t\t {self.soap.get()}\t{self.so}\n")
if self.shampoo.get()!=0:
self.txtarea.insert(END,f"Shampoo\t\t {self.shampoo.get()}\t{self.sh}\n")
if self.lotion.get()!=0:
self.txtarea.insert(END,f"Lotion\t\t {self.lotion.get()}\t{self.lo}\n")
if self.cream.get()!=0:
self.txtarea.insert(END,f"Cream\t\t {self.cream.get()}\t{self.cr}\n")
if self.foam.get()!=0:
self.txtarea.insert(END,f"Foam\t\t {self.foam.get()}\t{self.fo}\n")
37
if self.mask.get()!=0:
self.txtarea.insert(END,f"Mask\t\t {self.mask.get()}\t{self.ma}\n")
if self.sanitizer.get()!=0:
self.txtarea.insert(END,f"Sanitizer\t\t {self.sanitizer.get()}\t{self.sa}\n")
self.txtarea.insert(END,f"------------------------------------\n")
if self.a.get()!="0.0 Rs":
self.txtarea.insert(END,f"Total Snacks Tax : {self.a.get()}\n")
if self.b.get()!="0.0 Rs":
self.txtarea.insert(END,f"Total Grocery Tax : {self.b.get()}\n")
if self.c.get()!="0.0 Rs":
self.txtarea.insert(END,f"Total Beauty&Hygine Tax : {self.c.get()}\n")
self.txtarea.insert(END,f"Total Bill Amount : {self.total_all_bil}\n")
self.txtarea.insert(END,f"------------------------------------\n")
def clear(self):
self.txtarea.delete(1.0,END)
self.nutella.set(0)
self.noodles.set(0)
self.lays.set(0)
self.oreo.set(0)
self.muffin.set(0)
self.silk.set(0)
self.namkeen.set(0)
self.atta.set(0)
self.pasta.set(0)
self.rice.set(0)
self.oil.set(0)
38
self.sugar.set(0)
self.dal.set(0)
self.tea.set(0)
self.soap.set(0)
self.shampoo.set(0)
self.lotion.set(0)
self.cream.set(0)
self.foam.set(0)
self.mask.set(0)
self.sanitizer.set(0)
self.total_sna.set(0)
self.total_gro.set(0)
self.total_hyg.set(0)
self.a.set(0)
self.b.set(0)
self.c.set(0)
self.c_name.set(0)
self.bill_no.set(0)
self.bill_no.set(0)
self.phone.set(0)
def exit1(self):
self.root.destroy()
root=Tk()
obj=Bill_App(root)
root.mainloop()
39
CHAPTER 8
RESULTS
40
CHAPTER 9
CONCLUSION
Through this project, we have gained valuable insights into the integration of
payment systems, database management, and user interface design. Future
improvements could include expanding payment options, incorporating real-
time bill updates, and enhancing scalability to accommodate larger user bases.
Overall, the Bill Payment System not only meets the current requirements but
also has the potential for further development, making it a versatile and reliable
tool for managing bill payments in various settings.
FUTURE ENHANCEMENT
41
2. Real-Time Bill Updates: Implementing real-time updates for bills, such
as notifications for due dates, changes in bill amounts, or new bills, can
help users stay informed. Integration with external APIs or billers can
provide real-time data syncing, ensuring that users always have up-to-
date information.
CHAPTER 10
REFERENCE
Python Documentation:
the project:
o Python 3 Documentation
management)
Python.
42
Python Libraries for Payment Integration:
API.
43