K. J.
Somaiya College of Engineering, Mumbai-77
(Autonomous College Affiliated to University of Mumbai)
Batch: A1 Roll No.: 1911012 , 1911014
Experiment / assignment / tutorial No.
Grade: AA / AB / BB / BC / CC / CD /DD
Signature of the Staff In-charge with date
Title: Python Application Development
AIM : To develop a python application for a real world problem
______________________________________________________________________
Expected OUTCOME of Experiment:
CO :
________________________________________________________________
Books/ Journals/ Websites referred:
• [Link]
• [Link]
• [Link]
• [Link]
• [Link]
• [Link]
• [Link]
Github Link of Project files :
[Link]
Problem definition:
Department of Computer Engineering
Page No.
K. J. Somaiya College of Engineering, Mumbai-77
(Autonomous College Affiliated to University of Mumbai)
• Store management System is a desktop application that enables store owner
to keep track of all of the products present in the store and also to handle the
bills.
• It also provides a platform to update the stock and keep a track on the stocks
sold.
• It also helps to maintain the money record of all the profits made buy the store
Scope:
• User can easily add products to the database
• User can generate bills.
• The bills get automatically printed and saved.
• The stock of products gets updated according to the quantity of the products
sold.
• The user gets notification for less stock of products in the store.
• The user can give discounts to the special customers.
• The user can easily calculate the change amount according the bill amount
and the sum paid by the customer.
Component diagram:
Department of Computer Engineering
Page No.
K. J. Somaiya College of Engineering, Mumbai-77
(Autonomous College Affiliated to University of Mumbai)
API or packages used:
• Tkinter module
• Message box
• Combo box
• Frame navigations
• re module
• Regular expressions for checking phone number
• Sqlite3 module
• Database connectivity and Query handling
• datetime module
• To show the current date and to create subfolders for bills
with respect to current date
Difficulties faced and measures taken to resolve:
1. Frame navigations :
Initially we were following a Object oriented approach, since we had different frames such as
landing frame, update database frame, add to database frame. So for simplicity we had
created different py files for each frame . But when it came to import this frames in one single
frame all frames were getting loaded on screen instead of just a landing frame. Then we
looked for a lot of solutions on stack overflow and google but in many of the cases those
users had created all all the frames in a single file and then using [Link]() they were
displaying the required frame. So we also taken all our code from OOP approach to a
procedural programming approach where we divided our whole into 4 parts of our frames
added the code accordingly.
2. Database connectivity
Since we are using sqlite3 database, we were connecting to database using [Link]()
method where as a parameter we were passing a relative path of the database file but it was
giving an error that path or directory does not exists but it was working fine when full path was
given. So user would have to enter his path of that database in his local machine into the path
variable which we had created, so to avoid this using [Link]() method of os library we
obtained the path of current directory and then from that directory we appended our database
path so now user won’t need to specify his database path directly as we have already done
that using [Link]() method .
3. Combo box default value
For a store manager , while entering a ID to get the amount of the product given by user we
had added a dropdown using Combo box in tkinter which will show the store manager all the
products with their ID’s . While doing so we had added a default value ‘product list’ on that
combobox so that store manager will get to know that , this is where he can see the all
Department of Computer Engineering
Page No.
K. J. Somaiya College of Engineering, Mumbai-77
(Autonomous College Affiliated to University of Mumbai)
products with their ID’s but it was not showing a default value which we had assigned using
[Link](0) So from google we tried some other methods such as
StringVal(value=’default’) and [Link](default=”defaultvalue”) but this methods were
also not working so we decided to add a label in front of the Combo box that will tell user that
here is the product list .
4. Dynamic ID updation
As we have implemented a feature of adding new products to database, while adding new
products to database we had shown the user how many products are already there in
database so after adding new products that number of products should get updated. But even
after adding that number was not getting updated so added another lines of code which will
[Link]()
Method so the text of that label after adding new data into database will get increamented
5. Printing bills
In our program we had added a feature of storing and printing bill in a bills folder. When the
user was pressing a generate bill button the bill was not getting stored. So we tried to debug
that part and we found out that again the path problem was occurring so we had to again put
the full path of the directory but again so we don’t have to make user add his path of that
folder from his machine to the code we used [Link]() method of os library and obtained a
path for current directory and appended a path to the bill directory after which the bills were
getting stored properly.
Department of Computer Engineering
Page No.
K. J. Somaiya College of Engineering, Mumbai-77
(Autonomous College Affiliated to University of Mumbai)
Team work (Contribution of each member).
Work Student Name
Frontend Rushabh Gandhi & Pathik Ghugare.
UI Design Rushabh Gandhi & Pathik Ghugare.
Database Design Rushabh Gandhi
Database connectivity & query handling Rushabh Gandhi
Creation of frames Pathik Ghugare
Adding functionality to frames Pathik Ghugare
Dynamic calculation of prices Rushabh Gandhi
Managing the bills Rushabh Gandhi
Exception handling Pathik Ghugare
Added product list view Rushabh Gandhi & Pathik Ghugare.
Department of Computer Engineering
Page No.