Final Report of IMS
Final Report of IMS
Submitted by
Aathiti Shakya [T.U. Exam Roll No: 23992]
Mibija Singh [T.U. Exam Roll No: 24011]
Nirvik Shakya [T.U. Exam Roll No: 24013]
Submitted to
Department of Computer Science and Information Technology
Academia International College
Institute of Science and Technology
Tribhuvan University
March 2024
Tribhuvan University
Academia International College
Submitted by
Aathiti Shakya [T.U. Exam Roll No: 23992]
Mibija Singh [T.U. Exam Roll No: 24011]
Nirvik Shakya [T.U. Exam Roll No: 24013]
Submitted to
Department of Computer Science and Information Technology
Academia International College
Institute of Science and Technology
Tribhuvan University
March 2024
Tribhuvan University
Faculty of Computer science Information Technology
LETTER OF APPROVAL
This is to certify that this project prepared by Aathiti Shakya, Mibija Singh and
Nirvik Shakya entitled “Inventory Management System” in partial fulfillment of the
requirement for the degree of B.Sc. in Computer Science and Information Technology
has been well studied. In our opinion it is satisfactory in scope and quality as a project
for the required degree.
……………………….. ………………………..
Ashish Shrestha, Lecturer Santosh Rijal
Project Supervisor HOD/Coordinator
Department of Computer Science and IT Department of Computer Science and IT
Academia International College Academia International College
……………………….. ………………………..
Internal Examiner
External Examiner
Academia International College
i
Tribhuvan University
Institute of Science and Technology
Academia International College
Department of Computer Science and Information Technology
Email: mail@academiacollege.edu.np
SUPERVISOR’S RECOMMENDATION
................................................
Ashish Shrestha
Project Supervisor
Lecturer
Department of Computer Science and IT
Academia International College
Gwarko,Lalitpur
ii
Acknowledgement
We would like to express our sincere gratitude to all those who contributed to the
successful completion of this project.
First and foremost, we extend our deepest appreciation to our supervisor Mr. Ashish
Shrestha for his immense guidance, support, and encouragement throughout the
development of this Inventory Management System. His insights have been very
helpful in shaping the project and ensuring its quality.
We are also immensely thankful to Academia International College, particularly
Mr. Santosh Rijal, for providing us with the resources, infrastructure, and
opportunity to undertake this project. The continuous assistance and cooperation
from the staff and management have been crucial in overcoming challenges and
achieving our objectives. Additionally, we would like to acknowledge the valuable
feedback and support received from friends and teachers. Their encouragement and
understanding have been a source of motivation during the project's journey.
Finally, we express our gratitude to all the individuals, organizations, and resources
that have directly or indirectly contributed to the completion of this project. Your
involvement has been deeply appreciated.
Regards,
Aathiti Shakya(23992/076)
Mibija Singh(24011/076),
Nirvik Shakya(24013/076).
iii
Abstract
The project proposes the development of an inventory management system using
the MERN (MongoDB, Express.js, React.js, Node.js) stack to address challenges in
traditional inventory management practices. It is a web application tailored to
address the specific needs and challenges faced by the company in managing its
inventory. It offers functionalities such as inventory tracking, stock level
monitoring, order management, and reporting tools, all integrated into a user-
friendly interface. We used Quick Sort and Fuzzy Search Algorithms for
incorporating dynamic sorting and expanding search capabilities. Additionally,
robust data deduplication techniques and optimize stock and order organization are
performed. Through the adoption of modern inventory management solutions built
on the MERN stack, organizations can realize significant improvements in
efficiency, cost savings, and competitive advantage in today's dynamic market
environment.
Keywords: Digital Platform, Fuzzy Search, Inventory Management System, MERN,
Track Product.
iv
Table of Contents
LETTER OF APPROVAL....................................................................................................i
SUPERVISOR’S RECOMMENDATION..........................................................................ii
Acknowledgement...............................................................................................................iii
Abstract...............................................................................................................................iv
List of Figures......................................................................................................................v
List of Tables.......................................................................................................................vi
List of Abbreviations..........................................................................................................vii
Chapter 1: Introduction.........................................................................................................1
1.1. Introduction...........................................................................................................1
1.3. Objectives:.............................................................................................................2
v
4.1. Architectural Design:...........................................................................................22
4.1.1. System Architecture:....................................................................................22
4.1.2. Application Architecture:.............................................................................23
4.1.3. Refinement of Class and object diagram......................................................24
4.1.4. Component Diagram....................................................................................25
4.1.5. Deployment Diagram...................................................................................26
5.1. Implementation:...................................................................................................31
5.1.1. Tools Used:...................................................................................................31
5.1.2. Implementation of modules:........................................................................32
5.2. Testing:................................................................................................................33
5.2.1. Test Cases for Unit Testing:.........................................................................34
5.2.2. Test Cases for System Testing:....................................................................36
6.1. Conclusion:..........................................................................................................40
References..........................................................................................................................41
Appendix............................................................................................................................44
vi
List of Figures
Figure 1.1: Incremental Model....................................................................................4
Figure 3.1: Use Case of Super Admin…...................................................................11
Figure 3.2: Use case of User.....................................................................................12
Figure 3.3: Gantt Chart..............................................................................................15
Figure 3.4: State Diagram of Inventory Management System..................................16
Figure 3.5: Class diagram of Inventory Management System...................................17
Figure 3.6: Object diagram of Inventory Management System.................................18
Figure 3.7: Sequence diagram of Inventory Management System............................19
Figure 3.8: Activity Diagram for Inventory Management System............................20
Figure 4.1: 3-tier Architecture....................................................................................21
Figure 4.2: MVC Architecture...................................................................................22
Figure 4.3: Refinement of class diagram...................................................................23
Figure 4.4: Refinement of object diagram.................................................................24
Figure 4.5: Component Diagram of Inventory Management System........................25
Figure 4.6: Deployment Diagram of Inventory Management System.......................26
v
List of Tables
Table 3.1: MERN Package Table.......................................................................................14
Table 3.2: Economic Feasibility Table..............................................................................15
Table 5.1: Test Environment Table....................................................................................35
Table 5.2: Test Environment for Creating New Account Table........................................37
Table 5.3: Test Environment for Updating Account Table................................................37
Table 5.4: Authentication and Verification of User Table................................................38
Table 5.5: Test to add new items Table.............................................................................38
Table 5.6: Test to updating items Table..............................................................................39
Table 5.7: Test to deleting items Table..............................................................................39
Table 5.8: Test to search item Table..................................................................................39
Table 5.9: UI testing Table................................................................................................40
Table 5.10: Integrity test of data Table..............................................................................40
Table 5.11: Authentication test of user Table.....................................................................41
Table 5.12: Error handling test Table................................................................................41
Table 5.13: Report bug testing Table.................................................................................41
vi
List of Abbreviations
AI - Artificial Intelligence
API - Application Programming Interface
BSON - Binary JavaScript Object Notation
CRUD - Create, Read,Update, Delete
DB - Database
DOM - Document Object Mode
HTTP - Hypertext Transfer Protocol
I/O - Input/Output
IMS - Inventory Management System
JS - JavaScript
JSON - JavaScript Object Notation
JWT - JSON Web Token
MERN - MongoDB, Express.js, React, Node.js
ML - Machine Learning
NoSQL - No Structured Query Language
REST - Representational State Transfer
SCSS - Sassy Cascading Style Sheets
SDLC - Software Development Life Cycle
SKU - StockKeeping Unit
SPA - Single Page Application
UI - User Interface
UML - Unified Modeling Language
URL - Uniform Resource Locator
vii
Chapter 1: Introduction
1.1. Introduction
Inventory Management System is a web-based system which is built to maintain an
inventory catalog for dealing with the supplies. This system provides a platform
where there are various features which a client in need of an inventory must have.
Inventory management system is used for adding the information in digital form
which are collected by the owner in the form of hard copies or spreadsheets. To
manage the client’s account accurately, an owner is required to implement precise
information about them into the management system.
Our system is created to help new businesses, especially startups, which often face
challenges due to limited budgets and resources. It provides affordable solutions and
streamlined processes, making it easier for these businesses to operate smoothly and
grow. Our system includes a product management feature, making it easier for
startups in business to handle transactions efficiently. The goal of this project is to
improve efficiency, reduce errors, and enhance overall inventory control. This
inventory management system software provides simple inventory control in a
particular format for the convenience of the client for the management of their
inventory. [1]
Inventory Management System Software is built with the help of MERN stack and
SCSS where the whole program is built using React.JS. React.JS is chosen for its
library that ensures a better user experience with faster loading time as it is an SPA
framework provided by JavaScript. SCSS is used for the better and unique designing
of the website which is further enhanced by Node.JS and Express.JS which is used as
backend, providing features such as database management and APIs. MongoDB
which is a NoSQL database is used to store the dataset which is utilized during the
development of this system.
1.3. Objectives:
The project attempts to fulfill the following objectives:
Fuzzy search implementation for approximate matching, improving accuracy and
saving time for users.
Minimizing costs.
Better organization of stocks by using quick sort.
Preventing stock outs.
1.4.3. Limitation:
This project cannot overcome these points with are listed below:
Absence of sales and purchase section.
Lack of integration for invoice and report generation.
No demand prediction for market trends are done.
Absence of multi-level users.
Increment 1:
Authentication and Verification Module: During this phase, the system validates user
credentials by comparing the provided username and password with those stored in the
database. If the input matches the records, the user gains access to the system.
3
Conversely, the system generates error messages to notify users of incorrect input.
Increment 2:
Product Module: In this increment, we checked for the adding, updating, viewing and
deleting of products. Using quick sort, data is organized in a better manner and using
fuzzy search slightly incomplete or incorrect data can give correct output as the user
required.
Increment 3:
Categorization Module: The product can be list down using a category drop down box
for quicker sorting.
Increment 4:
Vendor Module: A vendor list is also implemented to track the vendor's information
which makes it easier for the user.
4
1.6. Report Organization
Chapter 1: Highlights in brief the project's background, summary, problem statement,
objectives, scope, and limitations. The problem statement focuses on the issue that
motivated the project's development; it is a theoretical and research-based component.
Next, the project's goals, parameters, and constraints are spoken about.
Chapter 2: provides an overview of the current system, including its benefits and
drawbacks, as well as a background study and literature analysis.
Chapter 3: Requirement and feasibility analysis are included in the presentation of the
system analysis. Feasibility analysis describes why and how the project is implemented,
while requirement analysis defines the project's functional and non-functional
requirements.
Chapter 4: Design of the system is explained in detail with all necessary diagrams and
brief functionality.
Chapter 5: Implementation and Testing are presented. The process for the system
is explained, along with the tools and platforms that were used during implementation.
5
Chapter 2: Background Study and Literature Review
2.1. Background Study:
The evolution of inventory management technologies has progressed from manual
reporting to integrated Information Systems (IS). Need of inventory management
systems has increased as many companies and organizations demand digital platforms
for maintaining accurate and smooth business operations. As manual methods were
time- consuming and error-prone, integrated IS were brought into practice. Integrated
IS contributed to cost reduction, supplier collaboration, and scalability, ultimately
enhancing service levels and reducing costs for businesses.
Terminologies related to our project:
● Total quantity: The total quantity of each product present in the inventory.
6
ownership of their own custom Inventory Management System according to the needs
of their business, but as not all businesses have the same resources.
This research highlighted the scope of inventory management that covers many topics,
such as replenishment scheduling, managing costs of storage and inventory, asset
management, inventory forecasting, inventory valuation, inventory visibility, future
inventory price forecasting, physical inventory, available physical space, quality
management, replenishment, returns and defective goods, and demand forecasting. [4]
In this research report, they highlighted the major requirement for small/medium-sized
businesses of Inventory Management since a lot of money and skilled labor has to be
invested to do so. Demand forecasting is a crucial part of all businesses. They used
Machine Learning models to maintain their inventory based on demand for a particular
item. [5]
7
organizations need to understand the effects of proper materials management techniques
on the effectiveness of project execution. A properly implemented materials
management program can achieve the timely flow of materials and equipment to the
jobsite, and thus facilitate improved work face planning, increased labor productivity,
better schedules, and lower project costs. Materials represent a major expense in
construction, so minimizing procurement cost improves opportunities for reducing the
overall project cost. This paper deals with identification of selective inventory control
techniques and developing a framework for assessing the various material management
techniques. In the end, a framework has been developed which can be used for future
research in this area. [9]
8
Chapter 3: System Analysis
3.1. System Analysis
System analysis for an Inventory Management System (IMS) involves understanding
current processes, gathering user requirements, creating models, and conducting a
feasibility study. The purpose is to set objectives, determine system boundaries, and
record specific requirements for the creation of an efficient and effective IMS.
Product Management
Actors:SystemUser
Requirements:
1. System users should be able to add new products with details such as name,
description, image, quantity and category.
2. System users should support updating products and deleting products.
3. System users should be able to track stock levels from the database.
9
Inventory Tracking:
Actors: System user
Requirements:
1. The system should track product levels.
2. Users should be able to conduct stock takes and update inventory quantities
manually.
Reporting bugs:
Actor: System User
Requirements:
1. The system should be able to support reporting bug mechanisms.
Security:
Actor: System User
Requirement:
1. The system should enforce secure authentication and authorization
mechanisms while signup or login.
2. Every individual will have their own unique token.
10
3.1.1.1.1. Use case for Super Admin
11
3.1.1.1.2. Use case for User
Actor: User
Use cases:
1. Register
2. Product
3. Categorization
4. Vendors
5. Stock Listing
6. Report
12
b) Non-Functional Requirement
Following are Non-functional requirements that are not directly concerned with
specific function delivered by the system to its user but they concern with emergence
system properties such as reliability availability, response time security, safety etc.
Non-functional requirements place or put constraints on how the system will do to
achieve the functional requirement and elaborates a performance characteristic of the
system.
13
Nodemon/Server 3.1.0 Node.JS>= 6.0.0 February, 248
2024
14
Installation and data entry costs
o Server Hosting
o Training the staff
o Enter the precious data into the system
Operational Costs
o Maintenance cost
o Upgrading the software
For practical purposes, the cost for our project implementation is shown as:
Table 3.2: Economic Feasibility Table
Programmers 40000
Subscription 1000
Total 2,79,000
As per the cost analyzed from above table, we can obtain benefits by
addingsubscription, premium subscription, advertisement and affiliate marketing.
3.1.2.4. Schedule:
Schedule feasibility shows whether our project can be completed within the specified
time frame or not. The schedule of our project is shown from the Gantt chart.
15
Figure 3.3: Gantt Chart
16
3.1.3. Analysis
17
3.1.3.2. Class and Object diagram
Class Diagram:
A class diagram is a type of UML diagram that represents the classes, their properties,
methods, and the relationships between them to describe the static structure of a
system. It is a key tool in object- oriented modeling and design.
18
Object Diagram:
An object diagram is also a type of UML that provides a view of an object and their
relationships within a system at a particular point in time. It is used to illustrate the
real- world instances of classes and their interactions.
19
3.1.3.3. Sequence Diagram
A sequence diagram is a type of interaction diagram which describes how and in what
order a group of objects work together. These diagrams are used by software
developers and experts to understand the requirements of a new system or document an
existing process.
20
3.1.3.4. Activity Diagram
Activity diagrams show the flow from one activity to another within a system or
process. Even complex systems can be visualized using activity diagrams. It is used in
organizations to model the customer journey, represent the process from receiving an
order to delivering it to the customer, and model the sales process.
21
Chapter 4: System Design
4.1. Architectural Design:
4.1.1. System Architecture:
Our system follows a 3-Tier architecture model, which divides the functional process
logic, data access, data storage, and user interface into separate modules on distinct
platforms.
The Presentation tier is the user-visible part of the application, facilitating input
of requirements and presentation of results. It is platform-dependent, varying
across devices or platforms such as web applications.
The Application tier, also known as middleware, serves as the middle layer
responsible for handling calculations and operations between input-output
requirements and data. It functions as an application server.
The Data tier, positioned at the lowest layer of the model, manages all data-
related operations, including database management system functionalities and
fundamental database operations for storing, selecting, aggregating, processing,
ensuring integrity, and auditing data. [12]
22
4.1.2. Application Architecture:
The Application Architecture of our system employs the Model-View-Controller
(MVC) design pattern, which divides the application into three main components:
Model, View, and Controller.
The Model interacts with the database, handling data logic such as retrieval,
creation, authentication, and validation.
The View manages the user interface of the application.
The Controller handles user requests and dictates the application's actions
accordingly.
In the MVC architecture, when a client requests a page from the server, the server
forwards all request information to the Controller. The Controller then communicates
with the Model to retrieve appropriate data from the database. Subsequently, the View
combines this data with the layout and generates a user interface, which is then sent
back to the Controller. Notably, the Model and View do not interact directly; instead,
the Controller serves as a mediator between them. Finally, the Controller responds to
the client with the rendered page. [12]
23
4.1.3. Refinement of Class and object diagram
4.1.3.1. Refinement of class diagram:
24
4.1.3.2. Refinement of object diagram:
25
Figure 4.5: Component Diagram of Inventory Management System
26
Figure 4.6: Deployment Diagram of Inventory Management System
Time Complexity:
❖ Best Case: Ω (N log (N))
Efficient sorting when pivot divides array into equal halves.
❖ Average Case: θ (N log (N))
Typically very fast, making it one of the fastest sorting algorithms.
27
❖ Worst Case: O(N2)
Occurs with consistently unbalanced partitions, especially with already sorted arrays.
❖ Auxiliary Space: O(1)
Except for recursive stack space, which could be O(N) in worst-case scenarios.
Algorithm:
1. QUICKSORT (array A, start, end)
2. {
3. 1 if (start < end)
4. {
5. p = partition(A, start, end)
6. QUICKSORT (A, start, p - 1)
7. QUICKSORT (A, p + 1, end)
8. }
9. } [13]
Algorithm:
1. Receive two strings or sequences of characters to compare.
2. Normalize the strings (e.g., convert to lowercase, remove punctuation).
3. Break the strings into smaller units (e.g., characters, words).
4. Calculate similarity scores between corresponding tokens using a chosen
method (e.g., Levenshtein distance, Jaccard similarity).
28
5. Combine individual scores to get an overall similarity score for the entire
strings.
6. Set a threshold above which the strings are considered a match.
7. Compare the overall similarity score with the threshold to determine if the
strings match.
8. Return the result of the fuzzy matching algorithm (match or no match).
9. Fine-tune parameters (e.g., threshold, scoring method) based on
specific requirements or application needs.
29
o M[i-1][j-1] + 1 (substitution)
Additionally, if i > 1, j > 1, and s1[i-1] equals s2[j-2] and s1[i-2] equals s2[j-1],
consider the possibility of transposition: Set M[i][j] to the minimum of its
current value and M[i-2][j-2] + 1.
Return Distance: The Damerau-Levenshtein Distance between s1 and s2 is the
value in the bottom-right cell of the matrix, i.e., M[m][n]. These step-by-step
algorithms outline the process of calculating Levenshtein and Damerau-
Levenshtein distances between two strings. They provide a clear understanding
of the operations involved in each approach.
4.2.3. JWT
JWT stands for JSON Web Token. It is a compact and self-contained way of
transmitting information between two parties in the form of a JSON object. JWTs are
commonly used for authentication and authorization purposes in web applications.
Here's a breakdown of its components:
Header
Payload
Signature
JWTs are often used in authentication flows, where a user logs in and receives a JWT
token, which is then sent with subsequent requests to access protected resources. The
server can validate the token to authenticate the user and authorize access to the
requested resources based on the claims within the token. [14]
30
Chapter 5: Implementation and Testing
5.1. Implementation:
5.1.1. Tools Used:
The following technologies and tools were used for the development of the system:
Draw.io
Gantt Pro
5.1.1.1. React:
React.js forms an integral component of the MERN stack, offering a robust front-end
framework suitable for crafting user-friendly interfaces within an inventory
management system. React's virtual DOM efficiently manages UI updates, ensuring
optimal performance even with dynamic data interactions typical in inventory systems.
It provided access to various libraries and tools for tasks such as state management
(e.g., Redux), routing (e.g., React Router), and UI design (e.g., Material-UI), which
helped us in creating visually appealing and feature-rich inventory interfaces. React's
declarative approach simplifies UI synchronization with data stored in MongoDB,
enabling seamless integration with the back-end API powered by Node.js and
Express.js. [15]
5.1.1.2. MongoDb:
MongoDB functions as the backend database in a MERN stack for an inventory
management system, provides a flexible and scalable way to store and handle inventory
data. The system effectively manages large volumes of data and adjust to changing
inventory item properties due to MongoDB's document-oriented structure. Express.js
makes it easier to create RESTful APIs that communicate with MongoDB, allowing
front- end and back-end applications to work together seamlessly. On the client side,
React.js offers an intuitive and dynamic inventory management interface with real-time
updates and responsive interactions. The backend server is powered by Node.js, which
enables quick and asynchronous request processing. The MERN stack, which uses
MongoDB to ensure flexibility, scalability, performance, and ease of development that
creates a reliable and contemporary inventory system.[16]
31
5.1.1.3. Node.JS:
A key component of the MERN stack used to create an inventory management system is
Node.js. The backend runtime environment in this design is Node.js, which allows the
frontend React.js application and the MongoDB database to communicate with each other
without any problems. As Node.js is good at managing asynchronous activities it helps in
real-time updates and interactions, like order processing and notifications. Node.js's event-
driven, non-blocking I/O approach guarantees effective use of system resources, producing
high-performance backend operations that are essential for managing several concurrent user
requests and massive volumes of inventory data. Additionally, Node.js has a vibrant
ecosystem of packages and modules through npm (Node Package Manager), which makes it
simple to integrate different libraries for tasks like data validation, authentication, and
authorization. Overall, Node.js improves a MERN-based inventory management system's
scalability, reactivity, and flexibility, makes it an appealing option for companies looking to
develop reliable and effective inventory solutions. [17]
5.1.1.4 Express.JS:
Express.js is an essential component of a MERN stack for an inventory management
system since it serves as the backend framework. Express.js provides a lightweight,
flexible, and efficient web application framework for building the server-side logic
and APIs required to manage inventory data. We can quickly and simply establish
RESTful APIs to carry out CRUD operations on inventory items stored in MongoDB
by utilizing Express.js. Express.js streamlines request handling, middleware
integration, and routing, making it easier to design and maintain backend
components. [16]
User Module:
Within the user module of the inventory management system, an account creation
process is initiated through a registration form. This form requires users to input
32
their name, email address, phone number, password, and a user image. It's essential
for users to fill all input fields accurately to avoid encountering error messages. Upon
completion of the registration form with correct details, user data is stored in the
MongoDB directory. Subsequently, users can log in to the system once their account
has been successfully created.
Admin Module:
Authentication within the Admin Module relies on email and password credentials
stored in MongoDB. Upon entering the correct email and password, the admin gains
access to their dashboard. Within this dashboard, the admin can perform various tasks,
including adding products to the system and reviewing. Additionally, the admin can
log out of the system by selecting the logout button.
Login Module:
In the Login Module, users gain access to the system upon successful creation of an
account. This module comprises two essential fields: an email field and a password
field. User authentication occurs through MongoDB, where the entered email and
password must match the stored credentials for login to be successful. Users
exclusively utilize their email and password for login. It is imperative that users input
the correct email and password combination for system access. In case of incorrect
input, an error message is generated, prompting users to enter the correct credentials
for login.
5.2. Testing:
Test Environment
Table 5.1: Test Environment Table
33
5.2.1. Test Cases for Unit Testing:
Test creating a new user account:
Test case: Create a new account
Test objective: To register into the system
Test description: To create new user to perform task
Requirements verified: New user
Test setup:
Table 5.2: Test Environment for Creating New Account Table
Create new account by user with old email Generates an error message
but
new password and username
34
Authentication and verification:
Test case: Validation of the username and password
Test objective: To check the name of the user
Test description: To check whether the username and password of the user is valid or
not
Requirements verified: Valid user
Test setup:
Table 5.4: Authentication and Verification of User Table
Action Expected Result
35
Test setup:
Table 5.6: Test to updating items Table
Action Expected Result
36
Test description: To check the Page Load Time, Data Rendering Time, User Interaction
Responsiveness, Scrolling Performance and Sorting Performance
Requirements verified: System
Test setup:
Table 5.9: UI testing Table
The data is rendered from database to the The data is loaded as soon as the
system page is loaded
Buttons, links, and input fields is checked Buttons, links and input field works
as their designated workflow
Product list and vendor list is sorted The list is presented alphabetically
Test data integrity by verifying that data is stored, retrieved, and updated
correctly in the database:
Test case: Integrity test of data
Test objective: Verify the data entered by user
Test description: To check whether the data is same as the user entered or not
Requirements verified: Valid user/ data
Test setup:
Table 5.10: Integrity test of data Table
37
Test authentication and authorization mechanisms to ensure that only authorized
users can access the system:
Test case: Authentication of user
Test objective: authentication mechanism for user
Test description: To check credentials of user for authentication
Requirements verified: Valid user
Test setup:
Test error handling mechanisms to ensure that appropriate error messages are
displayed to users:
Test case: Test for error handling
Test objective: Error messages for inappropriate details
Test description: To check the error messages for in appropriate details
Requirements verified: Valid user
Test setup:
Table 5.12: Error handling test Table
The unique token is compared by the system Token match, Login successful.
rom database
38
Test report bug functionality to send mail for feedback:
Test case: Test for report bug
Test objective: Report bug functionality test
Test description: To check the report bug functionality for user to send mail
Requirements verified: Valid user
Test setup:
Feedback is given by the fields of subject The feedback is sent by gmail to the
and super admin.
message is entered by user
39
Chapter 6: Conclusion and Future
Recommendation
6.1. Conclusion:
In conclusion, this system solves the issues of static sorting criteria, a lack of search
fields and handles duplicate entries of users. By implementing dynamic sorting
algorithms and expanding search capabilities, organizations enhance stock decisions
and improve overall inventory management efficiency. Furthermore, implementing
methods to remove redundant data will make operations faster, resulting in improved
organization of stock management. Overall, investing in modern inventory
management solutions that address these issues paves the way for improved
efficiency, cost savings, and competitive advantage in today's dynamic market
landscape. This project is successfully implemented with all the features mentioned
in the system requirements specifications that provide appropriate information to
users according to the chosen service.
40
References
[2] P.Brans,"fuzzysearch,"[Online].Available:https://www.techtarget.com/whatis/
definiti on/fuzzy-search?
fbclid=IwAR1jxCydDTSJZayrTbvaiMsAT30eW7z7lYKgz-
5GH_2VdH7cvojwRw_dyq8#:~:text=A%20fuzzy%20search%20is
%20performed,the%20top%20of%20the%20list.
[3] "Plutora," [Online]. Available: https://www.plutora.com/blog/incremental-
model- what-and-how-to-implement-it.
[7] C.V.M.Macas,J.A.E.Aguirre,R.Arcentales-CarriónandM.Peña,"Inventory
managementforretailcompanies: A literature review and current trends," 2021.
[Online].Available: https://ieeexplore.ieee.org/document/9447350/authors#authors.
41
[9] D. J. P. P. J. Harsh Soni, "ANALYZING INVENTORY MATERIAL," 2016.
[Online].Available:https://ijariie.com/AdminUploadPdf/
ANALYZING_INVENTORY_MATERIALMANAGEMENT_CONTROLTEC
HNIQUE_ON_RESIDENTIALCONSTRUCTION_PROJECT_ijariie2221.pdf?
fbclid=IwAR2_0ccHDL1ue_yH6k
ac5mKXxlW293ZFWiYZH9ykkyGOghJPL6_Mgfehe8.
SYSTEM,"2012.[Online].Available:https://www.researchgate.net/publication/
280311103_FUZZY_BASED_INVENTORY_MANAGEMENT_SYSTEM?
fbclid=IwAR3vu66xWJLpcJ5OK6bdBG1-KBv_6pBzf YLy56Rh7 1qnqovm9X
3w9q i3c.
[11] H. Erden, "Agricultural Inventory Management System," 2015. [Online].
Available: https://ieeexplore.ieee.org/document/7248152/authors#authors.
[18] "Scribd,"2009.[Online].Available:https://www.scribd.com/doc/22286019/
42
project-report-on-sales-andinventorymanagementSystem?
fbclid=IwAR3PRH1Dz9YzTa7 a-
GADjj5eoyCTNhZgnKqEWHH5m09zqagF16TD_BAO8R4.
[19] K. Wong, "Sales and Inventory System Documentation Chapter 2," 2019.
[Online]. Available: https://itsourcecode.com/fyp/computerized-sales-and-
inventory-system-thesischapter2/?fbclid=IwAR2oyB2C aWCYa4Eg91e22 VFBh
ogq5_C2k9MaexRuoh cO199UAFnJz0GBLtE#google_vignette.
[21] "Express.jsTutorial,"[Online].Available:https://www.geeksforgeeks.org/
express-js/?
fbclid=IwAR24Xe0Jw2lzVJsamSmBxTrUGkwOKkZW6JsGGY3wkpZ8Y XX49
TsRl e_uRUk.
43
Appendix
44
45
46
47
48
Quick Sort:
const quickSort
= (arr) =>
{ if
(arr.length
<= 1)
{ return arr;
}
const pivot =
arr[arr.length - 1].name;
const left = []; const
right = [];
49
rr[i]);
}
};
Fuzzy Search:
};
} else {
}, [searchTerm, vendorList]);
Add product:
50
createProduct, selectIsLoading,
} from "../../redux/features/product/productSlice";
const initialState = {
name: "",
category: "",
quantity: "",
price: "",
};
const { name, category, price, quantity } = product; const handleInputChange = (e) =>
{
};
};
51
const sku = letter + "-" + number; return sku;
};
console.log(...formData);
await
dispatch(createProduct(formdata));
navigate("/dashboard");
};
return (
<div>
<ProductForm product={product}
productImage={productImage} imagePreview={imagePreview}
description={description}
setDescription={setDescription} handleInputChange={handleInputChange}
handleImageChange={handleImageChange} saveProduct={saveProduct}
/>
</div>
);
};
export default
AddProduct;
52
Login:
password: "",
};
};
if (!validateEmail(email)) {
53
return toast.error("Please enter a valid email");
const userData = {
email, password,
};
setIsLoading(true); try {
} catch (error) {
setIsLoading(false);
};
return (
<Card>
<div className={styles.form}>
<div className="--flex-center">
</div>
<h2>Login</h2>
<form onSubmit={login}>
<input type="email"
54
onChange={handleInputChange}
/>
<input type="password"
onChange={handleInputChange}
/>
</button>
</form>
<span className={styles.register}>
<Link to="/">Home</Link>
<Link to="/register">Register</Link>
</span>
</div>
</Card>
</div>
);
};
export default
Login;
Register:
import React, { useState } from "react"; import styles from "./auth.module.scss";
55
import { registerUser, validateEmail } from "../../services/authService";
import { useDispatch } from "react-redux";
import { Link, useNavigate } from "react-router-dom";
import { SET_LOGIN, SET_NAME } from "../../redux/features/auth/authSlice";
import Loader from "../../components/loader/Loader";
const initialState = { name: "",
email: "",
password: "",
password2: "",
};
};
const register = async (e) => {
password) {
if (password.length < 6) {
56
return toast.error("Passwords must be up to 6 characters");
if (!validateEmail(email)) {
password,
};
setIsLoading(true); try {
// console.log(data);
};
return (
<Card>
<div className={styles.form}>
<div className="--flex-center">
57
<TiUserAddOutline size={35} color="#999" />
</div>
<h2>Register</h2>
<form onSubmit={register}>
<input type="text"
onChange={handleInputChange}
/>
<input type="email"
onChange={handleInputChange}
/>
<input type="password"
onChange={handleInputChange}
/>
<input type="password"
placeholder="Confirm Password"
required name="password2"
value={password2} onChange={handleInputChange}
/>
</button>
</form>
58
<span className={styles.register}>
<Link to="/">Home</Link>
<Link to="/login">Login</Link>
</span>
</div>
</Card>
</div>
);
};
59