Computer Shop Management
Computer Shop Management
Computer Shop Management
Introduction
1.1 Introduction
A Computer Shop Management System (CSMS) is a computer system typically used to manage
the sales in retail stores. It includes hardware components such as a computer, a bar code
scanner, a printer and also software to manage the operation of the store. The most basic
function of a CSMS system is to handle sales. When a customer arrives at a Computer Shop
counter with goods to purchase, the cashier will start a new sale transaction. When the barcode
of a good is read by the CSMS system, it will retrieve the name and price of this good from the
backend catalog system and interact with inventory system to deduce the stock amount of this
good. When the sale transaction is over, the customer can pay in cash, credit card or even check.
After the payment is successful, a receipt will be printed.
Today maximum business is working on paper work or desktop base by using Microsoft access
worksheet. At present there is a hard time. it’s very hard to do maintain or run any business.
This is developing century everyone is running towards the developing sides and gaining new
inventions and innovations.
Current system has many problems. In this section we discuss those problems.
All the works are carried out with pen and paper.
Sometime stock information will be not typed accurately
Sometime user cannot get the proper information about the product.
Buyers cannot place the order easily.
This system is not efficient and take long time.
Lack of immediate retrievals: the information is very difficult to retrieve and to find a particular
information.
Lack of immediate information storage: the information generated by various transactions take
time and efforts to be stored at right place.
Lack of prompt updating: various changes to the information like cost and other information is
difficult.
Error prone manual calculation: manual calculations are error prone and take a lot of time. This
may result in incorrect information.
That is the reason I have undertaken this project for more immediate replies to the customers
and provide ease to the salesman as well.
The aim of our project is to make the entire system efficient and user friendly to the product
manager and administrator.
Waterfall Model
V-Shaped Model
Evolutionary Prototyping Model
Rad Model
Spiral Method (SDM)
Iterative and Incremental Method
Agile development
Waterfall Model
The Waterfall Model is a linear sequential flow. In which progress is seen as flowing steadily
downwards (like a waterfall) through the phases of software implementation. This means that
any phase in the development process begins only if the previous phase is complete. The
waterfall approach does not define the process to go back to the previous phase to handle
changes in requirement. The waterfall approach is the earliest approach and most widely known
that was used for software development.
V-Shaped Model
It is an extension of the waterfall model, Instead of moving down in a linear way, the process
steps are bent upwards after the implementation and coding phase, to form the typical V shape.
The major difference between the V-shaped model and waterfall model is the early test
planning in the V-shaped model.
It refers to the activity of creating prototypes of software applications, for example, incomplete
versions of the software program being developed. It is an activity that can occur in software
development and It used to visualize some component of the software to limit the gap of
misunderstanding the customer requirements by the development team. This also will reduce
the iterations may occur in the waterfall approach and hard to be implemented due to the
inflexibility of the waterfall approach. So, when the final prototype is developed, the
requirement is considered to be frozen.
Spiral Model
Agile Model
It is based on iterative and incremental development, where requirements and solutions evolve
through collaboration between cross-functional teams.
It is developed to overcome the weaknesses of the waterfall model. It starts with an initial
planning and ends with deployment with the cyclic interactions in between. The basic idea
behind this method is to develop a system through repeated cycles (iterative) and in smaller
portions at a time (incremental), allowing software developers to take advantage of what was
learned during the development of earlier parts or versions of the system. It can consist of mini
waterfalls or mini V-Shaped model
RAD Model
1.8 Procedure
User will first login. He can then choose what he wants to do from menu like
Manage Categories
Manage Products
Manage Sales and Customers
Manage Purchases and Vendor
Manage Returns of Sales and Purchases
View and Print Various Reports like Income Statement
Generate Bills
2. Literature Review and Analysis
2.1 Background of Research
After choosing a topic, you will need to locate introductory sources that give basic background
information about the subject. Finding background information at the beginning of your
research is especially important if you are unfamiliar with the subject area or not sure from
what angle to approach your topic.
To collect the information, I have searched and visited few existing systems. Then find what
flaws were there within them. Had meeting with my teachers. Watch demos and video about
mail system.
Background research is also important to help you understand the theory behind your
experiment. In other words, science fair judges like to see that you understand why your
experiment turns out the way it does
This project work tries to fill the gap by automating the various activities at computer shop
management systems. It tries to satisfy customers need and simplify the works of
administrators, record officer and supplier. With a computer shop management system
Problem is that this system doesn’t work on Windows 10 and it doesn’t have advance reports
and purchases return module.
2.3.2 Existing System II
This is very old and run only on windows 2000 and its ui not easy to understand and many
modules are missing.
This system just has basic reports and don’t have module for purchase return.
2.5 Comparison
By making analysis this way it would be possible to make a report of identified area of problem.
By making a detailed analysis in this area a detailed document or report is prepared in this
phase which has details like project plan or schedule of the project, the cost estimated for
developing and executing the system, target dates for each phase of delivery of system
developed and so on. This phase is the base of software development process since further steps
taken in software development life cycle would be based on the analysis made on this phase
and so careful analysis has to be made in this phase.
The feasibility study that was done for this project included the following considerations –
Economic Feasibility
This is a very important aspect to be considered while developing a project. We decided the
technology based on minimum possible cost factor. All hardware and software cost have to be
borne by the organization. We analyzed the existing system and concluded that the existing
systems with the organization only needed to be updated to newer configuration instead of
going for new hardware setups. Overall, we have estimated that the benefits the organization
is going to receive from the proposed system will surely overcome the initial costs and the later
on running cost for system.
Technical Feasibility
This included the study of function, performance and constraints that may affect the ability to
achieve an acceptable system. or this feasibility study, we studied complete functionality to be
provided in the system, as described in the System Requirement Specification (SRS), and
checked if everything was possible using C# and SQL Server. After the study we came to
conclusion that we can proceed further with the tools and development environment chosen by
us. This was important in our case as we were working on two various phases of the department
that will need to be integrated in future to make an extended system.
Operation Feasibility
No doubt the proposed system is fully GUI based that is very user friendly and all inputs to be
taken all self-explanatory even to a layman. Besides, a proper training has been conducted to
let know the essence of the system to the users so that they feel comfortable with new system.
As far our study is concerned the clients are comfortable and happy as the system has cut down
their loads and doing all the complex activities itself.
Resource Feasibility
This is also an important check to be done that the required resources will be available or not.
As far as Software and hardware were considered, there was no such constraint using C# and
SQL Server as Front-end and Back-end respectively.
ORGANIZATION
NAME
CONTACT
ADDRESS
PROJECT
NAME
BRAND
PRODUCT
BEGIN DATE
END DATE
DURATION
ASSUMPTIONS
GOALS
OBJECTIVE
SCOPE
DELIVERABLES
PAYMENTS
ADVANCE
MID
TOTAL COST
2.8 Gantt Chart
A Gantt chart is a type of bar chart that illustrates a project schedule, named after its
inventor, Henry Gantt (1861–1919), who designed such a chart around the years 1910–
1915. Modern Gantt charts also show the dependency relationships between activities and
current schedule status.
A Gantt chart, commonly used in project management, is one of the most popular and useful
ways of showing activities (tasks or events) displayed against time. On the left of the chart is a
list of the activities and along the top is a suitable time scale. Each activity is represented by a
bar; the position and length of the bar reflects the start date, duration and end date of the
activity.
3. System Design
3.1 Introduction
Systems design is the process of defining the architecture, modules, interfaces, and data for
a system to satisfy specified requirements. Systems design could be seen as the application
of systems theory to product development. There is some overlap with the disciplines
of systems analysis, systems architecture and systems engineering.
Individuals seeking to draft a data flow diagram must (1) identify external inputs and outputs,
(2) determine how the inputs and outputs relate to each other, and (3) explain with graphics
how these connections relate and what they result in. This type of diagram helps business
development and design teams visualize how data is processed and identify or improve certain
aspects. A data flow diagram (DFD) illustrates how data is processed by a system in terms of
inputs and outputs. As its name indicates its focus is on the flow of information, where data
comes from, where it goes and how it gets stored.
DFD graphically representing the functions, or processes, which capture, manipulate, store,
and distribute data between a system and its environment and between components of a system.
The visual representation makes it a good communication tool between User and System
designer. Structure of DFD allows starting from a broad overview and expand it to a hierarchy
of detailed diagrams. DFD has often been used due to the following reasons:
Logical information flow of the system
Determination of physical system construction requirements
Simplicity of notation
Establishment of manual and automated systems requirements
There are four basic symbols that are used to represent a data-flow diagram.
Process
A process receives input data and produces output with a different content or form. Processes
can be as simple as collecting input data and saving in the database, or it can be complex as
producing a report containing monthly sales of all retail stores in the northwest region.
Data Flow
A data-flow is a path for data to move from one part of the information system to another. A
data-flow may represent a single data element such the Customer ID or it can represent a set of
data element (or a data structure).
Data Store
A data store or data repository is used in a data-flow diagram to represent a situation when the
system must retain data because one or more processes need to use the stored data in a later
time.
External Entity
An external entity is a person, department, outside organization, or other information system
that provides data to the system or receives outputs from the system. External entities are
components outside of the boundaries of the information systems.
3.2.1 Context DFD
A context diagram is a top level (also known as "Level 0") data flow diagram. It only contains
one process node ("Process 0") that generalizes the function of the entire system in relationship
to external entities.
A level 1 data flow diagram (DFD) is more detailed than a level 0 DFD but not as detailed as
a level 2 DFD. It breaks down the main processes into subprocesses that can then be analyzed
and improved on a more intimate level.
The boundary, which defines the system of interest in relation to the world around it.
The actors, usually individuals involved with the system defined according to their
roles.
The use cases, which are the specific roles played by the actors within and around the
system.
The relationships between and among the actors and the use cases.
The class diagram is the main building block of object-oriented modelling. It is used both for
general conceptual modelling of the systematics of the application, and for detailed modelling
translating the models into programming code. Class diagrams can also be used for data
modeling. The classes in a class diagram represent both the main elements, interactions in the
application, and the classes to be programmed.
In the diagram, classes are represented with boxes that contain three compartments:
The top compartment contains the name of the class. It is printed in bold and centered, and the
first letter is capitalized.
The middle compartment contains the attributes of the class. They are left-aligned and the first
letter is lowercase.
The bottom compartment contains the operations the class can execute. They are also left-
aligned and the first letter is lowercase.
In the design of a system, a number of classes are identified and grouped together in a class
diagram that helps to determine the static relations between them. With detailed modelling, the
classes of the conceptual design are often split into a number of subclasses.
In order to further describe the behavior of systems, these class diagrams can be complemented
by a state diagram or UML state machine.
The class diagram is the main building block of object-oriented modelling. It is used both for
general conceptual modelling of the systematics of the application, and for detailed modelling
translating the models into programming code. Class diagrams can also be used for data
modeling. The classes in a class diagram represent both the main elements, interactions in the
application, and the classes to be programmed.
In the diagram, classes are represented with boxes that contain three compartments:
The top compartment contains the name of the class. It is printed in bold and centered, and the
first letter is capitalized.
The middle compartment contains the attributes of the class. They are left-aligned and the first
letter is lowercase.
The bottom compartment contains the operations the class can execute. They are also left-
aligned and the first letter is lowercase.
In the design of a system, a number of classes are identified and grouped together in a class
diagram that helps to determine the static relations between them. With detailed modelling, the
classes of the conceptual design are often split into a number of subclasses.
In order to further describe the behavior of systems, these class diagrams can be complemented
by a state diagram or UML state machine.
3.6 ER Diagram
An entity-relationship diagram (ERD) is a graphical representation of an information system
that shows the relationship between people, objects, places, concepts or events within that
system. An ERD is a data modeling technique that can help define business processes and can
be used as the foundation for a relational database.
While useful for organizing data that can be represented by a relational structure, an entity-
relationship diagram can't sufficiently represent semi-structured or unstructured data, and an
ERD is unlikely to be helpful on its own in integrating data into a pre-existing information
system.
Three main components of an ERD are the entities, which are objects or concepts that can have
data stored about them, the relationship between those entities, and the cardinality, which
defines that relationship in terms of numbers.
For example, an ER diagram representing the information system for a company's sales
department might start with graphical representations of entities such as the sales
representative, the customer, the customer's address, the customer's order, the product and the
warehouse. (See diagram) Then lines or other symbols can be used to represent the relationship
between entities, and text can be used to label the relationships.
Finally, cardinality notations define the attributes of the relationship between the entities.
Cardinalities can denote that an entity is optional (for example, a sales rep could have no
customers or could have many) or mandatory (for example, the must be at least one product
listed in an order.)
Relationships: A relationship, in the context of databases, is a situation that exists between two
relational database tables when one table has a foreign key that references the primary key of
the other table. Relationships allow relational databases to split and store data in different
tables, while linking disparate data items.
Cardinality and ordinality, respectively, refer to the maximum number of times an instance in
one entity can be associated with instances in the related entity, and the minimum number of
times an instance in one entity can be associated with an instance in the related entity.
Cardinality and ordinality are
When it comes to notation, data modelers have many options to choose from. While crow's
foot notation is widely accepted as the most intuitive style, some developers use OMT, IDEF,
Bachman, or UML notation to indicate cardinality. Since crow's foot notation shows both
minimum and maximum cardinality in an easy-to-read graphic format.
One-to-many (1:M). For example, a single customer might place an order for multiple products.
The customer is associated with multiple entities, but all those entities have a single connection
back to the same customer.
Many-to-many (M:N). For example, at a company where all call center agents work with
multiple customers, each agent is associated with multiple customers, and multiple customers
might also be associated with multiple agents.
While there are tools to help draw entity-relationship diagrams, such as CASE (computer-aided
software engineering) tools, some relational database management systems also have design
capabilities built in.
3.7 Database
"A database schema specifies, based on the database administrator's knowledge of possible
applications, the facts that can enter the database, or those of interest to the possible end-users."
The notion of a database schema plays the same role as the notion of theory in predicate
calculus. A model of this "theory" closely corresponds to a database, which can be seen at any
instant of time as a mathematical object. Thus, a schema can contain formulas representing
integrity constraints specifically for an application and the constraints specifically for a type of
database, all expressed in the same database language. In a relational database, the schema
defines the tables, fields, relationships, views, indexes, packages, procedures, functions,
queues, triggers, types, sequences, materialized, views, synonyms, database links, directories,
XML schema, and other elements.
A database generally stores its schema in a data dictionary. Although a schema is defined in
text database language, the term is often used to refer to a graphical depiction of the database
structure. In other words, schema is the structure of the database that defines the objects in the
database.
Tables
Schema
3.8 Normalization
Database Normalization is a technique of organizing the data in the database. Normalization is
a systematic approach of decomposing tables to eliminate data redundancy(repetition) and
undesirable characteristics like Insertion, Update and Deletion Anamolies. It is a multi-step
process that puts data into tabular form, removing duplicated data from the relation tables.
Normalization is used for mainly two purposes,
Eliminating reduntant(useless) data.
Ensuring data dependencies make sense i.e data is logically stored.
The inventor of the relational model Edgar Codd proposed the theory of normalization with the
introduction of First Normal Form, and he continued to extend theory with Second and Third
Normal Form. Later he joined with Raymond F. Boyce to develop the theory of Boyce-Codd
Normal Form.
Theory of Data Normalization in SQL is still being developed further. For example, there are
discussions even on 6th Normal Form. However, in most practical applications, normalization
achieves its best in 3rd Normal Form. The evolution of Normalization theories is illustrated
below-
Assume a video library maintains a database of movies rented out. Without any normalization,
all information is stored in one table as shown below.
1NF Example
Rule 1- Be in 1NF
Rule 2- Single Column Primary Key
It is clear that we can't move forward to make our simple database in 2nd Normalization form
unless we partition the table above.
We have divided our 1NF table into two tables viz. Table 1 and Table2. Table 1 contains
member information. Table 2 contains information on movies rented.
We have introduced a new column called Membership_id which is the primary key for table 1.
Records can be uniquely identified in Table 1 using membership id
Rule 1- Be in 2NF
Rule 2- Has no transitive functional dependencies
To move our 2NF table into 3NF, we again need to again divide our table.
3NF Example
We have again divided our tables and created a new table which stores Salutations.
There are no transitive functional dependencies, and hence our table is in 3NF
In Table 3 Salutation ID is primary key, and in Table 1 Salutation ID is foreign to primary key
in Table 3
Now our little example is at a level that cannot further be decomposed to attain higher forms
of normalization. In fact, it is already in higher normalization forms. Separate efforts for
moving into next levels of normalizing data are normally needed in complex
databases. However, we will be discussing next levels of normalizations in brief in the
following.
Even when a database is in 3rd Normal Form, still there would be anomalies resulted if it has
more than one Candidate Key.
Sometimes is BCNF is also referred as 3.5 Normal Form.
4NF (Fourth Normal Form) Rules
If no database table instance contains two or more, independent and multivalued data
describing the relevant entity, then it is in 4th Normal Form.
A table is in 5th Normal Form only if it is in 4NF and it cannot be decomposed into any number
of smaller tables without loss of data.
6th Normal Form is not standardized, yet however, it is being discussed by database experts
for some time. Hopefully, we would have a clear & standardized definition for 6th Normal
Form in the near future...
4. Development
4.1 Development Plan
I have used Rad Model for my development
The RAD (Rapid Application Development) model is based on prototyping and iterative
development with no specific planning involved. The process of writing the software itself
involves the planning required for developing the product.
In the RAD model, the functional modules are developed in parallel as prototypes and are
integrated to make the complete product for faster product delivery. Since there is no detailed
preplanning, it makes it easier to incorporate the changes within the development process.
RAD projects follow iterative and incremental model and have small teams comprising of
developers, domain experts, customer representatives and other IT resources working
progressively on their component or prototype.
The most important aspect for this model to be successful is to make sure that the prototypes
developed are reusable.
RAD model distributes the analysis, design, build and test phases into a series of short, iterative
development cycles.
Following are the various phases of the RAD Model –
Business Modeling
The business model for the product under development is designed in terms of flow of
information and the distribution of information between various business channels. A complete
business analysis is performed to find the vital information for business, how it can be obtained,
how and when is the information processed and what are the factors driving successful flow of
information.
Data Modeling
The information gathered in the Business Modeling phase is reviewed and analyzed to form
sets of data objects vital for the business. The attributes of all data sets is identified and defined.
The relation between these data objects are established and defined in detail in relevance to the
business model.
Process Modeling
The data object sets defined in the Data Modeling phase are converted to establish the business
information flow needed to achieve specific business objectives as per the business model. The
process model for any changes or enhancements to the data object sets is defined in this phase.
Process descriptions for adding, deleting, retrieving or modifying a data object are given.
Language: C Sharp or C#
IDE: Visual Studio 2017:
Framework: .Net Framework 4.5
Technology: Winform
UI and Reporting Framework: DevExpress 18.1.4
Database: SQL SERVER 2012
DB IDE: DbForge for Sql Server 5.1
Drawing: Microsoft Visio 2016
Report Making: Microsoft Word 2016
Coding was done by keeping in view the 3-tier architecture. Visual studio itself provide 2 tier
it keeps drag and drop code separate from other logic. But in 3 tier we further divide that logic
into business logic and database logic.
4.3.3 OOP
Features like inheritance, encapsulation and other oop features were used by default. Every
custom Form or Control is inheriting from the basic form or control provided by visual studio
itself
Dialog Box are used to show exception, success and error alerts. A few examples are given
below
4.3.5 Events
Mouse and Keyboard events are used beside them dropdown change event, and data grid
selection changed event are also used.
Errors are handled very wisely so that the software should not close unexpectedly. Few
examples are given below.
I have chosen c# because it is very easy to create desktop application with it and criteria to
create a computer shop management system was fulfilled by c#. and hardware work like
printing was also added very easily.
5. Deployment
5.1 Implementation
A product software implementation method is a blueprint to get users and/or organizations
running with a specific software product.
The method is a set of rules and views to cope with the most common issues that occur when
implementing a software product: business alignment from the organizational view and
acceptance from human view.
The implementation of product software, as the final link in the deployment chain of software
production, is in a financial perspective of a major issue.
It is stated that the implementation of (product) software consumes up to 1/3 of the budget of
a software purchase (more than hardware and software requirements together).
When the main point of the computer study program is to implement counter measures to bots
and bugs.
5.1.1 Location
The software was implemented at Computer World
5.1.2 Hardware
I told them to buy:
Processor: Core 2 Dou 2.4 Ghz
Ram: 2Gb
HDD: 160Gb
5.2 Configuration
I installed sql server on their system. Made the installer of the software with automatic database
connection setting. And database creation and table creation and insert one record for admin
user in admin table for login
5.3 Testing
5.3.1 Purpose
Software testing enables making objective assessments regarding the degree of conformance
of the system to stated requirements and specifications.
Testing verifies that the system meets the different requirements including, functional,
performance, reliability, security, usability and so on. This verification is done to ensure that
we are building the system right.
In addition, testing validates that the system being developed is what the user needs. In essence,
validation is performed to ensure that we are building the right system. Apart from helping
make decisions, the information from software testing helps with risk management.
Software testing contributes to improving the quality of the product. You would notice that we
have not mentioned anything about defects/bugs up until now.
This system has some benefits to their staffs. Currently they are keeping every record by written
down in memo manually. At least this system will give them relieve from exhausted life which
they are dealing with their customers. Besides this system will make them more reliable to its
customers as all the customers records will be kept safely than any previous
times. Moreover, they can manage their stock more handily.
Reference
SMARTDRAW
http://www.smartdraw.com
TECHNOPEDIA
https://www.techopedia.com
UML-DIAGRAM
http://www.uml-diagrams.org
GURU99
https://www.guru99.com/