Professional Documents
Culture Documents
ON
Sales and Inventory Supervision System
FOR
For the year 2022-2023 EXAMINATION
(AS PART OF COMPUTER SCIENCE COURSES [083] )
SUBMITTED BY:
Samiksha.S
SRI KUMARAN
PUBLIC SENIOR SECONDARY SCHOOL
CBSE-TIRUPUR
1
SRI KUMARAN PUBLIC SENIOR SECONDARY SCHOOL
NAME: Samiksha . S
CLASS:11th A3
2
SRI KUMARAN PUBLIC SENIOR SECONDARY SCHOOL
CERTIFICATE
This is to certify that Cadet SAMIKSHA.A . Roll No:11028 has
successfully completed the project work entitled Sales and Inventory
supervision system in the subject Computer Science (083) laid down in
the regulations of CBSE for the purpose of Practical Examination in
Class XI to be held in Sri Kumaran Public Senior Secondary School
on__________
3
TABLE OF CONTENTS
TABLE OF CONTENTS [ T O C
]
01 ACKNOWLEDGEMENT 04
02 INTRODUCTION 05
04 PROPOSED SYSTEM 06
07 SOURCE CODE 25
08 OUTPUT 28
09 TESTING 29
11 BIBLIOGRAPHY 31
12 CONCLUSION 32
4
ACKNOWLEDGEMENT
Apart from the efforts of me. the success of any by project depends
largely on the encouragement and guidelines of many others I take this
opportunity take this opportunity w express my gratitude to the people
who have been instrumental in the successful completion of this project.
I express deep sense of gratitude to almighty God for giving the strength
for the successful completion of the project,
The guidance and support received from all the members who
contributed and who are contributing to this project were vital for the
success of the project, I am grateful for their
constant support and help
5
Introduction:
This project is based on “Sales and Inventory
Management System”, this project is developed on
python .
This is a simple console-based system which is very
easy to understand and use. Talking about the system,
it contains basic functions which includes.
6
OBJEECTIVES OF THE PROJECT
7
PROPOSED SYSTEM
SCOPE
The purpose of the whole project is to create a system for an organization that will
manage their sales and inventory records. The scope of the project is to give a simple and
attractive application to simplify the work of administrators and employees of the organization.
This project is affiliated to a bakery. It will maintain bakery’s sales and inventory’s
record. It will enable bakery’s administrators and employees to maintain their record
more efficiently and easily.
IMPLEMENTATION
Project’s GUI is implemented using Python module Tkinter which has a Database at
backend to maintain all records of the bakery. Project is implemented by using OOP Paradigm.
This project has two different account types, for bakery’s administrator and for bakery’s
employee. Both accounts have different options according to their accessibility.
Login-: Login table is for keeping username, passwords and account type of users. Login
table has three attributes -:
Username(Primary key)
Password(Not Null)
Account type(Not Null)
Password and Account Type are mandatory fields.
Products-: Product table is for keeping details of products in the bakery. Product table has 6
attributes-:
Sales-: Sales table is for keeping transaction records of the bakery. This table has6
attributes-:
Transaction id (Primary key)
Invoice no.(Not Null)
Product id (Foreign key)
Quantity(Not Null)
Date
Time
Invoice no. and Quantity are mandatory fields.
Here Transaction no. is for transaction of product and Invoice no. is bill number.
RUN PROGRAM
LOGIN SCREEN
From this screen you can login in as bakery’s administrator or bakery’s employee.
There are two different account types-:
Admin-: This account is for bakery’s administrators. Through this account you have rights to
see every detail of the bakery. You can add or remove products, edit product details, check
how sale is going in bakery, add or remove users, change their passwords and account
types etc.
User-: This a Limited access account. This account is for employees of the bakery. Through
this account you can sell products, make transaction, can see current products in bakery
etc.
9
To login in Admin type account-:
Username->PJ28105
Password->ADMIN
ADMIN ACCOUNT
Inventory-: An inventory window opens up. Through this window you can edit product
details or add stock to the product or remove product that are out of stock. You can search
in this table by product description.
10
You can select any row of the table the entry boxed will fill automatically.
To update product detail just press update button. Table is dynamic in nature it will get
automatically updated. To remove product just press remove button.
11
You can search Product by Description. Search Box is a suggestion box it will automatically
provide suggestions to the user.
Items-: You can add items to the inventory through items button .Here Product id should be
in numbers. Product id and product description should be unique. Press add item button to
add item to the bakery or Back button to go back to the inventory.
12
Here Category search box is a suggestion box it will fill
automatically and will give suggestion to the user.
Sales-: Through Sales button you can check the current sale progress in your bakery. You can
transaction no., Invoice no. of bakery. You can Search any bill details by Invoice no.
User can also check the date and time of the transaction.
13
Profiles-: To check Profiles currently in bakery’s database user can click profile button. All
entry boxes will fill automatically if you select any row of the table. You can edit or remove
accounts from the data base. You can also edit passwords of the user profiles.
User can also create a new profile by clicking on create user button. A register user window
will pop up. By default, it will create a User account. To make it Admin type you can edit its
property through profile type combo box.
14
Sign Out-: To sign out click sign out button. You will get back to Login window.
Quit-: To quit Inventory user can press quit button to exit the Inventory or X button on the
window.
15
USER ACCOUNT
This Limited access account. This account is for employees of the bakery. Through this account
you can sell products, make transaction, can see current products in bakery etc.
Invoice-: By clicking Invoice Button. You will enter to the transaction window. There is
Invoice no. at top, this is bill no. by which you can fetch the bill details through Sales button
in Admin type account.
After Invoice no. there is transaction table. It will get automatically filled when you enter a
product for sale.
16
User can search Product by description or Product id in search box. This box will provide
suggestions to the user. To make entry in Transaction table Press Add cart button. Automatically
its product detail will get displayed. Here product details are not for edit it is a User type account.
You can remove any record from current transaction by clicking remove button.
17
To make a Bill User can click proceed button.
After proceed, it will prompt user to take a print out of this transaction.
Items-: User can view Items in the bakery. The details are not for edit.
18
Sign Out-: To sign out click sign out button. You will get back to Login window.
Quit-: To quit Inventory user can press quit button to exit the Inventory or X button on the
window.
19
SYSTEM DEVELOPMENT LIFE CYCLE (SDLC)
The Software Development Life Cycle (SDLC) refers to a methodology with clearly defined
processes for creating high-quality software. in detail, the SDLC methodology focuses on the
following phases of software development:
Requirement analysis
Planning
Software design such as architectural design
Software development
Testing
Deployment
This article will explain how SDLC works, dive deeper in each of the phases, and provide you
with examples to get a better understanding of each phase.
SDLC or the Software Development Life Cycle is a process that produces software with the
highest quality and lowest cost in the shortest time possible. SDLC provides a well-structured
flow of phases that help an organization to quickly produce high-quality software which is well-
tested and ready for production use.
The SDLC involves six phases as explained in the introduction. Popular SDLC models include
the waterfall model, spiral model, and Agile model.
SDLC works by lowering the cost of software development while simultaneously improving
quality and shortening production time. SDLC achieves these apparently divergent goals by
20
following a plan that removes the typical pitfalls of software development projects. That plan
starts by evaluating existing systems for deficiencies.
Next, it defines the requirements of the new system. It then creates the software through the
stages of analysis, planning, design, development, testing, and deployment. By anticipating
costly mistakes like failing to ask the end-user or client for feedback, SLDC can eliminate
redundant rework and after-the-fact fixes.
It’s also important to know that there is a strong focus on the testing phase. As the SDLC is a
repetitive methodology, you have to ensure code quality at every cycle. Many organizations tend
to spend few efforts on testing while a stronger focus on testing can save them a lot of rework,
time, and money. Be smart and write the right types of tests.
Following the best practices and/or stages of SDLC ensures the process works in a smooth,
efficient, and productive way.
“What are the current problems?” This stage of the SDLC means getting input from all
stakeholders, including customers, salespeople, industry experts, and programmers. Learn the
strengths and weaknesses of the current system with improvement as the goal.
2. Plan
21
“What do we want?” In this stage of the SDLC, the team determines the cost and resources
required for implementing the analyzed requirements. It also details the risks involved and
provides sub-plans for softening those risks.
In other words, the team should determine the feasibility of the project and how they can
implement the project successfully with the lowest risk in mind.
3. Design
“How will we get what we want?” This phase of the SDLC starts by turning the software
specifications into a design plan called the Design Specification. All stakeholders then review
this plan and offer feedback and suggestions. It’s crucial to have a plan for collecting and
incorporating stakeholder input into this document. Failure at this stage will almost certainly
result in cost overruns at best and the total collapse of the project at worst.
4. Build
At this stage, the actual development starts. It’s important that every developer sticks to the
agreed blueprint. Also, make sure you have proper guidelines in place about the code style and
practices.
For example, define a nomenclature for files or define a variable naming style such as
camelCase. This will help your team to produce organized and consistent code that is easier to
understand but also to test during the next phase.
5. Code Test
“Did we get what we want?” In this stage, we test for defects and deficiencies. We fix those
issues until the product meets the original specifications.
Try Stackify’s free code profiler, Prefix, to write better code on your workstation. Prefix works
with .NET, Java, PHP, Node.js, Ruby, and Python.
6. Software Deployment
At this stage, the goal is to deploy the software to the production environment so users can start
using the product. However, many organizations choose to move the product through different
deployment environments such as a testing or staging environment.
22
This allows any stakeholders to safely play with the product before releasing it to the market.
Besides, this allows any final mistakes to be caught before releasing the product.
“Let’s get this closer to what we want.” The plan almost never turns out perfect when it meets
reality. Further, as conditions in the real world change, we need to update and advance the
software to match.
The DevOps movement has changed the SDLC in some ways. Developers are now responsible
for more and more steps of the entire development process. We also see the value of shifting left.
When development and Ops teams use the same toolset to track performance and pin down
defects from inception to the retirement of an application, this provides a common language and
faster handoffs between teams.
Application performance monitoring (APM) tools can be used in a development, QA, and
production environment. This keeps everyone using the same toolset across the entire
development lifecycle.
Examples
The most common SDLC examples or SDLC models are listed below.
Waterfall Model
This SDLC model is the oldest and most straightforward. With this methodology, we finish one
phase and then start the next. Each phase has its own mini-plan and each phase “waterfalls” into
the next. The biggest drawback of this model is that small details left incomplete can hold up the
entire process.
Agile Model
The Agile SDLC model separates the product into cycles and delivers a working product very
quickly. This methodology produces a succession of releases. Testing of each release feeds back
info that’s incorporated into the next version. According to Robert Half, the drawback of this
model is that the heavy emphasis on customer interaction can lead the project in the wrong
direction in some cases.
Iterative Model
This SDLC model emphasizes repetition. Developers create a version very quickly and for
relatively little cost, then test and improve it through rapid and successive versions. One big
disadvantage here is that it can eat up resources fast if left unchecked.
V-Shaped Model
An extension of the waterfall model, this SDLC methodology tests at each stage of development.
As with waterfall, this process can run into roadblocks.
23
Big Bang Model
This high-risk SDLC model throws most of its resources at development and works best for
small projects. It lacks the thorough requirements definition stage of the other methods.
Spiral Model
The most flexible of the SDLC models, the spiral model is similar to the iterative model in its
emphasis on repetition. The spiral model goes through the planning, design, build and test phases
over and over, with gradual improvements at each pass.
SDLC done right can allow the highest level of management control and documentation.
Developers understand what they should build and why. All parties agree on the goal upfront and
see a clear plan for arriving at that goal. Everyone understands the costs and resources required.
Several pitfalls can turn an SDLC implementation into more of a roadblock to development than
a tool that helps us. Failure to take into account the needs of customers and all users and
stakeholders can result in a poor understanding of the system requirements at the outset. The
benefits of SDLC only exist if the plan is followed faithfully.
Want to improve application quality and monitor application performance at every stage of the
SDLC? Try out Stackify’s Retrace tool for free and experience how it can help your organization
at producing higher-quality software.
24
Entire coding of the project:
'''
import sqlite3
from tkinter import ttk
from tkinter import *
from tkinter import messagebox
from Userlogin import Login
from Admin_menu import Admin
from User_menu import User
# MAIN WINDOW
class Main(Login,Admin,User):
def __init__(self):
Login.__init__(self)
self.loginw.mainloop()
self.loginw.state('withdraw') # LOGIN WINDOW EXITS
self.mainw = Toplevel(bg="#FFFFFF")
width = 1400
height = 780
screen_width = self.mainw.winfo_screenwidth()
screen_height = self.mainw.winfo_screenheight()
x = (screen_width / 2) - (width / 2)
y = (screen_height / 2) - (height / 2)
self.mainw.geometry("%dx%d+%d+%d" % (width, height, x, y))
self.mainw.title("Inventory")
self.mainw.resizable(0,0)
self.mainw.protocol('WM_DELETE_WINDOW', self.__Main_del__)
self.getdetails()
# OVERRIDING CLOSE BUTTON && DESTRUCTOR FOR CLASS LOGIN AND MAIN
WINDOW
def __Main_del__(self):
if messagebox.askyesno("Quit", " Leave Inventory?") == True:
self.loginw.quit()
self.mainw.quit()
exit(0)
else:
pass
25
self.cur.execute("CREATE TABLE if not exists products(product_id varchar (20),product_name
varchar (50) NOT NULL,product_desc varchar (50) NOT NULL,product_cat varchar
(50),product_price INTEGER NOT NULL,stocks INTEGER NOT NULL,PRIMARY
KEY(product_id));")
if __name__ == '__main__':
w = Main()
w.base.commit()
w.mainw.mainloop()
27
output
28
Testing
Software Testing an empirical investigation conducted to provide stakeholders with formation
about the quality of the product or service under sent 11 with respect to the context in which
ended to operate Software Testing also provides an objective, dependent view of the software to
allow the buness to appreciate and understand the risks at implementation of the state. Test
techniques include, but are not limited to, the process of executing a pigram or application with
the intent of finding software bugs
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.
SPECIFICATION-BASED TESTING
Specification-based testing aims to test the functionality of software according
to the applicable requirements. Thus, the tester inputs data into, and only sees the output from,
the test object. This level of testing usually requires thorough test cases to be provided to the
tester, who then can simply verify that for a given input, the output value (or behavior), either
"is" or "is not" the same as the expected value specified in the test case. Specification-based
testing is necessary, but it is insufficient to guard against certain risks.
White box testing, by contrast to black box testing, is when the tester has access to the
internal data structures and algorithms (and the code that implement these)
White box testing methods can also be used to evaluate the completeness of a test
suite that was created with black box testing methods. This allows the software team to
examine parts of a system that are rarely tested and ensures that the most important function
points have been tested.
30
HARDWARE AND SOFTWARE REQUIREMENT
The ensuing chapters will require you to implement various reinforcement learning
algorithms. Hence a proper development environment is necessary for a smooth learning
journey. In particular, you should have the following:
A computer running either macOS or the Linux operating system (for those on
Windows, try setting up a Virtual Machine with a Linux image)
A stable internet connection
A GPU (preferably)
We will exclusively use the Python programming language to implement our reinforcement
learning and deep learning algorithms. Moreover, we will be using Python 3.6. A list of
libraries we will be using can be found on the official GitHub repository.
4. RAM : 512MB+
SOFTWARE REQUIREMENTS:
I: WINDOWS OS
II: PYTHON
30
BIBLIOGRAPHY
30
Conclusion
In this work we have developed a application for easy way
check the stocks and experimented on their implementation.
30
30