Bill Payment System 02-1[1]

Download as pdf or txt
Download as pdf or txt
You are on page 1of 43

BILL PAYMENT SYSTEM

USING PYTHON

AN INTERNSHIP

PROJECT REPORT

Submitted by

AKASH S M
Register No. 952621104002

A report submitted in partial fulfilment of the requirements for the award of


Degree of

BACHELOR OF ENGINEERING

IN

COMPUTER SCIENCE ENGINEERING

S.VEERASAMY CHETTIAR COLLEGE OF ENGINEERING


AND TECHNOLOGY, PULIYANGUDI-627 855

ANNA UNIVERSITY: CHENNAI -600 025

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 really grateful and wish my profound my indebtedness to Supervisor

Mr.Gopinath, Software Developer, PHOENIX SOFTECH, Madurai-625001. Deep


Knowledge & keen interest of my supervisor in the field of web development has helped me
enormously to carry out this project. Her endless patience, scholarly guidance, continual
encouragement, constant and energetic supervision, constructive criticism, valuable advice,
reading many inferior drafts and correcting them at all stage have made it possible to
complete this project.

I would like to express my heartiest gratitude to Mr.Shunmuga Sundharam, Department


of CSE, for his kind help to finish my project.

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

Content Page No.

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

PHOENIX SOFTECH is an independent software development and training


company, driven by industry experts and thought leaders in Web/Mobile
development and training domain. We work with some of the smartest software-
driven businesses around the world including software product start-ups as well
as MNC over 50 companies. We offer Website Development and Hosting
Services at affordable price. We develop the Website and as well as take over the
responsibility of maintaining your Website PHOENIX SOFTECH offers the most
effective and result oriented Digital / Online Marketing Strategies for clients to
establish a good image of their brand in the Digital and Social Media. With keen
industry expertise and market knowledge, we will analyze the targeted audience
to determine the best way of business promotion through Digital Marketing using
various Online Promotions in Google, Facebook, Instagram & Youtube
Promotions.

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

DATE DAY NAME OF THETOPIC/MODULE


COMPLETED
1st WEEK

10/07/2024 Wednesday Introduction About Python & Comments,


Variables
11/07/2024 Thursday Datatypes

12/07/2024 Friday Operators – Boolean

15/07/2024 Monday Functions

16/07/2024 Tuesday Arrays

DATE DAY NAME OF THETOPIC/MODULE


COMPLETED
2nd WEEK

18/07/2024 Thursday Control flow statements


19/07/2024 Friday Tuples and Sequences
22/07/2024 Monday LOOPS
23/07/2024 Tuesday Task

8
DATE DAY NAME OF THETOPIC/MODULE
COMPLETED
24/07/2024 Wednesday Classes
3rd WEEK

25/07/2024 Thursday Objects

26/07/2024 Friday Packages

29/07/2024 Monday Errors and Exceptions

30/07/2024 Tuesday Task

DATE DAY NAME OF THETOPIC/MODULE


COMPLETED
31/07/2024 Wednesday ML- Algorithms, Binary Search
Algorithm
4th WEEK

01/07/2024 Thursday DFS Algorithms

02/08/2024 Friday Regression Algorithms

05/08/2024 Monday Confusion Matrix

06/08/2024 Tuesday Task & Live Project Explanation

9
DATE DAY NAME OF THETOPIC/MODULE
COMPLETED
07/08/2024 Wednesday Project Requirement Analysis
5th WEEK

08/08/2024 Thursday Modules development

09/08/2024 Friday Debugging

10/08/2024 Saturday Project Completion

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.

Objective of the Project

The objective of this project is to develop a working contact management


system using Python. In doing so, it will demonstrate the following skills
and concepts:

- 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

- Python: The main programming language for implementing the system’s

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.

Benefits of Building a Contact Management System in Python

- Learning Opportunity: This project provides a hands-on opportunity to


apply Python skills in solving a real-world problem. It helps in
understanding how to work with data structures, file systems, and basic
databases.
- Customization: The system can be extended with more advanced
features, such as contact categorization, email integration, or even
synchronization with cloud-based systems, making it a versatile solution
for a wide range of users.
- Practicality: A functional CMS is an invaluable tool for anyone who needs to
manage and organize a list of contacts, whether for personal or business use.

3.1 INTERNSHIP OBJECTIVES


➢ Internships are generally thought of to be reserved for college students looking to
gain experience in a particular field. However, a wide array of people can benefit
from Training Internships in order to receive real world experience and develop
their skills.

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.

3.2 MOTIVATION FOR INTERNSHIP

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.

One of the primary motivations is to explore the core principles of software


development, such as problem-solving, algorithm design, and code
optimization. In addition to enhancing technical skills, this project offers a
chance to build something meaningful, whether it’s a tool, a service, or a system
that can automate tasks, analyze data, or facilitate decision-making. Developing
a functional solution using Python not only strengthens programming skills but
also fosters creativity in designing systems that are both efficient and scalable.

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.

Another key motivation is to apply theoretical knowledge gained from


programming courses or self-learning into a concrete, real-world project. This
hands-on experience bridges the gap between learning programming languages
in isolation and seeing how they can be used to build functional, user-oriented
solutions. Additionally, by tackling specific challenges related to the chosen
problem domain, the project helps develop critical thinking, debugging, and
troubleshooting skills—all essential for becoming a proficient developer.

The long-term motivation is also about contributing to the broader Python


community. Whether the project is intended for personal use, open-source
release, or academic purposes, creating a Python-based solution enriches the
ecosystem of resources available for others to learn from or build upon.
Through this project, there is an opportunity not only to improve one’s own
coding ability but also to engage with a wider network of Python developers,
contributing to the ongoing evolution of software development practices.

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

➢ Python is an easy to learn, powerful programming language. It has


efficient high-level data structures and a simple but effective
approach to object-oriented programming.
➢ Python’s elegant syntax and dynamic typing, together with its
interpreted nature, make it an ideal language for scripting and rapid
application development in many areas on most platforms.
➢ The Python interpreter is easily extended with new functions and
data types implemented in C or C++ (or other languages callable
from C).
➢ Python is also suitable as an extension language for customizable
applications.

TKINTER

➢ The tkinter package (“Tk interface”) is the standard Python interface to


the Tcl/Tk GUI toolkit. Both Tk and tkinter are available on most Unix
platforms, including macOS, as well as on Windows systems.

➢ 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

The software requirement specification can produce at the culmination of the


analysis task. The function and performance allocated to software as part of
system engineering are refined by established a complete information description,
a detailed functional description, a representation of system behavior, and
indication of performance and design constrain, appropriate validate criteria, and
other information pertinent to 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

The Bill Payment System is a Python-based application designed to


simplify and automate the process of managing and paying various
types of bills. This system allows users to organize, track, and manage
their bills effectively, ensuring that payments are made on time and
avoiding the risk of missed deadlines or errors.
The Bill Payment System can handle different types of bills, such as
utility bills (electricity, water, gas), subscription services, or any other
recurring payments. The application aims to provide a user-friendly
interface for adding, viewing, updating, and deleting bill records, as
well as tracking payment statuses and due dates. The system sends
reminders for upcoming payments and helps the user keep track of
past payments, allowing for better financial planning and
organization.
Key Features of the Bill Payment System:
1. Add Bill:
o Users can add a new bill, specifying details such as the biller's
name, the amount due, the due date, and the payment status
(paid or pending).
o Each bill entry includes essential information to ensure easy
tracking and management.
2. View Bills:
o Users can view a list of all their bills, along with details such as
the bill amount, due date, payment status, and any other
relevant information.

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)

item1=Label(snacks,text="Nutella Choco Spread",font=("Arial


Black",11),bg="#E5B4F3",fg="#6C3483").grid(row=0,column=0,pady=11)

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=Label(snacks,text="Dairy Milk Silk(60Rs)",font=("Arial


Black",11),bg="#E5B4F3",fg="#6C3483").grid(row=5,column=0,pady=11)

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=Label(billing_menu,text="Total Snacks Price",font=("Arial


Black",11),bg="#A569BD",fg="white").grid(row=0,column=0)

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=Label(billing_menu,text="Total Beauty & Hygine


Price",font=("Arial
Black",11),bg="#A569BD",fg="white").grid(row=2,column=0)

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)

tax_hygine=Label(billing_menu,text="Beauty & Hygine Tax",font=("Arial


Black",11),bg="#A569BD",fg="white").grid(row=2,column=2)

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

In conclusion, the Bill Payment System developed in Python successfully


addresses the challenges of managing and processing bill payments efficiently.
By leveraging Python's powerful libraries and frameworks, the system enables
users to easily view, manage, and pay various utility bills such as electricity,
water, and gas. The intuitive user interface ensures a seamless experience for
both customers and administrators.

The system is designed to be secure, offering features such as user


authentication, transaction tracking, and encrypted payment processing to
ensure data integrity and protect sensitive information. The project demonstrates
how modern software development practices can be applied to create practical
solutions for everyday tasks.

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

Future Enhancements for the Bill Payment System


1. Integration of Multiple Payment Gateways: To provide more
flexibility and convenience to users, the system can be enhanced by
integrating multiple payment gateways (e.g., PayPal, Stripe, UPI,
credit/debit cards). This will allow users to choose their preferred method
of payment, enhancing user experience and ensuring a broader reach.

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:

• Official Python documentation for libraries and frameworks used in

the project:

o Python 3 Documentation

o SQLite Documentation (if using SQLite for database

management)

o Tkinter Documentation (if using Tkinter for GUI)

Online Tutorials and Articles:

• Build a Simple Bill Payment System using Python – A tutorial that

walks you through building a basic bill payment system using

Python.

• Python Projects for Beginners – A list of beginner-friendly Python

projects, including payment and transaction-related systems.

42
Python Libraries for Payment Integration:

• Stripe API Python Documentation – If integrating Stripe as a

payment gateway, this is a useful reference for understanding the

API.

• PayPal Python SDK – Documentation for integrating PayPal into

your payment system.

43

You might also like