0% found this document useful (0 votes)
67 views29 pages

Himalaya Darshan College: Tribhuvan University Institute of Science and Technology

This document is a project report for a Smart Inventory Management System app developed by four students at Himalaya Darshan College. The app allows organizations to easily manage their stock inventory using an Android phone. It uses technologies like Android Studio, Java, XML, and Firebase. The report includes sections on requirements analysis, system design, implementation, testing, and conclusions. Diagrams like ER diagrams and flowcharts are provided to illustrate the database and process designs.

Uploaded by

Dhiraj Jha
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
67 views29 pages

Himalaya Darshan College: Tribhuvan University Institute of Science and Technology

This document is a project report for a Smart Inventory Management System app developed by four students at Himalaya Darshan College. The app allows organizations to easily manage their stock inventory using an Android phone. It uses technologies like Android Studio, Java, XML, and Firebase. The report includes sections on requirements analysis, system design, implementation, testing, and conclusions. Diagrams like ER diagrams and flowcharts are provided to illustrate the database and process designs.

Uploaded by

Dhiraj Jha
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 29

HIMALAYA DARSHAN COLLEGE

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

Submitted in fulfillment of the requirement of 7th Semester of BSc.CSIT course,


Tribhuvan University
Abstract
The world is changing every second due to the growth of information and communication
technology, which brings everything in our fingertips. Each technology commercializes for its better
advancement and for conducting further research on it. Smart inventory management system is an
innovation that aims to bring about effective outcomes on business through the use of technology
where Smart inventory management system is a strategy or tool that gives companies the ability to
define deal parameters like purchase made, quantity purchased, sales made ,quantity sold and many
more.

Smart inventory management system is an android application focused on the dissemination of


knowledge and information on various aspects of stock management with key focus on easy stock
management. It provides any organization with a platform to store their stock easily by the help of a
phone. Companies need to first sign up using Google account and as the account gets created the user
can save their new purchase, new sale as well as view items.

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

Figure 3.1: ER diagram of database for Inventory manager


Figure 3.2: Database Relational Schema
Figure 3.3: Flow chart
Figure 3.4: Use Case Diagram
Figure 4.1: Waterfall model

v
List of abbreviation

ICT: Information and Communications Technology


ER: Entity–relationship
DFD: Data-Flow Diagram
I/O: Input / Output
SDLC: Software Development Life Cycle
SDK: Software Development Kit
IDE: Integrated Development Environment
API: Application Programming Interface
XML: Extensible Markup Language

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.

S.N Name Designation Signature Date

1. Mr. Sumit Babu Shah Head of


Department
(BSc.CSIT)
2. Mr. Kamal Shah Supervisor

3. Mr. Dhiraj Kumar Jha External Examiner

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.

1.2. Literature Review

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.3. Problem Statement


Most of organizations in Nepal conduct their activities in regular basis without using
any software for management level. They only know about excel, tally, Microsoft
word and these tools do not solve today's problems. Also in international level only
some large organization use inventory management software. The common problem
most of organization faced is outline as below:

 Lack of knowledge and information regarding recent technology and software


 No proper tools and software to manage inventory.

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:

 Only one person is responsible in assigning the details or records.


 It is security driven.
 Inventory can be added as per the requirement.

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

2.1. Requirement Analysis

Requirement analysis is the process of precisely identifying, defining, and


documenting the various requirements that are related to a particular business
objective. Requirements gathering helps in clearly understanding the needs of
the customer, defining the scope of the project, and assessing the timescales and
resources required to complete it. There are two types of requirement which are as
follows:

2.1.1. Functional Requirements

In order to make the application functional, we require the following:

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

The non-functional requirements of this mobile application are as follows:

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.

2.2. Feasibility Analysis

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

This mobile application is technically feasible. The software and hardware


requirement for the development of this application are not many and already
available as free as open source. The work for the project is done with the current
equipment and existing software technology i.e. android studio. This application is
designed in Android SDK framework.

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

Economic feasibility is the analysis of a project's costs and revenues in an effort to


determine whether or not it is logical and possible to complete. This application is
economically feasible because this mobile application is made using open source
framework and the time spent in the development of this application is three months.

5
Chapter 3: System Design

System design is the process of defining the architecture, components, modules,


interfaces and data for a system to satisfy specified requirements. Design of the
system brings down the knowledge of requirements and analysis to design the
software product. Generally, this chapter deals with the module, database design, user
interface design and the program design. For the designing of the application, various
diagrams like use case diagram, schema diagram, ER diagram, DFD etc. have been
used.

3.1. Database 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

An entity relationship model is a graphical representation of entities and their


relationships to each other, typically used in computing in regard to the organization
of data within databases or information systems. An entity is a piece of data an object
or concept about which data is stored and a relationship is how the data is shared
between entities.

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.

3.1.2. Database Relational Schema

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

Process modeling is used to describe how things must/should/could be done in


contrast to the process itself which is really what happens. A process model is roughly
an anticipation of what the process will look like. The process modeling of the
application is done through Flowchart and Use case diagram.

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:

Fig 3.4 - Use case diagram of Smart IMS

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.

4.1. Software development life cycle model

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.

Figure 4.1: Waterfall model

4.1.1 Requirement and analysis

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

The design phase is already discussed in Chapter 3.

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.1.5. Maintenance and Documentation

Maintenance phase includes the implementation of changes that application might


undergo over a certain period of time, or implementation of the new requirements and
handling the residual errors that may exist in the software even after the testing phase.
Maintenance of the project will be followed according to the changing requirements
and trends. Similarly, documentation is the crucial part in the development of any
project which has been done hand in hand with the development process wherever
possible.

4.2. Tools

4.2.1 Android Studio

Android studio is a free tool provided by Google which is used by developers to


develop and debug application for the android operating system. Android Studio is the
official Integrated Development Environment (IDE) for Android app development,
13
based on IntelliJ IDEA. On top of IntelliJ's powerful code editor and developer tools,
Android Studio offers even more features that enhance your productivity when
building Android apps.

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

4.3.1. Android SDK

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.

5.1. Unit Testing

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.

5.2. Integration Testing

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.

5.3. System Testing

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.

6.2. Future scope

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

[1]Android Developers. (January 10, 2019). Android Documentation Retrieved from


https://developer.android.com/docs
[2]Google Developers. (January 15, 2019). Add Firebase to your android app. Retrieve
from https://firebase.google.com/docs/android/setup
[3]Dharmesh Basapati. (August 26, 2017). Upload Your First Android App. Retrieved from
https://medium.com/mindorks/upload-your-first-android-app-on-play-store-step-by-step-
ee0de9123ac0
[4]Tutorials Point. (January 20, 2019). Android-UI Design. Retrieved from
https://www.tutorialspoint.com/android/android_ui_design.html
[5]Geek for Geeks (January 22, 2019). Relational Schema. Retrieved from
https://www.geeksforgeeks.org/relation-schema-in-dbms/

17
APPENDICES

Screenshot of the application

18
19
20
Code Samples:

//Function to get data from Firebase Firestore


public static <T extends FirebaseModel> void getDocuments(Query collectionRef,
Class<T> type, RepoCallbacks callbacks)
{
collectionRef.get().addOnSuccessListener(queryDocumentSnapshots -> {
List<T> dataList = new ArrayList<>();

for (QueryDocumentSnapshot documentSnapshot : queryDocumentSnapshots) {


T data = documentSnapshot.toObject(type);
data.setId(documentSnapshot.getId());
dataList.add(data);
}
callbacks.onSuccess(true, dataList, type);
Log.i(TAG, "Fetched " + dataList.size() + " " + type.getSimpleName());
}).addOnFailureListener(e -> {
callbacks.onFailure(true, FIREBASE_ERROR);
});
}

//Function to save data to Firebase Firestore


public static <T extends FirebaseModel> void saveDocument(CollectionReference
collectionRef, @Nullable String docName, T accMap, Class<T> type, RepoCallbacks
repoCallbacks, boolean checkExist)
{
DocumentReference documentReference;

if (docName == null) documentReference = collectionRef.document();


else documentReference = collectionRef.document(docName);

if (docName != null && checkExist) {


documentReference.get().addOnSuccessListener(documentSnapshot -> {
if (documentSnapshot.exists()) {
repoCallbacks.onFailure(true, EXIST_ERROR);
} else {
saveData(documentReference, accMap, type, repoCallbacks);
}
}).addOnFailureListener(e -> {
repoCallbacks.onFailure(true, FIREBASE_ERROR);
});
} else {
saveData(documentReference, accMap, type, repoCallbacks);

21

You might also like