You are on page 1of 34

A PROJECT REPORT

ON
Sales and Inventory Supervision System

FOR
For the year 2022-2023 EXAMINATION
(AS PART OF COMPUTER SCIENCE COURSES [083] )

SUBMITTED BY:
Samiksha.S

UNDER THE GUIDANCE OF:


Mr.S.Kumaresan,B.sc.,[CT],B.Ed.,MCA,MBA

SRI KUMARAN
PUBLIC SENIOR SECONDARY SCHOOL
CBSE-TIRUPUR

1
SRI KUMARAN PUBLIC SENIOR SECONDARY SCHOOL

ACADEMIC YEAR : 2021-22


PROJECT REPORT ON
Sales and Inventory supervision SYSTEM

ROLL NO: 11028

NAME: Samiksha . S
CLASS:11th A3

SUBJECT: COMPUTER SCIENCE

SUB CODE: 083

PROJECT GUIDE: Mr.S.Kumaresan,B.sc.,[CT],B.Ed.,MCA,MBA

SRI KUMARAN PUBLIC SENIOR SECONDARY SCHOOL

CHENGAPPALI, TIRUPUR - 638 812

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__________

Internal Examiner's Signature Principal Signature

Observer's Signature External Examiner's Signature

3
TABLE OF CONTENTS

TABLE OF CONTENTS [ T O C
]

SER DESCRIPTION PAGE


NO

01 ACKNOWLEDGEMENT 04

02 INTRODUCTION 05

03 OBJECTIVES OF THE PROJECT 05

04 PROPOSED SYSTEM 06

05 SYSTEM DEVELOPMENT LIFE CYCLE (SDLC) 20

06 PHASES OF SYSTEM DEVELOPMENT LIFE CYCLE 21

07 SOURCE CODE 25

08 OUTPUT 28

09 TESTING 29

10 HARDWARE AND SOFTWARE REQUIREMENTS 30

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,

I express my heartfelt gratitude to my parents for constant


encouragement while carrying out this project

I gratefully acknowledge the contribution of the individuals who


contributed in bringing this project up to this level, who continues to
look after me despite my flaws,

I express my deep sense of gratitude to the luminary The Principal, Sri


Kumaran Public Senior Secondary School who has been continuously
motivating and extending their helping hand to us.

I am overwhelmed to express my thanks to The Administrative Officer


for providing me with infrastructure and moral support while carrying
out this project in the school.

My sincere thanks to Mr.S.Kumaresan In-charge, A guide, Mentor all the


above a friend. who critically reviewed my project and helped in solving
every problem, occurred during the implementation 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

The objectives of this project is to let the students apply the


programming knowledge into a real-world situation and exposed the
students how programming skills helps in developing a good software.

The objective here is to develop an interactive Calculator in Python


language. The only prerequisite is that you need to know the basic
Tkinter widgets, about user-defined functions, about some predefined
functions and string formatting.

1. Write programs utilizing modern software tools.


2. Apply object oriented programming principles effectively when
developing
small to medium sized projects.
3. Write effective procedural code to solve small to medium sized
problems.
4. Students will demonstrate a breadth of knowledge in computer
science, as
exemplified in the areas of systems, theory and software development.
5. Students will demonstrate ability to conduct a research or applied
Computer
Science project, requiring writing and presentation skills which
exemplify
scholarly style in computer science.

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.

Database is implemented by a Python module Sqlite3.It is a SQL based database.

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.

RELATIONAL DATA BASE DESIGN

 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-:

 Product id (Primary key)


 Product name (Not Null)
 Description
 Category
 Price(Not Null)
 Stock(Not Null)
8
Product Name, Price and Stock are mandatory fields.

 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.

These tables are in3rd Normal form.

RUN PROGRAM

To run Program, you have to run main.py on shell.

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

To login in User type account-:


Username->PJ
Password->ADMIN

Username and Password are not case sensitive.


You can either click sign in button or press Enter to login.

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.

To reset search option just press reset button.

 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.

What is the software development life cycle?

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.

How the SDLC Works

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.

Stages and Best Practices

Following the best practices and/or stages of SDLC ensures the process works in a smooth,
efficient, and productive way.

1. Identify the Current Problems 

“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

“Let’s create what we want.”

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.

In short, we want to verify if the code meets the defined requirements.

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

“Let’s start using what we got.”

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.

Extra: Software Maintenance

“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.

Benefits of the SDLC

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:

'''

INVENTORY MANAGEMENT SYSTEM


Developed By->PJ28105
Started On ->08/11/18
'''

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

# FETCH USER DETAILS FROM PRODUCTS,USERS AND INVENTORY TABLE


def getdetails(self):

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));")

self.cur.execute("CREATE TABLE if not exists sales (Trans_id INTEGER,invoice INTEGER


NOT NULL,Product_id varchar (20),Quantity INTEGER NOT NULL,Date varchar (20),Time
varchar (20),PRIMARY KEY(Trans_id));")
self.cur.execute("select * from products ")
self.products = self.cur.fetchall()
capuser = self.username.get()
capuser = capuser.upper()
self.cur.execute("select account_type from users where username= ? ", (capuser,))
l = self.cur.fetchall()
self.account_type = l[0][0]
self.buildmain()

# ADD WIDGETS TO TOP OF MAIN WINDOW


def buildmain(self):
if self.account_type == 'ADMIN':
super(Admin).__init__()
self.admin_mainmenu(8,8)
else:
super(User).__init__()
self.user_mainmenu(8,8)
self.logout.config(command=self.__Main_del__)
self.changeuser.config(command=self.change_user)
self.topframe=LabelFrame(self.mainw,width=1400,height=120,bg="skyblue")
self.topframe.place(x=0,y=0)
self.store_name = 'The Bake Shop'
self.storelable=Label(self.topframe,text=self.store_name + "'s Sales & Inventory
System",bg="skyblue",anchor="center")
self.storelable.config(font="Roboto 30 bold",fg="snow")
self.storelable.place(x=360,y=30)
mi = PhotoImage(file="images/myprofile.png")
mi = mi.subsample(4,4)
self.myprofile = ttk.Label(self.topframe,text=(self.username.get()).capitalize(),image=mi,
compound=TOP)
self.myprofile.image = mi
self.myprofile.place(x=1300,y=15)
''''
if self.account_type == 'ADMIN':
self.adminlabel= Label(self.topframe,text="Admin",font="Roboto 10 bold",bg="#4267b2")
else:
self.adminlabel = Label(self.topframe, text=" User", font="Roboto 10 bold", bg="#4267b2")
self.adminlabel.place(x=1300,y=80)
'''
# DATE TIME LABEL
''''
now = datetime.datetime.now()
self.datetimelabel= Label(self.topframe,text=str(now.day)+'/'+str(now.month)
+'/'+str(now.year),font="Roboto 10 bold", bg="skyblue2")
26
self.datetimelabel.place(x=1290,y=90)
'''

# METHODS FOR ITEMS AND CHANGE USER BUTTONS


def change_user(self):
if messagebox.askyesno("Alert!", "Do you want to change user?") == True:
self.base.commit()
self.mainw.destroy()
self.loginw.destroy()
self.__init__()

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.

BLACK BOX TESTING


Black box testing treats the software as a "black box," without any knowledge of
internal implementation. Black box testing methods include: equivalence partitioning. boundary
value analysis, all-pairs testing, fuzz testing, model-based testing, traceability matrix, exploratory
testing and specification-based testing

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.

ADVANTAGES AND DISADVANTAGES


The black box tester has no "bonds" with the code, and a tester's perception
is very simple: a code must have bugs. Using the principle, "Ask and you shall receive," black
box testers find bugs where programmers don't. But, on the other hand, black box testing has
been said to be "like a walk in a dark labyrinth without a flashlight," because the tester doesn't
know how the software being tested was actually constructed.
That's why there are situations when (1) a black box tester writes many test cases to
check something that can be tested by only one test case, and/or (2) some parts of the back
end are not tested at all. Therefore, black box testing has the advantage of "an unaffiliated
opinion," on the one hand, and the disadvantage of "blind exploring," on the other.
29
WHITE BOX TESTING

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)

Types of white box testing:-


The following types of white box testing exist:
api testing - Testing of the application using Public and Private APIs. Code
coverage - creating tests to satisfy some criteria of code coverage.
For example, the test designer can create tests to cause all statements in the program
to be executed at least once.
fault injection methods. mutation
testing methods.
static testing - White box testing includes all static testing.

CODE COMPLETENESS EVALUATION

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.

Two common forms of code coverage are:


Function Coverage: Which reports on functions executed and Statement
Coverage: Which reports on the number of lines executed to complete the
test.
They both return coverage metric, measured as a percentage

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.

1. OPERATING SYSTEM :WINDOWS 7 AND ABOVE

2. PROCESSOR : PENTIUM OR AMD

: ATHALON (3800+-4200+DUAL CORE)

3.MOTHERBOARD :1.85 OR 915,995 FOR PENTIUNM OR MSI

K9MM-V VIA K8M800+8237R PLUS

CHIPEST FOR AMD ATHALON

4. RAM : 512MB+

5. HARD DISK : SATA 40 GB OR ABOVE

6: MONITOR 14.1 OR 15-17 INCHES

7: Key board and mouse

SOFTWARE REQUIREMENTS:

I: WINDOWS OS

II: PYTHON

30
BIBLIOGRAPHY

Computer science with python-class XI By: Sumita Arora


A Project report on SALES AND INVENTORY SUPERVISION SYSTEM
By:SAMIKSHA.S
Website: https://www.coursera.org/articles/what-is-python-used-for-a-beginners-guide-to-
using-python

30
Conclusion
In this work we have developed a application for easy way
check the stocks and experimented on their implementation.

30
30

You might also like