Академический Документы
Профессиональный Документы
Культура Документы
INTRODUCTION
1.1 Introduction to Inventory Management System
The project Inventory Management System is a complete web based application An inventory
management system is the combination of technology (hardware and software) and processes and
procedures that oversee the monitoring and maintenance of stocked products, whether those products
are company assets, raw materials and supplies, or finished products ready to be sent to vendors or
end consumers. Inventory Management System plays an important role because it reduces the stress,
monitoring of products, making balance sheets and many more which was done manually. Simply
Inventory Management System overtook the manual things and also it optimizes the cost and time
constraint. Inventory Management Software is an open source project developed by procedural
php, MySQL, bootstrap, and jquery. This application is based on web application and develop with
procedural php, MySQL database, jquery, datatables plugins, and bootstrap. This application
provides the users to manage brands, category, product, orders, and report. This system provides
best inventory managemnet software features. This system can be also used for small business. It is
free web based inventory management software. In brands page, the admin can add, update, and
remove the brand’s information. In product section, the admin can add the product information and
manage the stock. In order section, the application will manage the stock of the product and
generates the total amount of payment to be pay by the client. The application can also generate the
orders report on based on the month you select.
To know the fundamentals of the Initially designed to perform little more than an accountant and a
guestbook, PHP has experienced in a short time a real revolution and, from its functions, in these
moments you can perform a multitude of useful tasks for web development. Little by little PHP is
becoming a language that allows us to do everything.
Secondary objective
The secondary objectives of this project are mentioned below:
To develop an application that deals with the day to day requirement of any production
organization
To develop the easy management of the inventory
To handle the inventory details like sales details, purchase details and balance stock details.
To provide competitive advantage to the organization.
To provide details information about the stock balance.
To make the stock manageable and simplify the use of inventory in the organization.
1.5 Features of Project
This application is used to show the stock remaining and details about the sales and purchase. It gives
the details about the stock on daily based and weekly based. The details components are described
below:
Create Stock
We can create stock if we need to extend or we have more than one stock. We can create the stock
along with the date.
Sales details
It show the details about the sales and the remaining stock of sales. It also show the details about the
sales in return.
Purchase details
It shows the details about the purchase made by the organization along with the price and dates.
Generate Report details
It generate the purchase report of any months. And the report show in pdf format.
The proposed system is computerized and has been developed using advance language therefore it
gives more facilities than present system.
By user friendly we mean to make records available to the user at just the hit of a keystroke.
To maintain the list of Student records, to maintain records of Customers and Event, to maintain
records of Customer, to maintain the transaction details. To add/update/search them from the
database-all these features have been considered for the management of the system.
Besides maintaining the data in the database the system also has the provision for printing various
reports.
The system helps reduce the paper work and provide an efficient environment that is user friendly to
work in.
Inventory Management systems (IMS) :- are part of the so-called inventory System Process, which
are applications supporting the direct contact with the volunteer and Customers.
The aim of the project titled INVENTORY MANAGEMENT is to development enterprise software that
optimizes the performance of an event management company. This system helps the managers
at different departments to coordinate their work and thereby save their valuable time and finance.
2.3Description of System
Existing System:--
In present non-computerized system all jobs are performed manually. All records of Customer, and
Customers details are written and stored in paper format in a file.
Prop writer maintains separate files for each new information. So managing them is very complex
and has become an impossible task to be performed manually systematic way.
As the job is done manually, it has its own limitations and lot’s of paperwork.
Preparation of records on yearly basis becomes a tedious and time-consuming job still its authenticity
is always debatable and can’t be verified easily.
The yearly records, which are done manually, are not easy to maintain in files, which can be
destroyed anytime by any person.
Time required for searching records of particular item is also difficult. Maintaining the records of
each and every minute detail of every item is also very difficult.
Any manual error can lead to wrong result. This system is unable to provide timely report
information.
Modification of one record causes changes to other records related to that record, so work becomes
very critical, there are chances of data loss
Storage of information is costly.
Searching any old record requires more time due to critical system of register
There are many chances of mistakes as all the data is handled manually.
I. Architectural Review
This Web based application is based on 3-tier architecture. The 3-tier includes the three hierarchy
of the flow of programming logic from user interface to database and again database to user
interface with the desired information requested by the clients. In between there involves the logic
layer for effectively and correctly manipulating the request. The 3-tier includes the following:
II Client tier
The visual part is implemented using all kinds of swing components, which does not make database
calls. The main function of this tier is to display information to the user upon user’s request
generated by user’s inputs such as firing button events. For example, inventory list will display
when user click “display” button if he or she wants to know the list of stock remaining in the
organization.
V. Database Theory
A database is a collection of information that is organizes so that it can easily be accessed,
managed and updated. In one view, database can be classified according to types of content:
bibliography, full-text, numeric, and image. In computing, database are sometime classified
according to their organizational approach. A distributed database is one that can be dispersed
or replicated among different points in a network.
VII.Primary Key
The primary key of a relational table uniquely identifies each record in the table. It can either be a
normal attribute that is guaranteed to be unique or it can be generated by the DBMS. A primary key’s
main features are:
It must contain a unique value for each row of data.
It cannot contain null value.
VIII. Foreign Key
A foreign key is a column or group of column in a relational database table that provides a
link between data in two tables. In foreign key reference, a link is created between two tables when the
column or columns that hold the primary key value for one table are referenced by the column
or column in another table thereby establishing a link between them. Creating a foreign key
manually includes the following advantages:
Changes to primary key constraints are checked with foreign key constraints in relation
table.
An index enables the Database Engine to quickly find related data in the foreign key tables.
IX. Structured Query Language (SQL)
The structured Query language (SQL) is the set of instructions used to interact with a relational
database. In fact, SQL is the only language the most database actually understand. Whenever
you interact with such a database, the software translates your commands into SQL statement that
the database knows how to interpret. SQL has three major Components:
Data Manipulation Language (DML)
Data Definition Language (DDL)
Data Control Language (DCL)
X. ACID Property
Every database transaction obeys the following rules:
Atomicity – Either the effects of all or none of its operation remain (“all or nothing” semantics)
when a transaction is completed (committed or aborted respectively). In other words, to the
outside world a committed transaction appears (by its effects on the database) to be indivisible,
atomic, and an aborted transaction does not leave effects on the database at all, as if never existed.
XI. Consistency – every transaction must leave the database in a consistent (correct) state,
i.e., maintain the predetermined integrity rules of the database (constraints upon and among the
database’s objects). A transaction must transform a database from one consistent state to another
consistent state (however, it is the responsibility of the transaction’s programmer to make sure
that the transaction itself is correct, i.e., performs correctly what it intends to perform (from the
application’s point of view) while the predefined integrity rules are enforced by the DBMS). Thus
since a database can be normally changed only by transactions, all the database’s states are consistent.
An aborted transaction does not change the database state it has started from, as if it never existed
(atomicity above).
XII. solation – Transactions cannot interfere with each other (as an end result of their
executions). Moreover, usually (depending on concurrency control method) the effects of an
incomplete transaction are not even visible to another transaction. Providing isolation is the main
goal of concurrency control.
XIII. Durability – Effects of successful (committed) transactions must persist through crashes
(typically) by recording the transaction’s effects and its commit event in a non-volatile memory.
Software Requirements :-
The data in a MySQL database are stored in tables. A table is a collection of related data,
and it consists of columns and rows.
Databases are useful for storing information categorically. A company may have a
database with the following tables:
Employees
Products
Customers
Orders
Database Queries
A query is a question or a request.
We can query a database for specific information and have a recordset returned.
The query above selects all the data in the "LastName" column from the "Employees"
table.
Hardware Requirements :-
Processor :- Intel core i5
RAM :- 1GB onwards
Free Hard Disk Space :- 2 GB or more
2.9 Justification of selection of technology
the development of such browser enhancements as Java, JavaScript, JScript (Microsoft’s slight
variant of JavaScript), and ActiveX. On the server side, progress was being made on the Common
Gateway Interface (CGI) using scripting languages such as Perl (an alternative to the PHP
language) and server-side scripting (dynamically inserting the contents of one file—or the output
of a system call—into another one).
Once the dust had settled, three main technologies stood head and shoulders above the others.
Although Perl was still a popular scripting language with a strong following, PHP’s simplicity and
built-in links to the MySQL database program had earned it more than double the number of
users. And JavaScript, which had become an essential part of the equation for dynamically
manipulating CSS (Cascading Style Sheets), now took on the even more muscular task of handling
the client side of the Ajax process. Under Ajax (described in Using JavaScript), web pages perform
data handling and send requests to web servers in the background—without the web user being
aware that this is going on.
No doubt the symbiotic nature of PHP and MySQL helped propel them both forward, but what
attracted developers to them in the first place? The simple answer has to be the ease with which
you can use these technologies to quickly create dynamic elements on websites. MySQL is a fast
and powerful yet easy-to-use database system that offers just about anything a website might need
in order to find and serve up data to browsers. When PHP allies with MySQL to store and retrieve
this data, you have the fundamental parts required for the development of social networking sites
and the beginnings of Web 2.0.
And when you bring JavaScript and CSS into the mix too, you have a recipe for building highly
dynamic and interactive websites.
Using PHP
With PHP, it’s a simple matter to embed dynamic activity in web pages. When you give pages
the .php extension, they have instant access to the scripting language. From a developer’s point of
view, all you have to do is write code such as the following:
<?php
?>
The opening <?php tells the web server to allow the PHP program to interpret all the following code
up to the ?> command. Outside of this construct, everything is sent to the client as direct HTML.
So, the text “How are you?” is simply output to the browser; within the PHP tags, the built-
in date function displays the current day of the week according to the server’s system time.
PHP is a flexible language, and some people prefer to place the PHP construct directly next to PHP
code, like this:
Hello World. Today is <?php echo date("l"); ?>. How are you?
There are also other ways of formatting and outputting information, which I’ll explain in the
chapters on PHP. The point is that with PHP, web developers have a scripting language that,
although not as fast as compiling your code in C or a similar language, is incredibly speedy and that
also integrates seamlessly with HTML code.
NOTE
If you intend to type in the PHP examples in this book to work along with me, you must remember to add <?php in front
and ?> after them to ensure that the PHP interpreter processes them. To facilitate this, you may wish to prepare a file
Using PHP, you have unlimited control over your web server. Whether you need to modify HTML
on the fly, process a credit card, add user details to a database, or fetch information from a third-
party website, you can do it all from within the same PHP files in which the HTML itself resides.
Using MySQL
Of course, there’s not a lot of point to being able to change HTML output dynamically unless you
also have a means to track the changes that users make as they use your website. In the early days
of the Web, many sites used “flat” text files to store data such as usernames and passwords. But
this approach could cause problems if the file wasn’t correctly locked against corruption from
multiple simultaneous accesses. Also, a flat file can get only so big before it becomes unwieldy to
manage—not to mention the difficulty of trying to merge files and perform complex searches in any
kind of reasonable time.
That’s where relational databases with structured querying become essential. And MySQL, being
free to use and installed on vast numbers of Internet web servers, rises superbly to the occasion. It
is a robust and exceptionally fast database management system that uses English-like commands.
The highest level of MySQL structure is a database, within which you can have one or more tables
that contain your data. For example, let’s suppose you are working on a table called users, within
which you have created columns for surname, firstname, and email, and you now wish to add
another user. One command that you might use to do this is:
Of course, as mentioned earlier, you will have issued other commands to create the database and
table and to set up all the correct fields, but the INSERTcommand here shows how simple it can be
to add new data to a database. The INSERT command is an example of SQL (which stands for
Structured Query Language), a language designed in the early 1970s and reminiscent of one of the
oldest programming languages, COBOL. It is well suited, however, to database queries, which is
why it is still in use after all this time.
It’s equally easy to look up data. Let’s assume that you have an email address for a user and you
need to look up that person’s name. To do this, you could issue a MySQL query such as:
MySQL will then return Smith, John and any other pairs of names that may be associated with that
email address in the database.
As you’d expect, there’s quite a bit more that you can do with MySQL than just
simple INSERT and SELECT commands. For example, you can join multiple tables according to
various criteria, ask for results in a variety of different orders, make partial matches when you
know only part of the string that you are searching for, return only the nth result, and a lot more.
Using PHP, you can make all these calls directly to MySQL without having to run the MySQL
program yourself or use its command-line interface. This means you can save the results in arrays
for processing and perform multiple lookups, each dependent on the results returned from earlier
ones, to drill right down to the item of data you need.
For even more power, as you’ll see later, there are additional functions built right into MySQL that
you can call up for common operations and extra speed.
Using JavaScript
The oldest of the core technologies described in this book, JavaScript, was created to enable
scripting access to all the elements of an HTML document. In other words, it provides a means for
dynamic user interaction such as checking email address validity in input forms, displaying
prompts such as “Did you really mean that?” and so on (although it cannot be relied upon for
security, which should always be performed on the web server).
Combined with CSS (see the following section), JavaScript is the power behind dynamic web pages
that change in front of your eyes rather than when the server returns a new page.
However, JavaScript can also be tricky to use, due to some major differences between the ways
different browser designers have chosen to implement it. This mainly came about when some
manufacturers tried to put additional functionality into their browsers at the expense of
compatibility with their rivals.
Thankfully, the developers have mostly now come to their senses and have realized the need for
full compatibility between their products, so web developers don’t have to write multiexception
code. But there remain millions of legacy browsers that will be in use for a good many years to
come. Luckily, there are solutions for the incompatibility problems, and later in this book we’ll
look at techniques that enable you to safely ignore these differences.
For now, let’s take a quick look at how you can use basic JavaScript, accepted by all browsers:
<script type="text/javascript">
</script>
This code snippet tells the web browser to interpret everything within the script tags as
JavaScript, which the browser then interprets by writing the text “Hello World. Today is ” to the
current document, along with the date, by using the JavaScript function Date. The result will look
something like this:
As previously mentioned, JavaScript was originally developed to offer dynamic control over the various elements
within an HTML document, and that is still its main use. But more and more, JavaScript is being used for Ajax. This is
a term for the process of accessing the web server in the background. (It originally meant “Asynchronous JavaScript
and XML,” but that phrase is already a bit outdated.)
Ajax is the main process behind what is now known as Web 2.0 in which web pages have started to
resemble standalone programs, because they don’t have to be reloaded in their entirety. Instead, a
quick Ajax call can pull in and update a single element on a web page, such as changing your
photograph on a social networking site or replacing a button that you click with the answer to a
question.
Using CSS
With the emergence of the CSS3 standard in recent years, CSS now offers a level of dynamic
interactivity previously supported only by JavaScript. For example, not only can you style any
HTML element to change its dimensions, colors, borders, spacing, and so on, but now you can also
add animated transitions and transformations to your web pages, using only a few lines of CSS.
Using CSS can be as simple as inserting a few rules between <style> and </style> tags in the head
of a web page, like this:
<style>
text-align:justify;
font-family:Helvetica;
</style>
These rules will change the default justification of the <p> tag so that paragraphs contained in it
will be fully justified and will use the Helvetica font.
there are many different ways you can lay out CSS rules, and you can also include them directly
within tags or save a set of rules to an external file to be loaded in separately. This flexibility lets
you do more than style your HTML precisely; you will also see how it can (for example) provide
Chapter 3
SYSTEM DESIGN
An ER model is an abstract way of describing a database. In the case of a relational database, which stores
data in tables, some of the data in these tables point to data in other tables - for instance, your entry in the
database could point to several entries for each of the phone numbers that are yours. The ER model would
say that you are an entity, and each phone number is an entity, and the relationship between you and the
phone numbers is 'has a phone number'. Diagrams created to design these entities and relationships are
called entity–relationship diagrams or ER diagrams.
ER Diagram is a visual representation of data that describes how data is related to each other. In ER Model,
we disintegrate data into entities, attributes and setup relationships between entities, all this can be
represented visually using the ER diagram.
For example, in the below diagram, anyone can see and understand what the diagram wants to
convey: Developer develops a website, whereas a Visitor visits a website.
3.4 Components of ER Diagram
Entity, Attributes, Relationships etc. form the components of ER Diagram and there are defined symbols and
shapes to represent each one of them.
Let's see how we can represent these in our ER Diagram.
Entity
Simple rectangular box represents an Entity.
1. Binary Relationship
2. Recursive Relationship
3. Ternary Relationship
Action Flow
Action flows, also called edges and paths, illustrate the transitions from one action state to another. They are
usually drawn with an arrowed line.
Object Flow
Object flow refers to the creation and modification of objects by activities. An object flow arrow from an
action to an object means that the action creates or influences the object. An object flow arrow from an
object to an action indicates that the action state uses the object.
Guards
In UML, guards are a statement written next to a decision diamond that must be true before moving next to
the next activity. These are not essential, but are useful when a specific answer, such as "Yes, three labels
are printed," is needed before moving forward.
Synchronization
A fork node is used to split a single incoming flow into multiple concurrent flows. It is represented as a
straight, slightly thicker line in an activity diagram.
A join node joins multiple concurrent flows back into a single outgoing flow.
A fork and join mode used together are often referred to as synchronization.
Time Event
This refers to an event that stops the flow for a time; an hourglass depicts it.
Merge Event
A merge event brings together multiple flows that are not concurrent.
Interrupting Edge
An event, such as a cancellation, that interrupts the flow denoted with a lightning bolt.
Active Classes
Active classes initiate and control the flow of activity, while passive classes store data and serve other
classes. Illustrate active classes with a thicker border.
Visibility
Use visibility markers to signify who can access the information contained within a class. Private visibility,
denoted with a - sign, hides information from anything outside the class partition. Public visibility, denoted
with a + sign, allows all other classes to view the marked information. Protected visibility, denoted with a #
sign, allows child classes to access information they inherited from a parent class.
Associations
Associations represent static relationships between classes. Place association names above, on, or below the
association line. Use a filled arrow to indicate the direction of the relationship. Place roles near the end of an
association. Roles represent the way the two classes see each other.
Multiplicity (Cardinality)
Place multiplicity notations near the ends of an association. These symbols indicate the number of instances
of one class linked to one instance of the other class. For example, one company will have one or more
employees, but each employee works for just one company
Constraint
Place constraints inside curly braces {}.
Composition and Aggregation
Composition is a special type of aggregation that denotes a strong ownership between Class A, the whole,
and Class B, its part.
Illustrate composition with a filled diamond. Use a hollow diamond to represent a simple aggregation
relationship, in which the "whole" class plays a more important role than the "part" class, but the two classes
are not dependent on each other.
The diamond ends in both composition and aggregation relationships point toward the "whole" class (i.e.,
the aggregation).
Class Diagram
Fig.Class Diagram
Generalization
Generalization is another name for inheritance or an "is a" relationship. It refers to a relationship between
two classes where one class is a specialized version of another. For example, Honda is a type of car. So the
class Honda would have a generalization relationship with the class car.
In real life coding examples, the difference between inheritance and aggregation can be confusing. If you
have an aggregation relationship, the aggregate (the whole) can access only the PUBLIC functions of the
part class. On the other hand, inheritance allows the inheriting class to access both the PUBLIC and
PROTECTED functions of the superclass.
A sequence diagram is an interaction diagram that shows how processes operate with one another and in
what order. It is a construct of a Message Sequence Chart.
A sequence diagram shows object interactions arranged in time sequence. It depicts the objects and classes
involved in the scenario and the sequence of messages exchanged between the objects needed to carry out
the functionality of the scenario.
Sequence diagrams are typically associated with use case realizations in the Logical View of the system
under development. Sequence diagrams are sometimes called inventory diagram.
A sequence diagram shows, as parallel vertical lines (lifelines), different processes or objects that live
simultaneously, and, as horizontal arrows, the messages exchanged between them, in the order in which they
occur.
Visual
Notation Description
Representation
Actor
A type of role played by an entity that interacts with the subject (e.g., by
exchanging signals and data)
external to the subject (i.e., in the sense that an instance of an actor is
not a part of the instance of its corresponding subject).
represent roles played by human users, external hardware, or other
subjects.
Note that:
An actor does not necessarily represent a specific physical entity but
merely a particular role of some entity
A person may play the role of several different actors and, conversely, a
given actor may be played by multiple different person.
Lifeline
A lifeline represents an individual participant in the Interaction.
Activations
A thin rectangle on a lifeline) represents the period during which an
element is performing an operation.
The top and the bottom of the of the rectangle are aligned with the
initiation and the completion time respectively
Call Message
A message defines a particular communication between Lifelines of an
Interaction.
Call message is a kind of message that represents an invocation of
operation of target lifeline.
Return Message
A message defines a particular communication between Lifelines of an
Interaction.
Return message is a kind of message that represents the pass of
information back to the caller of a corresponded former message.
Self Message
A message defines a particular communication between Lifelines of an
Interaction.
Self message is a kind of message that represents the invocation of
message of the same lifeline.
Recursive Message
A message defines a particular communication between Lifelines of an
Interaction.
Recursive message is a kind of message that represents the invocation of
message of the same lifeline. It's target points to an activation on top of
the activation where the message was invoked from.
Create Message
A message defines a particular communication between Lifelines of an
Interaction.
Create message is a kind of message that represents the instantiation of
(target) lifeline.
Destroy Message
A message defines a particular communication between
Lifelines of an Interaction.
Destroy message is a kind of message that represents the
request of destroying the lifecycle of target lifeline.
Duration Message
A message defines a particular communication between
Lifelines of an Interaction.
Duration message shows the distance between two time
instants for a message invocation.
Note
A note (comment) gives the ability to attach various remarks to elements. A
comment carries no semantic force, but may contain information that is useful to
a modeler.
3.10 UML DIAGRAM
UML offers a way to visualize a system's architectural blueprints in a diagram, including elements such as:[4]
A data flow diagram (DFD) is a graphical representation of the "flow" of data through an information
system, modeling its process aspects. Often they are a preliminary step used to create an overview of the
system which can later be elaborated. DFDs can also be used for the visualization of data processing
(structured design).
A DFD shows what kinds of information will be input to and output from the system, where the data will
come from and go to, and where the data will be stored. It does not show information about the timing of
processes, or information about whether processes will operate in sequence or in parallel (which is shown on
a flowchart.
A DFD represents flow of data through a system. Data flow diagrams are commonly used during problem
analysis. It views a system as a function that transforms the input into desired output. A DFD shows
movement of data through the different transformations or processes in the system.
Dataflow diagrams can be used to provide the end user with a physical idea of where the data they input
ultimately has an effect upon the structure of the whole system from order to dispatch to restock how any
system is developed can be determined through a dataflow diagram. The appropriate register saved in
database and maintained by appropriate authorities.
We usually begin with drawing a context diagram, a simple representation of the whole system. To
elaborate further from that, we drill down to a level 1 diagram with additional information about the major
functions of the system. This could continue to evolve to become a level 2 diagram when further analysis is
required. Progression to level 3, 4 and so on is possible but anything beyond level 3 is not very common.
Please bear in mind that the level of detail asked for depends on your process change plan.
Diagram Notation
Now we'd like to briefly introduce to you a few diagram notations which you'll see in the tutorial below.
1. External Entity
An external entity can represent a human, system or subsystem. It is where certain data comes from or goes
to. It is external to the system we study, in terms of the business process. For this reason, people use to draw
external entities on the edge of a diagram.
Process
A process is a business activity or function where the manipulation and transformation of data takes place. A
process can be decomposed to finer level of details, for representing how data is being processed within the
process.
3.Data Store
A data store represents the storage of persistent data required and/or produced by the process. Here are some
examples of data stores: membership forms, database table, etc.
4. Data Flow
A data flow represents the flow of information, with its direction represented by an arrow head that shows at
the end(s) of flow connector.
Data Flow – Data flow are pipelines through the packets of information
flow.
Admin
Able to create new godwom along with date.
Able to edit the entry as per entry.
Able to add, modify and delete the stock entry.
Inventory management
Able to check the stock available.
Able to check the balance payment.
Able to view the remaining sales stock.
Feasibility Analysis
This software has been tested for various feasibility criterions from various point of views.
Economic Feasibility
The system is estimated to be economically affordable. The system is medium scale desktop
application and has affordable price. The benefits include increased efficiency, effectiveness,
and the better performance. Comparing the cost and benefits the system is found to be economically
feasible.
Technical Feasibility
Development of the system requires tools like:
MySQL,
Which are easily available within the estimated cost and schedule.
Operational Feasibility
The system provides better solution to the libraries by adding the typical requirement and necessities.
The solution provided by this system will be acceptable to ultimate solution for the stock management.
Schedule Feasibility
The organized schedule for the development of the system is presented in the schedule sub-
section. The reasonable timeline reveals that the system development can be finished on desired
time framework.
4.5 Gantt chart
It is one of the popular way to illustrate project schedule. A Gantt chart is a graphical representation
of a project that shows each activity task as a horizontal bar whose length is proportional to
its time for completion. A Gantt chart for the project
deliverables within time frame. This project Gantt chart is shown below:
GANTT CHART
1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4
Planning
Requirement
gathering
Analysis
Design
1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4
Coding
Testing
Implementation
Fig:-Gantt chart