Himalaya Darshan College: Tribhuvan University Institute of Science and Technology
Himalaya Darshan College: Tribhuvan University Institute of Science and Technology
Tribhuvan University
Institute of Science and Technology
A Project Report
on
Smart Inventory Management System
Submitted to:
Department of Computer Science and Information Technology
Submitted by:
Awiral Basnet (11529/073)
Anurodh Acharya (11533/073)
Rahul Soni (11541/073)
Rojan Gautam (11543/073)
Biratnagar-9, Nepal
The main motto of the Smart inventory management system is to store the inventory by the help of
an android phone. With the advancement of technology, more and more people are oriented towards
using software platforms for efficient and effective information management on broader subjects.
It is targeted to the small or medium organization which doesn’t have many warehouses i.e. only to
those organizations that have a single power of authority. We hope the Smart inventory management
system will find its way on the revolutionary change of business habits of people involved in the
field and assist them in every possible way to reach the profit of business organization.
The application has been developed using Android Studio as IDE, Java as main programming
language, XML as lay outing language and firebase as the backend.
ii
Table of Contents
Abstract ........................................................................................................................................... ii
Table of Contents .......................................................................................................................iii-iv
List of Figures ................................................................................................................................. v
List of Abbreviation ....................................................................................................................... vi
Acknowledgement ......................................................................................................................... vi
Approval ........................................................................................................................................ vi
Chapter 1: Introduction ................................................................................................................... 1
1.1. Background………..……………………………………………………………………….1
1.2. Literature Review…………………………………………………………………………..1
1.3. Problem Statement……….………………………………………………………………...1
1.4. Objectives……………………...…….…………………………………………………….2
1.5. Scope……………………………………………………………………………………….2
1.6. Limitation…………………………………………………………………………………..2
Chapter 2: System Analysis……………………………………………………………………….3
2.1. Requirement Analysis ...................................................................................................... 3
2.1.1. Functional Requirements .............................................................................................. 3
2.1.2. Non-functional Requirements ....................................................................................... 4
2.2. Feasibility Analysis .......................................................................................................... 4
2.2.1. Technical ................................................................................................................... 4
2.2.2. Operational ................................................................................................................ 4
2.2.3. Economic .................................................................................................................. 5
Chapter 3: System Design ............................................................................................................... 6
3.1. Database design ................................................................................................................ 6
3.1.1. ER Diagram .............................................................................................................. 6
Fig 3.1 - ER diagram ....................................................................................................................... 7
3.1.2. Database Relational Schema ......................................................................................... 7
3.2. Process Modeling ................................................................................................................. 9
3.2.1. Flowchart ...................................................................................................................... 9
3.2.2 Use Case Diagram................................................................................................................ 11
Chapter 4: Implementation and Testing ........................................................................................ 12
4.1. Software development life cycle model ......................................................................... 12
4.1.1 Requirement and analysis ............................................................................................ 12
4.1.2. Coding/Implementation .......................................................................................... 12
4.1.3. Testing..................................................................................................................... 13
4.1.4. Maintenance and Documentation ........................................................................... 13
iii
4.2. Tools ............................................................................................................................... 13
4.2.1 Android Studio ........................................................................................................ 13
4.3 Technology ......................................................................................................................... 14
4.3.1. Android SDK .......................................................................................................... 14
4.3.2. Firebase ....................................................................................................................... 14
Chapter 5: Testing ......................................................................................................................... 15
5.1. Unit Testing .................................................................................................................... 15
5.2. Integration Testing ......................................................................................................... 15
5.3. System Testing ............................................................................................................... 15
Chapter 6: Conclusion................................................................................................................... 16
6.1. Conclusion...................................................................................................................... 16
6.2. Future scope ................................................................................................................... 16
References………………………………………………………………………………………..17
Appendices…………………………………………………………………………………...18-20
Code Sample…………………………………………………………………………………..…21
iv
List of Figures
v
List of abbreviation
vi
Acknowledgement
The success of this project would not have been possible without the kind support and assistance of
many individuals and we are immensely blessed to have got this all along the duration of our project.
We would like to extend our great gratitude to each and every one of them.
We are highly indebted to Himalaya Darshan College for constant guidance and supervision, as well
as for providing all the necessary ICT infrastructure and friendly environment for the successful
completion of the project. We are also appreciative of the efforts of BSc.CSIT coordinator Mr. Sumit
Babu Shah without his supporting role, the project would have been nowhere near completion.
We would like to express our gratitude to our project supervisor Mr. Kamal Shah who took keen
interest on our project and guided us throughout the project by providing all the necessary ideas,
information and knowledge for the developing a functional android application
We are very fortunate enough to get constant support from our seniors and every teaching staff of
BSc.CSIT department which helped us successfully complete our project.
Last but not the least our thanks and appreciations also go to each and every one of our colleagues
for their encouragement and support in developing the project
vii
Approval
This project, Smart inventory management system submitted by Awiral Basnet , Anurodh Acharya ,
Rahul Soni , Rojan Gautam to the Department of BSc.CSIT , Tribhuvan University, has been
accepted as satisfactory for the partial fulfillment of the requirement of the degree of Bachelors of
Science in Computer Science and Information Technology and approved as to its style and contents.
viii
Chapter 1: Introduction
1.1. Background
Inventory is basically the total amount of goods and materials held in stock by a factory,
store and other business. An inventory system is a process whereby a business keeps track
of the goods and material it has available. Today’s competitive environment is forcing
companies to optimize the procurement processes and inventory levels while at the same
time ensure accuracy of controls and implementation of standard procedures for the flow of
materials.
However, in the absence of appropriate systems and information infrastructure, companies
are finding it difficult to achieve smooth and efficient management of inventory.
Here in Smart inventory management system we will be able to predict the sale and
purchase for the future purpose which will help the business owner from unnecessary
workload of gathering various information of their sale and purchase of goods. Without an
inventory management system, the goods and products that flow through an organization
will be difficult to handle. An inventory management system enables a company to maintain
a centralized record of every asset and item in the control of the organization, providing a
single source of truth for the location of every item, vendor and supplier information,
specifications, and the total number of a particular item currently in stock.
Products are considered as the business resources for the organization. This includes
managing the product with appropriate way to review any time as per the requirement.
Therefore it is important to have a mobile based IMS which has the ability to
generate reports, maintain the balance of the stock, details about the purchase and
sales in the small organization. Before developing this application we came up with two
Inventory Management System existing in the market, which helps to give the
knowledge for the development of our project. These application software are only
used by the large organization but so we came up with the application which can be
used by the small company for the management of their stock in the production
houses.
After analyzing the other inventory management system we decided to include some
of common and key features that should be included in every inventory management
system. So we decided to include those things that help the small organization in a
way or other.
1
No availability of stock tracking and follow up software as cost is expensive
1.4. Objectives
The objectives of inventory manager android application are as follows:
To transform the paper based record keeping system into android device based
record keeping system.
To store and manage records of a business on the cloud.
To provide access to these information from any location through this application.
1.5. Scope
Smart Inventory Management System is targeted to the small or medium organization
which doesn’t have many warehouses i.e. only to those organization that has single
power of authority. Some of the scopes are:
1.6. Limitation
Efficient inventory control methods can reduce but cannot eliminate business risk.
Since only one person can access an account, it may not be suitable for situations
where multiple people handle accounts of a company.
2
Chapter 2: System Analysis
a) User Registration
When user opens Smart Inventory Management System, home screen will appear and
you can view your stock data. If the user visit the application for the first time and
then need to register using Google account.
b) User login
Given that user registered, then the user should able to log in the application through
his/her Google account.
c) User Profile
Smart Inventory Management System allows the registered users to access their own
personal dashboard i.e. User Profile where the user can include various information
such as new purchase, new sale and can view items.
d) Owner profile
The user should be able to view their own profile, modify the preferences such as unit,
rate of calculation and currency according to their business.
e) Logout
The user should be able to logout of the system.
3
2.1.2 Non-functional Requirements
a) User-friendly
The term user-friendly is self-explanatory. When something is user friendly, it is
easy to access and work with. Smart Inventory Management System application is
user friendly. Users with basic knowledge and skills of using mobile phone can easily
use the application. It uses a simplified design, as well as simple language on the
content to improve the user friendliness of the mobile application. User friendliness
helps the application to improve and increase the amount of users who use the
application.
b) Maintainability
The system should be easy to extend. The code is written in a way that it works in
lower end phones too.
c) Performance
The speed of application depends on basically two factors: System configuration
and Internet Speed. System with good configuration will most definitely lag
performance if the Internet and bandwidth is below par and vice versa.
d) Ease of use
Smart Inventory Management System is mobile application. Thus, it can be accessed
anytime from anywhere with an internet connection.
Feasibility study is a test of system proposed according to its work ability, impact on
the organization, ability to meet user needs, and effective use of resources. The
feasibility study of this application had been carried out which are as follows:
2.2.1. Technical
2.2.2. Operational
4
Operational feasibility is the measure of how well a proposed system solves the
problems, and takes advantage of the opportunities identified during scope definition
and how it satisfies the requirements identified in the requirements analysis phase of
system development. This mobile application operationally feasible because this
application solves the problem as you can update stock using just having basic
knowledge of mobile phone.
2.2.3. Economic
5
Chapter 3: System Design
Database design is the process of producing a detailed data model of database. This
data model contains all the needed logical and physical design choices and physical
storage parameters needed to generate a design in a data definition language, which
can then be used to create a database. For the database design of the application, ER
diagram, Relational schema diagram which are as follows:
3.1.1. ER Diagram
6
Fig 3.1 - ER diagram of Smart IMS
The above ER diagram shows the relationship between the user, accounts, sales,
purchase and items of the system. Entities have been represented by the rectangle,
attributes of an entity have been represented by the oval and the relationships between
those entities have been represented by the diamond shape.
A database relational schema is the skeleton structure that represents the logical view
of the entire database and defines how the data is organized and how the relations
among them are associated. It formulates all the constraints that are to be applied on
the data and defines its entities and the relationship among them. It contains a
descriptive detail of the database, which can be depicted by means of relational
schema diagrams. The relational schema of the application is as follows:
7
Fig 3.2 - Database schema of Smart IMS
8
3.2. Process Modeling
3.2.1. Flowchart
A flowchart is a type of diagram that represents the workflow or process, showing the
steps as boxes of various kinds, and their order by connecting them with arrows. The
flowchart has used simple geometric symbols and arrows to define relationships. The
beginning or end of a program is represented by an oval. A process is represented by a
rectangle, a decision is represented by a diamond and an I/O process is represented by
a parallelogram which is shown below:
9
Fig 3.3 – Flowchart of Smart IMS
10
3.2.2 Use Case Diagram
A use case diagram is used to specify the functionality of the system from the point of
view of a user. Each use case describes a logical task that may be performed by a user.
It mainly shows the interaction between the system and the outside world. The use
case of Inventory Management System is given below:
11
Chapter 4: Implementation and Testing
The implementation phase of the software development refers to the final process of
moving the solution from development status to production status. In this phase, Project
developers begin building and coding the software. This phase is followed by the software
development life cycle model used, tools used and the description of major
classes/methods.
Software development life cycle is a process followed for a software project, within a
software organization. It consists of a detailed plan describing how to develop,
maintain, replace and enhance specific software. The life cycle defines a methodology
for improving the quality of software and the overall development process. The model
of SDLC used in this project is the waterfall model. The waterfall model is comprised
of series of very definite phases each one intended to be started sequentially only after
the last has been completed, with one or more tangible deliverables produced at the
end of each phase of the waterfall model of SDLC. Essentially, is starts with the
heavy, documented, requirement-planning phase that outlines all the requirements for
the project, followed by sequential phase of design, coding, test-casing, optional
documentation, verification, validation and finally deployment/release.
Before developing the system, it is crucial for requirement collection and analysis. This
phase was used to determine the requirements such as: who is the target group for the
system? How will they use the system? These were the type of questions that were answered
during the requirements gathering phase. We performed field visits to our own relatives’
shops and gathered information from them to know about the various processes of their
12
business.
4.1.2. Design
4.1.3. Coding/Implementation
Coding phase is carried out after the design phase. It includes the translation of the
requirements specified in the requirement phase into a logical structure that can be
implemented in a programming language. The project is done in Android Studio using the
open source Android Software Development Kit provided by Google. There are two
languages supported by Android SDK for development of Android apps which are Java and
Kotlin. However, we decided to start with Java because Java is relatively old and mature and
hence, has a lot of resources available on the internet. Similarly, for the user interface design
android SDK supports XML tags. The top most tag is the root container of a screen and all
the contents such as TextView, Button, EditText are placed inside it.[4] Most of the time the
root tag specifies the different types of layout which decides the placement of its child
components on the screen. In this app, we have used Linear Layout in most of the places as
it is very simple and easy to manage. For connecting with the firebase backend, we have
used the API provided by Google to connect and manipulate the database stored in firebase.
4.1.4. Testing
After the code was developed in the coding phase, the codes were tested to check
whether or not it complied with the requirements and that the code actually solved the
needs that were addressed in the requirements phase. Testing has been done for the
individual activities of the project. Errors that occurred were corrected and further
debugging was performed.
4.2. Tools
4.2.2 Creately
Creately is an easy to use diagram and flowchart software built for team collaboration.
It supports over 40+ diagram types and has 1000’s of professionally drawn
templates.[3]
4.3 Technology
The Android SDK (software development kit) is a set of development tools used to develop
applications for Android platform.[1] The Android SDK includes the following:
● Required libraries
● Debugger
● An emulator
● Relevant documentation for the Android application program interfaces (APIs)
● Sample source code
● Tutorials for the Android OS
4.3.2. Firebase
Firebase is a freemium package which provides various services which may be needed for
an application to work properly. It provides services such as Cloud database, cloud
messaging, authentication, mobiles ads, Storage, hosting and many more. Among all these
services, this app makes use of cloud database, authentication, mobile ads and cloud
messaging.
14
Chapter 5: Testing
Software testing is the process of evaluation a software item to detect differences between
given input and expected output. It also assesses the feature of a software item.
Unit testing is a software testing method by which individual units of source code sets of
one or more computer program modules. Each module like log in, manage items, purchase,
sale, report, settings etc. has been tested individually. For all these testing, we used one of
our Google accounts. Initially the login feature was tested for authentication. All the other
modules were progressively tested as they were developed.
Integration testing is a software development process in which program units are combined
and tested as groups in multiple ways. For the Stock manager, each module was unit tested
and combined along with their testing. While doing integration testing, every other module
that was dependent on the newly integrated module was retested and confirmed that the
integration has not distorted any feature and they still meet all the requirements of the app.
System Testing is a level of the software testing where complete and integrated software is
tested. The system testing has been performed by testing the whole application in an
Android phone. A real world scenario was created by creating a new company which deals
in electronics. Electrical items such as TV, Refrigerator, A.C., etc were added and the
purchase and sales entry of these items were continuously added. Finally the stock report
was tested to match the expected result. Once these tests were done, the application was also
distributed to some of our relatives for beta testing in their business.
15
Chapter 6: Conclusion
6.1. Conclusion
Smart inventory management system is an android application that helps to manage and
keep track of inventories and keep all process related to inventory. The system has been
developed using android SDK framework, java as main programming language. Firebase
Fire store has been use to handle database. XML language is used for template and
layout.All the requirements and the objectives of the project that have been fulfilled by the
android application. The admin can access all the information of the current inventory and
the activity that user had added in the application through the application from anywhere
around the world.
Currently the application has the features of adding, editing the purchases, sales and items
and displaying them for a single user. In future, our android application will also allow
multiple staff members of the same business to login and manage inventory.
16
References
17
APPENDICES
18
19
20
Code Samples:
21