Visvesvaraya Technological University: Gaayana R (1GA19CS049) Jayanth R G (1GA19CS065)
Visvesvaraya Technological University: Gaayana R (1GA19CS049) Jayanth R G (1GA19CS065)
A Mini
Project
Report On
Bachelor
of
Engineeri
ng in
Computer Science and
Engineering Submitted
By
GAAYANA R (1GA19CS049)
JAYANTH R G (1GA19CS065)
Under the Guidance of
Mrs.Jyothi.R
GLOBAL ACADEMY OF
TECHNOLOGY
Department of Computer Science and Engineering
(Accredited by NBA 2019-2022)
Rajarajeshwari Nagar, Bengaluru – 560 098
2021-2022
CERTIFICATE
GAT, Bengaluru.
External Exam
2.
DECLARATION
We BHOOMIKA M, and MUKTHI A , students of Fifth Semester B.E, Department of
Information Science and Engineering, Rajeev institute of technology, Hassan declare that
the Mini Project entitled “STOCK CONTROL MANAGEMENT SYSTEM” has been
carried out by us and submitted in partial fulfillment of the course requirements for the
award of degree in Bachelor of Engineering in Information Science and Engineering from
Visvesvaraya Technological University, Belagavi during the academic year 2022-2023.
a
s
ACKNOWLEDGEMENT
The satisfaction and euphoria that accompany the successful completion of any task would
be incomplete without the mention of the people who made it possible and whose constant
encouragement and guidance crowned our efforts with success.
We consider ourselves proud, to be part of RAJEEV INSTITUTE OF TECHNOLOGY
family, the institution which stood by our way in endeavors.
We express our deep and sincere thanks to our Principal Dr. Mahesh P K for his support.
We are grateful to Dr. Arjun B C Professor and HOD, Dept. of CSE who is source of
inspiration and of invaluable help in channelizing my efforts in right direction.
We wish to thank our internal guide Mrs. Shruthi H S, Assistant Professor, Dept. of CSE
for guiding and correcting various documents with attention and care. She has taken lot of
pain to go through the document and make necessary corrections as and when needed.
We would like to thank the faculty members and supporting staff of the Department of ISE,
for providing all the support for completing the Project work.
Finally, we are grateful to our parents and friends for their unconditional support and help
during the course of our Project work.
BHOOMIKA M (4RA20IS005)
MUKTHI A (4RA20IS013)
ABSTRACT
A stock control management system (or stock system) is the process by which you track your
goods throughout your entire supply chain, from purchasing to production to end sales. It
governs how you approach stock control management for your business. Stock control
management is a system that gives clear cut information about sales and stocks to an admin.
In the database the admin can add, delete, and update the information accordingly. The
system also provides search option to figure out the details of the product be like its stock,
sales, supplier etc. Spreadsheets, hand-counted stock levels and manual order placement have
largely been replaced by advanced inventory tracking software. A stock control management
system can simplify the process of ordering, storing, and using stock by automating end-to-
end production, business management, demand forecasting and accounting. The key features
of this project will be stock tracking, Order management, provides supplier and products
details, billing facilities and many more.
TABLE OF CONTENTS
Chapter Title
No. Page No.
ABSTRACT II
LIST OF TABLES IV
LIST OF FIGURES V
1. INTRODUCTION
1.1 PROBLEM STATEMENT 1
1.2 INTRODUCTION TO DBMS AND SQLITE 1
1.3 INTRODUCTION TO FRONTEND SOFTWARE 2
1.4 PROJECT REPORT OUTLINE 5
2. REQUIREMENT SPECIFICATION
2.1 SOFTWARE REQUIREMENTS 6
2.2 HARDWARE REQUIREMENTS 6
3. OBJECTIVE OF THE PROJECT 7
4. IMPLEMENTATION
4.1 ER DIAGRAM 8
4.2 MAPPING OF THE ER SCHEMA TO RELATIONS 10
4.3 MAPPING OF ER DIAGRAM TO SCHEMA DIAGRAM 14
4.4 CREATION OF TABLES 15
4.5 INSERTION OF TUPLES 17
4.6 CREATION OF TRIGGERS 19
FIGURE
TITLE PAGE NO.
NO.
4.1 ER diagram of STOCK CONTROL MANAGEMENT SYSTEM 9
CHAPTER 1
INTRODUCTION
Stock control management is a system that gives clear cut information about sales and stocks
to an admin. In the database the admin can add, delete, update the information accordingly.
The system also provides search option to figure out the details of the product be like its
stock, sales, supplier etc.
1 PROBLEM STATEMENT
The main aim of the “Stock control management system” is to make the interface easy and
convenient for the admin to do all the operation on employee and stocks data.
A database management system (DBMS) is system software for creating and managing
databases. The DBMS provides users and programmers with a systematic way to create,
retrieve, update, and manage data. The DBMS essentially serves as an interface between the
database and end users application programs, ensuring that data is consistently organized and
remains easily accessible. The DBMS manages three important things: the data, the database
engine that allows data to be accessed, locked and modified, and the database schema, which
defines the database’s logical structure. These three foundational elements help to provide
concurrency, security, data integrity and uniform administration procedures. Typical database
administration tasks supported by the DBMS include change management, performance
monitoring/tuning and backup and recovery. Many database management systems are also
responsible for automated rollbacks, restarts and recovery as well as the logging and auditing
of activity.
SQLite3 can be integrated with Python using sqlite3 module, which was written by Gerhard
Haring. It provides an SQL interface compliant with the DB-API 2.0 specification described
by PEP 249. You do not need to install this module separately because it is shipped by default
along with Python version 2.5.x onwards. To use sqlite3 module, you must first create a
connection object that represents the database and then optionally you can create a cursor
object, which will help you in executing all the SQL statements.
#!/
usr
bi
n/
py
th
on
im
po
rt
sql
ite
con = sqlite3.connect('test.db')
Python is a scripting terminology or language like PHP, Perl, Ruby and many more. It can be used for
web development. Python language was used to do website dynamic. if you want to begin
composing web programs in Python, you can either use GUI or use one of its many web app
frameworks.
This is one of the most popular GUI tools you can use with Python, it is a lightweight tool,
but it does have quite a bit of functionality behind it. First off, Tkinter comes preinstalled
with Python, so you don’t have to install any dependencies (unless there are additional
packages you want to add). Also, it does have a bit of a learning curve, but from my
experience there is a lot you can do with this package. Here is an example that shows what
the window looks like after importing the package:
Tkinter Widgets
Tkinter provides various controls, such as buttons, labels and text boxes used in a GUI
application. These controls are commonly called widgets. There are currently 15 types of
widgets in Tkinter. We present these widgets as well as a brief description in the following
table –
1 PROJECT REPORT OUTLINE
and software.
Chapter 5: Front End Design, connecting to database using Python, Front end code of
the Project Chapter 6: Testing of project by different cases, its process and testing
objectives
CHAPTER 2
REQUIREMENT SPECIFICATION
2.1 HARDWARE REQUIREMENTS
7. Database : SQLite
CHAPTER 3
OBJECTIVE OF THE PROJECT
2. Automate the complete operations of billing and managing stock. The business or the
companies maintain hundreds of thousands of records. Also searching should be very
faster so they can find required details instantly.
3. To develop a graphical user-based interface to facilitate the co-ordination between supply
of products and the customer. This system makes conveniently available good customer
experience, not having enough stock to fulfill orders you’ve already payment for can be a
real negative, with this stock control management system the problem regarding the stocks
can be easily resolved.
4. This will also serve in improving cash flow; cash flow can be monitored and recorded.
5. The interface avoids shrinkage, purchasing too much of the wrong stock and/or not
storing it correctly can lead to it becoming ‘dead’, spoiled, or stolen.
6. Optimizing fulfillment, stock that’s put away and stored correctly can be picked, packed,
and shipped off to customers more quickly and easily.
7. The system will provide the admin to look at the details of the employees working, sales
details, billing of customer, products or stocks that are actively sold, and inactive goods.
Also, the supplier details who are engaged in contribution of goods and products that the
business is accustomed to.
8. This system allows the add employees, products, categories and supplies. It also allows to
modify the records and the admin can alter all the system data. The employees can only
view the billing section to make sales and to generate and print bills of customers.
9. The Stock control Management System project report contains information related to sales
and stocks such as Customer Bills, Products, Supplier Details, Employee Details, and
Category Details etc.
CHAPTER 4
IMPLEMENTATION
4.1 ER DIAGRAM
Let the attributes of the EMPLOYEE entity be E_ID, NAME, EMAIL, GENDER,
CONTACT, DOB, DOJ, ADDRESS, UTYPE, SALARY, PASS
Similarly, let the attributes of PRODUCT entity be PID, SUPPLIER, CATEGORY, NAME,
PRICE, QTY, STATUS
NAME
Let the 1st relationship be REGISTERS TO between EMPLOYEE and REGISTER entities
i.e. Employee registers to Registration with cardinality ratio 1:1, Partial Participation from
Employee and Total Participation from Register.
2nd relationship be MANAGES between EMPLOYEE and PRODUCT entities i.e. Employee
manages Product with cardinality ratio N:1, Total Participation from Product and Partial
Participation from Supplier.
3rd relationship be HAS between PRODUCT and CATEGORY entities i.e. Product has
Category with cardinality ratio M:N, Total Participation from Product and Total Participation
from Category.
The last relationship be SUPPLIES between SUPPLIER and PRODUCT entities i.e.
Supplier supplies Product with cardinality ratio 1: N, Total Participation for, Supplier and
Partial Participation from Product.
E_ID, PID, CID, INVOICE are primary keys for the respective entities as they have
only unique values. Register is the weak entity in the respective ER DIAGRAM as it
EMPLOYEE
E_ID NAME EMAIL CONTACT GENDER DOB DOJ UTYPE PASS SALARY
CATEGORY
CID NAME
PRODUCT
PID SUPPLIER CATEGORY NAME PRICE QTY STATUS
REGISTER
ENAME USERTYPE USERID UPASS
SUPPLIER
INVOICE NAME CONTACT DESC
CATEGORY
CID
NAME
PRODUCT
REGISTER
SUPPLIER
SALARY
PASS
UTYPE
DOJ
DOB
GENDER
CONTACT
EMAIL
NAME
E_ID
EMPLOYEE
10.
AUTOINCREMENT, name text, email text, contact text, dob text, doj
upass text)
Table 4.4 Register Table
1) EMPLOYEE
2) CATEGORY
3) PRODUCT
4) REGISTER
5) SUPPLIER
4.5 INSERTION INTO TUPLES
11. Employee
II) Category
III) Product
PRODUCT
VALUES(8,’gunashree’,’television’,’sony’,70000,100,’Active’); INSERT
IV) Register
(103,’bhavya’,’Employee’,’bhavz’,13012002);
V) Supplier
SUPPLIER VALUES(12,’vaishnavi’,9567836723,’bcth…’);
VALUES(13,’prachi’,9345678912,’guxz…’);
As SQLITE does not support the stored procedure feature of MySQL or other SQL tools, the
alternative for the same are user-defined functions for add and update which use classes and
objects and are called often.
CHAPTER 5
Graphical user interfaces would become the standard of user-centered design in software
application programming, providing users the capability to intuitively operate computers and
other electronic devices through the direct manipulation of graphical icons such as buttons,
scroll bars, windows, tabs, menus, cursors, and the mouse pointing device. Many modern
graphical user interfaces feature touchscreen and voice- command interaction capabilities.
11. Python can access other applications by calling in their respective modules, one of the
applications that can be used as database is DB Browser or SQLITE.
12. Another advantage of using such language is to create an user based application that
can be run on any system as a fully developed software.
13. Support for using the python standard GUI toolkit Tkinter and SQLITE are described at:-
https://docs.python.org/3/library/tkinter.html
https://www.sqlite.org/docs.html
14. Create a file in an any source code editor with python installed,
15. Import the sqlite3 module,
16. Write a code to create the respective database,
17. In the main file using the GUI, import the module and connect the database,
18. This creates connection between the application and SQLITE database.
Systems design is the process of defining the architecture, components, modules, interfaces,
and data for a system to satisfy specified requirements. Systems design could see it as the
application of systems theory to product development. There is some overlap with the
disciplines of systems analysis, systems architecture and systems engineering. If the broader
topic of product development" blends the perspective of marketing, design, and
manufacturing into a single approach to product development," then design is the act of
taking the marketing information and creating the design of the product to be manufactured.
Systems design is therefore the process of defining and developing systems to satisfy
specified requirements of the user.
SQLite is often faster than a client/server SQL database engine in this scenario. Database
requests are serialized by the server, so concurrency is not an issue. Concurrency is also
improved by "database sharing": using separate database files for different subdomains. For
example, the server might have a separate SQLite database for each user, so that the server
can handle hundreds or thousands of simultaneous connections, but each SQLite database is
only used by one connection.
CHAPTER 6
TESTING
This chapter gives the outline of all testing methods that are carried
out to get a bug free system. Quality can be achieved by testing the product using
different techniques at different phases of the project development. The purpose of testing is
to discover errors. Testing is the process of trying to discover every conceivable fault or
weakness in a work product. It provides a way to check the functionality of components sub-
assemblies and/or a finished product. It is the process of exercising software with the intent
of ensuring that the Software system meets its requirements and user expectations and does
not fail in an unacceptable manner. There are various types of test. Each test type addresses a
specific testing requirement.
Testing is an integral part of software development. Testing process certifies whether the
product that is developed compiles with the standards that it was designed to. Testing process
involves building of test cases against which the product has to be tested.
27. Testing is a process of executing a program with the intent of finding an error.
28. A good test case is one that has high probability of finding undiscovered error.
29. A successful test is one that uncovers the undiscovered error.
Expected Observed
SL No Test Input Remarks
Results Results
Query OK 1
Delete
3 Delete a record row affected PASS
a Record or deleted
Query
Trigger
4 Create Trigger PASS
Created
OK Trigger
created
Query
Stored
Create
5 Procedure PASS
OK Stored
Created
Stored Procedure Procedure
created
CHAPTER 7
RESULT
This section describes the screens of the “Stock Control Management System”. The
snapshots are shown below for each module.
7.1 SNAPSHOTS
This is the Login Interface of the application where the user has to input user ID and password
to continue.
Fig 7.2 Snapshot of User Registration
The Registration Interface allows the user to get any employee details if the employee is
not registers then they will be registers giving a new user ID and password.
Fig 7.3 Snapshot of Admin Dashboard
This is the Admin Dashboard where the admin can view all the data from employee details to
the sales and stocks of the business.
Fig 7.4 Snapshot of Employee Details
In this interface Employee details is saved, if there is any changes to be updated or when the
Employee no longer exist the details can be deleted. Also, an employee can be quickly
searched using either Name or Email or by Contact.
Fig 7.5 Snapshot of Product Section
The category section, here any product category is added or deleted from the database of the
stock..
Fig 7.6 Snapshot of Category Interface
In the Product interface, the product details such as Category, Supplier, Name, Price, and
Quantity are saved, updated or deleted. The products can also be searched using name and
status of the stocks.
Fig 7.7 Snapshot of Sales And Stocks
In this section of Sales, the invoices of all the transitioned and sold out products are viewed,
and also specific bills can be accessed through their specific invoice nos. that are generated
during the billing process.
Fig 7.8 Snapshot of Billing System
This interface is the Billing Interface where an employee doing the billing process can
generate a customer bill, print it, view the active products from the inventory, an effective
calculator to perform quick operations. A product can be added or updated corresponding to
the customer requirement with ease.
CHAPTER 8
CONCLUSION
The Stock Control management system provides easier maintenance of various product’s
details and stocks. It allows simplified operation and is a time saving platform. The building
blocks of this Major Project “STOCK CONTROL MANAGEMENT SYSTEM” was one of
these opportunities. It gave us the requisite practical knowledge to supplement the already
taught theoretical concepts thus making us more competent as a computer engineer. The
project from a personal point of view also helped us in understanding the following aspects
of project development:
The project also provides us the opportunity of interacting with our teachers and to gain from
their best experience. The application has been completed successfully and tested with
suitable test cases. It is user friendly. This is developed using Python with Tkinter and
SQLite.
REFERENCES
12. https://www.geeksforgeeks.org/python-classes-and-objects/
2. https://docs.python.org/
3. https://www.youtube.com/playlist?list=PL4P8sY6zvjk76iWbcUQ2jDntGhmX3PLF4
4. https://www.geeksforgeeks.org/python-classes-and-objects/
5. https://www.w3schools.com/python/python_intro.asp
6. https://www.youtube.com/watch?v=pd-0G0MigUA
7. https://www.tutorialspoint.com/sqlite/sqlite_python.htm