Download as pdf or txt
Download as pdf or txt
You are on page 1of 25

Inventory Management System Web Project (Backend using

NodeJS)

A Project Report Submitted in partial fulfillment of the requirements for the


Award of degree (BCA)

2023-2024

Submitted By:
Under the Guidance of:
Name of the Student: Aditya Kumar
Ms.Shailza Aggarwal
University PRN: 2228100885

BHARATI VIDYAPEETH (DEEMED TO BEUNIVERSITY)


CENTER FOR DISTANCE AND ONLINEEDUCATION
Academic Study Center - BVIMR, New Delhi An
ISO 9001:2008 Certified Institute
NAAC Accredited Grade “A” University
Student Undertaking Certificate of Originality

I Aditya Kumar of B.C.A and 4th Semester would like to declare that the project report
entitled "Inventory Management System Web Project" Submitted to Bharati Vidyapeeth
University Pune, School of Distance Education Pune, and Academic Study Centre BVIMR
New Delhi in partial fulfilment of the requirement for the award of the degree.

It is an original work carried out by me under the guidance of Ms. Shailza Aggarwal.

All respected guides, faculty member and other sources have been properly acknowledged
and the report contains no plagiarism.

To the best of my knowledge and belief the matter embodied in this project is a genuine
work done by me and it has been neither submitted for assessment to the University nor to
any other University for the fulfilment of the requirement of the course of study.

Aditya Kumar

Student Name with Signature

i
ABSTRACT

The Inventory Management Application is a full-stack solution developed using Node.js, Express.js, and
MongoDB, aimed at facilitating efficient management of product inventory. The application provides
functionalities for adding, updating, and deleting products, each characterized by its name, price, and
barcode. Leveraging the power of modern web technologies, the backend API handles various routes such as
adding a product, updating product details, and deleting products. MongoDB serves as the database for
storing product information, ensuring scalability and flexibility. Through the implementation of user-friendly
interfaces and streamlined processes, the Inventory Management Application offers businesses an effective
tool to enhance their inventory management processes and optimize operational efficiency.

ii
CONTENTS
S No Topic Page No
1 Chapter-1: Introduction/Problem Definition 1-4
1.1 Problem Definition
1.2 Proposal
1.3 Methodology
1.4 Modules
1.5 Hardware and Software Requirements (Tools)

2 Chapter-2: System Requirements Specification 5-8


2.1 Introduction
2.2 Scope
2.3 Functional Requirement
2.4 Non-Functional Requirement
2.5 Constraints
2.6 Input Output of Each Process

3 Chapter-3: Front-end and Back-end Tools 9-10


3.1 Frontend
3.2 Backend

4 Chapter 4: Interface Design 11-15

6 Chapter 5: Testing 16-17

7 Chapter 6: Summary and Conclusions 18-19

8 20
Chapter 7: References

iii
LIST OF FIGURES

Figure Title Page No


No

Figure 1.01 Product module 3

Figure 4.01 Home Page of Application 11

Figure 4.02 Product Inventory 12

Figure 4.03 Add product 13

Figure 4.04 Successful Insertion 13

Figure 4.05 View Products 14

Figure 4.06 Update Product 14

Figure 4.07 Successful updation 15

Figure 4.08 Deleting Product 15

Figure 5.01 Unit Testing Lifecycle 16

v
Chapter-1:
Introduction/Problem Definition

Introducing our cutting-edge web-based Inventory Management Application – the ultimate


solution for streamlining your inventory operations with efficiency and ease. Say goodbye to
manual tracking and welcome a seamless digital experience designed to optimize your inventory
management processes.

1.1 Problem Definition

Many businesses struggle with manual inventory management processes, leading to inefficiencies, inaccuracies,
and wasted time. Traditional methods like spreadsheets or outdated software systems are prone to errors, making
it challenging to maintain an accurate inventory count.

With our application, you can effortlessly add, update, and delete products with just a few clicks, empowering
you to maintain an accurate and up-to-date inventory at all times. Whether you're a small business or a large
enterprise, our user-friendly interface makes inventory management a breeze for everyone.

Forget the hassle of juggling spreadsheets or dealing with outdated systems. Our application offers a centralized
platform where you can access real-time data, track inventory levels, and make informed decisions to enhance
your business productivity.

Experience the convenience of modern inventory management – try our application today and revolutionize the
way you manage your inventory.

1.2 Proposal
The primary objective of this proposal is to introduce a robust web-based IMS that will streamline your
inventory management processes, enhance accuracy, and improve overall efficiency. By digitizing and
centralizing your inventory operations, we aim to provide real-time insights, optimize stocking levels, and
empower you to make data-driven decisions.

With our application, you can effortlessly add, update, and delete products with just a few clicks, empowering you to
maintain an accurate and up-to-date inventory at all times. Whether you're a small business or a large enterprise, our
user-friendly interface makes inventory management a breeze for everyone.

1
1.3 Methodology

1.3.1 Development: Build the IMS using modern technologies, ensuring scalability, security, and
performance.

1.3.2 Integration: Integrate with existing systems and conduct thorough testing to ensure seamless
data exchange.

1.3.3 Monitoring and Optimization: Continuously monitor system performance, gather feedback,
and make iterative improvements.

1.3.4 Maintenance and Support: Provide ongoing maintenance, support, and updates to ensure
smooth operation and address emerging needs.

Summary: By following this methodology, we ensure a systematic approach to implementing and


optimizing the web-based Inventory Management System, leading to improved efficiency, accuracy, and
business outcomes.

2
1.4 Modules

1.4.1 Product Management Module


 Add, edit, and delete product information.
 Categorize products and assign attributes such as SKU, name, description, price, etc.

This module form the core functionality of the Inventory Management Application, providing users with
comprehensive tools to manage inventory, orders, customers, and suppliers effectively. Depending on specific
requirements, additional modules or customization may be incorporated to meet the unique needs of the business.

Figure: 1.01 Product Module

3
1.5 Hardware and Software Requirements (Tools)

1.5.1 Software Requirements

 Services: - NodeJS, ExpressJS, ReactJS, MongoDB, Mongoose,


Bootstrap for styling, Text editor, Postman for testing API endpoints.
 Browser: - Any Latest Web Browser Like chrome, Microsoft Edge, Safari,
Firefox etc.

1.5.2 Hardware Requirements


1.5.2.1 Minimum 4gb Ram Required
1.5.2.2 Minimum Intel Core i5

4
Chapter 2
System Requirements Specification
1. Introduction:
The Inventory Management Application is a web-based solution designed to help businesses manage their
inventory efficiently. It allows users to add, update, and delete products, as well as view detailed information
about each product.

2. Scope:

The application will have the following key features:


 Add new products with name, price, and barcode.
 Update existing products.
 Delete products.
 View a list of all products.
 View detailed information about each product.

3. Functional Requirements:

3.1. Product Management:


1. Add Product:
 Users can add a new product by providing the product name, price, and barcode.
 Validation: Ensure all fields are filled and the barcode is unique.
2. Update Product:
 Users can update existing products by modifying the product name, price, or barcode.
 Validation: Ensure the barcode is unique after modification.
3. Delete Product:
 Users can delete a product from the inventory.
 Confirmation prompt: Display a confirmation dialog before deleting the product.
4. View Products:
 Users can view a list of all products in the inventory.
 Pagination: Display products in pages with a configurable number of items per page.
 Sorting: Allow sorting products by name, price, or barcode.
5. View Product Details:
 Users can view detailed information about a specific product, including its name, price, and
barcode.
5
3.2. Authentication (Optional):
 Implement user authentication to secure access to the application's functionalities.
 Users can register, login, and logout.
 Authentication middleware: Protect routes that require authentication.

4. Non-functional Requirements:

4.1. Performance:
 The application should handle a large number of products efficiently without significant performance
degradation.
 Response time: Ensure quick response times for CRUD operations.
4.2. Usability:
 The user interface should be intuitive and easy to use, even for users with minimal technical knowledge.
 Use clear and descriptive labels and instructions.
 Provide feedback for user actions, such as success or error messages.
4.3. Security:
 Secure sensitive data, such as user passwords, using encryption techniques like bcrypt.
 Validate user inputs on the server-side to prevent injection attacks and maintain data integrity.
 Implement authentication mechanisms to prevent unauthorized access to the application.
4.4. Reliability:
 Ensure the application is stable and reliable, with minimal downtime.
 Implement error handling mechanisms to gracefully handle errors and prevent application crashes.
 Regular backups: Implement a backup system to prevent data loss.

5. Constraints:

 The application will be developed using Node.js and Express.js for the backend and MongoDB for the
database.
 The frontend will be developed using React.js for the user interface.

6
6 INPUT/OUTPUT OF EACH PROCESS

Input:
The information enter into a system/process through an input device are known as input like text, mouse click
etc.
Output:
The visual, auditory or tactile perceptions provided by the process after processing the provided input are
known as Output.

6.1. Inserting (Creating) Data:


 Input:
 HTTP Method: POST
 Endpoint: /insertproduct
 Body Parameters:
 ProductName (String): Name of the product.
 ProductPrice (Number): Price of the product.
 ProductBarcode (String): Barcode of the product.
 Output:
 Status Code: 201 (Created) on successful creation.
 Response Body: Newly created product object containing all details.

6.2. Getting (Reading) Data:


 Input:
 HTTP Method: GET
 Endpoint: /products
 Output:
 Status Code: 200 (OK) on successful retrieval.
 Response Body: Array of all products in the database.

6.3. Getting (Reading) Individual Data:


 Input:
 HTTP Method: GET
 Endpoint: /products/:id (Replace :id with the actual ID of the product)
 Output:
 Status Code: 200 (OK) on successful retrieval.
 Response Body: Details of the product with the specified ID.

6.4. Editing (Updating) Data:


 Input:
 HTTP Method: PUT
 Endpoint: /updateproduct/:id (Replace :id with the actual ID of the product)
 Body Parameters:
7
 ProductName (String): Updated name of the product.
 ProductPrice (Number): Updated price of the product.
 ProductBarcode (String): Updated barcode of the product.
 Output:
 Status Code: 201 (Created) on successful update.
 Response Body: Updated product object containing all details.

6.5 Deleting Data:


 Input:
 HTTP Method: DELETE
 Endpoint: /deleteproduct/:id (Replace :id with the actual ID of the product)
 Output:
 Status Code: 201 (Created) on successful deletion.
 Response Body: Deleted product object containing all details.

These input and output specifications provide clear documentation for each API endpoint in the Express
router and the corresponding controller functions. They define the expected request parameters and response
formats for interacting with the inventory management application's backend.

8
Chapter 3
Front End and Backend Tools

3.1 Frontend

ReactJS

React.js, often simply referred to as React, is a powerful JavaScript library for building dynamic user
interfaces (UIs) for web applications. Developed by Facebook and released as open-source, React has gained
immense popularity among developers for its simplicity, efficiency, and performance.

React.js empowers developers to create dynamic, interactive, and high-performance web applications with
ease. Its component-based architecture, virtual DOM, declarative syntax, and robust ecosystem make it a
preferred choice for front-end development, powering some of the most popular and widely used web
applications across various industries.
Bootstrap
Bootstrap is a powerful front-end framework for building responsive and mobile-first websites and web
applications. Originally developed by Twitter, Bootstrap has grown into one of the most popular and widely
used frameworks in the web development community due to its ease of use, extensive features, and robust
design components.

Bootstrap is a versatile and user-friendly framework that empowers developers to create responsive, mobile-
first web experiences with speed and efficiency. Whether you're building a simple landing page or a complex
web application, Bootstrap provides the tools and resources you need to bring your ideas to life and deliver
exceptional user experiences.

3.2 Backend
ExpressJS

Express.js, commonly referred to as Express, is a fast, minimalist, and flexible web application framework for
Node.js. It is designed to simplify the process of building server-side web applications and APIs by providing a
robust set of features and utilities.

Express.js is a versatile and powerful web application framework that simplifies the process of building server-
side web applications and APIs with Node.js. Its minimalist design, flexible architecture, rich feature set, and
vibrant ecosystem make it a popular choice among developers for building scalable, maintainable, and efficient
web applications.

9
NodeJS

Node.js revolutionized web development by introducing a non-blocking, event-driven architecture, which makes it
lightweight and efficient, particularly for I/O-heavy operations. This architecture enables Node.js to handle a large
number of concurrent connections with minimal overhead, making it well-suited for building real-time web
applications, APIs, microservices, and other networked applications.

Node.js is a powerful, open-source, server-side JavaScript runtime environment built on Chrome's V8 JavaScript
engine. It allows developers to build scalable, high-performance network applications using JavaScript, a language
traditionally used for client-side scripting in web browsers.

Database

MongoDB
MongoDB is built on a distributed architecture, making it highly scalable and resilient to meet the demands of
today's data-intensive applications. It provides horizontal scalability through sharding, allowing data to be
distributed across multiple servers or clusters to handle growing workloads and ensure high availability.

MongoDB is a versatile and scalable NoSQL database management system that empowers developers to
build modern, data-driven applications with ease. Its flexible schema design, powerful query language, and
rich feature set make it an ideal choice for a wide range of use cases, from mobile and web applications to big
data analytics and IoT (Internet of Things) solutions.

Mongoose

Mongoose is an elegant MongoDB object modeling tool designed for Node.js. It provides a straightforward
schema-based solution for modeling application data and interacting with MongoDB databases, making it easier
for developers to work with MongoDB in Node.js applications.

10
Chapter 4
Interface Design

4.1 Input Design

The following screens will be provided:

Figure 4.01: Home page of the application

11
Figure 4.02: Products Inventory

12
4.2 Add product

This is the place where we can add project.


When we click on Insert Button pop-up window will be triggered with a message that ”Data Inserted”.
After clicking the Insert Button the product will be added to products section.

Figure 4.03: Add Product:

er

Figure 4.04: successful insertion

13
View for adding a new event.

Figure 4.05: View Products

Figure 4.06: Update Product

14
Figure 4.07: successful updation

Pop-up window will be triggered on successful updation of product

Delete Product on clicking Delete button

Figure 4.08 Deleting product

15
Chapter 5
Testing

Unit Testing - Advantages:


 Reduces Defects in the Newly developed features or reduces bugs when changing the existing
functionality.
 Reduces Cost of Testing as defects are captured in very early phase.
 Improves design and allows better refactoring of code.
 Unit Tests, when integrated with build gives the quality of the build as well.

Figure 5.01 Unit Testing Lifecycle

16
Objective:
 To test the functionality of each route handler function.

Test Type:
 Unit Test

Input:
 Mock request object with necessary parameters (e.g., body, params).
 Mock response object

Expected Output:
 For each route handler function, the expected output is a specific HTTP status code and response
body based on the input provided.

Actual Output:
 The actual HTTP status code and response body returned by the route handler function when
called with the provided input.

Result:
 Pass if the actual output matches the expected output for

17
Chapter 6
Summary and Conclusion

The Full stack Inventory Management System is a web application designed to streamline the process
of managing products and inventory. It offers essential functionalities such as creating, updating, and
deleting products, ensuring efficient inventory control.

Backend Technologies: The backend of the system is powered by Express.js and Node.js, providing a
robust and scalable server environment. MongoDB is utilized as the database to store product data,
leveraging the flexibility and scalability of a NoSQL database.

Frontend Technologies: The frontend is developed using React.js, a popular JavaScript library for
building user interfaces, providing a dynamic and interactive user experience. Bootstrap is integrated to
ensure responsive and visually appealing UI elements.

Key Features:
1. Product Management: Users can easily create, update, and delete products, allowing for seamless
management of inventory.
2. Real-time Updates: The system offers real-time updates, ensuring that users have access to the most
current product information.
3. User-friendly Interface: The frontend is designed with user experience in mind, providing an intuitive
interface for easy navigation and interaction.
4. Scalability and Performance: Leveraging the capabilities of Node.js and MongoDB, the system is built
to handle large volumes of data while maintaining high performance.

The Full stack Inventory Management System offers a comprehensive solution for businesses to effectively
manage their inventory, providing the tools and functionalities needed to streamline operations and
optimize efficiency.

18
FUTURE DIRECTIONS

In nutshell, it can summarize that the future scope of the project circle around maintaining and
enhancement can be done:
• In future we can improve the user experience, overall performance experience.
• We can add more features like stock Where user can store stock of the products.
• We can also improve security.
• We can develop Android and iOS app also.
• We can automate most of our working according to future use.

The above mention points are the enhancement, which can be done to increase the applicability and
usage of these projects. I have left all the option open so that if there are any other future requirements
in the system by the user for the enhancement of the system then it is possible to implement them. I
hope this project will serve its purpose for which it is developed.

At the end, it is concluded that we have made effort on the following points:

• A description of the background and context of the project and its relation to the work
already done in the area.
• Made statement of the aim’s objective of the project.

19
Chapter 7
REFERENCES

The references that helped me to complete this project:

• https://react.dev/learn
• https://nodejs.org/en/learn/getting-started/introduction-to-nodejs
• https://www.w3schools.com/js/
• https://mongoosejs.com/docs/
• https://www.mongodb.com/docs/

20

You might also like