Visual Inventory Supply Chain Network 2021-2022 CHAPTER 1 INTRODUCTION 1.1 Supply Chain Management Supply chain management (SCM) is the management of an interconnected network of companies engaged in delivering the final package of products and services required by the end customer. Supply chain management includes all the movement and storage of raw materials, work-in-progress and finished product inventories from the point of origin to the point of consumption (the supply chain). A simple supply chain is made up of several elements linked by the movement of products along it. The supply chain begins and ends with the customer. Supply chain management (SCM) is a set of methods used to efficiently integrate organizational units (suppliers, manufacturers, warehouses and stores) along an SC and coordinate flows (material, information and financial flows) so that goods are produced and distributed at the CS level. the right amount in the right place at the right time To optimize system-wide performance, meeting customer service level requirements. Customer: The customer starts the chain of events when they decide to purchase a product that has been offered for sale by a company. The customer contacts the sales department of the company, which enters the sales order for a specific quantity to be delivered on a specific date. If the product has to be manufactured, the sales order will include a requirement that needs to be fulfilled by the production facility. Planning: The requirement triggered by the customer's sales order will be combined with other orders. The planning department will create a production plan to produce the products to fulfill the customer's orders. To manufacture the products the company will then have to purchase the raw materials needed. Purchasing: The purchasing department receives a list of raw materials and services required by the production department to complete the customer's orders. The purchasing department sends purchase orders to selected suppliers to deliver the necessary raw materials to the manufacturing site on the required date. Dept. Of ETE: M.Tech. (Digital Communication) Page 1 Visual Inventory Supply Chain Network 2021-2022 Inventory: The raw materials are received from the suppliers, checked for quality and accuracy and moved into the warehouse. The supplier will then send an invoice to the company for the items they delivered. The raw materials are stored until they are required by the production department. Production: Based on a production plan, the raw materials are moved inventory to the production area. The finished products ordered by the customer are manufactured using the raw materials purchased from suppliers. After the items have been completed and tested, they are stored back in the warehouse prior to delivery to the customer. Transportation: When the finished product arrives in the warehouse, the shipping department determines the most efficient method to ship the products so that they are delivered on or before the date specified by the customer. When the goods are received by the customer, the company will send an invoice for the delivered products. 1.2 Supply Chain Management levels To ensure that the supply chain is operating as efficient as possible and generating the highest level of customer satisfaction at the lowest cost, companies have adopted Supply Chain Management processes and associated technology. Supply Chain Management has three levels of activities that different parts of the company will focus on: strategic; tactical; and operational. Strategic: At this level, company management will be looking to high level strategic decisions concerning the whole organization, such as the size and location of manufacturing sites, partnerships with suppliers, products to be manufactured and sales markets: Strategic network optimization, including the number, location, and size of warehousing, distribution centers, and facilities. Strategic partnerships with suppliers, distributors, and customers, creating communication channels for critical information and operational improvements such as cross docking, direct shipping, and third-party logistics. Dept. Of ETE: M.Tech. (Digital Communication) Page 2 Visual Inventory Supply Chain Network 2021-2022 Product life cycle management so that new and existing products can be optimally integrated into the supply chain and capacity management activities. Information technology infrastructure to support supply chain operations. Where-to-make and what-to-make-or-buy decisions. Aligning overall organizational strategy with supply strategy. Tactical: Tactical decisions focus on adopting measures that will produce cost benefits such as using industry best practices, developing a purchasing strategy with favored suppliers, working with logistics companies to develop cost effect transportation and developing warehouse strategies to reduce the cost of storing inventory: Sourcing contracts and other purchasing decisions. Production decisions, including contracting, scheduling, and planning process definition. Inventory decisions, including quantity, location, and quality of inventory. Transportation strategy, including frequency, routes, and contracting. Benchmarking of all operations against competitors and implementation of best practices throughout the enterprise. Milestone payments. Focus on customer demand. Operational: Decisions at this level are made each day in businesses that affect how the products move along the supply chain. Operational decisions involve making schedule changes to production, purchasing agreements with suppliers, taking orders from customers and moving products in the warehouse: Daily production and distribution planning, including all nodes in the supply chain. Production scheduling for each manufacturing facility in the supply chain (minute by minute). Demand planning and forecasting, coordinating the demand forecast of all customers and sharing the forecast with all suppliers. Dept. Of ETE: M.Tech. (Digital Communication) Page 3 Visual Inventory Supply Chain Network 2021-2022 Sourcing planning, including current inventory and forecast demand, in collaboration with all suppliers. Inbound operations, including transportation from suppliers and receiving inventory. Production operations, including the consumption of materials and flow of finished goods. Outbound operations, including all fulfillment activities, warehousing and transportation to customers. Order promising, accounting for all constraints in the supply chain, including all suppliers, manufacturing facilities, distribution centers, and other customers. Organizations increasingly find that they must rely on effective supply chains, or networks, to successfully compete in the global market and networked economy. In Peter Drucker's (1998) new management paradigms, this concept of business relationships extends beyond traditional enterprise boundaries and seeks to organize entire business processes throughout a value chain of multiple companies. If a company expects to achieve benefits from their supply chain management process, they will require some level of investment in technology. The backbone for many large companies has been the vastly expensive Enterprise Resource Planning (ERP) suites, such as SAP and Oracle. Since the wide adoption of Internet technologies, all businesses can take advantage of Web-based software and Internet communications. Instant communication between vendors and customers allows for timely updates of information, which is key in management of the supply chain. 1.3 Ruby on Rails Ruby on rails is a web application framework written in Ruby, a dynamic programming language. Ruby on Rails uses the Model-View-Controller (MVC) architecture pattern to organize application programming interpreted; high-level, general-purpose language. A model in a Ruby on Rails framework maps to a table in a database. A controller is the component of Rails that responds to external requests from the web server to the application, and responds to the external request by determining which view file to Dept. Of ETE: M.Tech. (Digital Communication) Page 4 Visual Inventory Supply Chain Network 2021-2022 render. A view in the default configuration of Rails is an erb file. It is typically converted to output html at run-time. It is a dynamic, general-purpose object-oriented programming language. It combines syntax inspired by Perl, also influenced by Eiffel and Lisp. It supports multiple programming paradigms, including functional, object oriented, imperative and reflective has a dynamic type system and automatic memory management. Ruby is a met programming language. Rails are an open source Ruby framework for developing database-backed web applications. The Rails framework was extracted from real-world web applications. Thus it is an easy to use and cohesive framework that's rich in functionality & all layers in Rails are built to work together and use a single language from top to bottom. Everything in Rails (templates to control flow to business logic) is written in Ruby, except for configuration files – YAML 1.4 Motivation As now a day’s there are several products are getting manufactured in industries so that we cannot maintain the each inventory (products) data in hard copy. That’s why in this project we convert hard data to QR code format. There are many moving parts in a project and keeping track of them is a time-consuming process. To overcome those problems a web application called VISN (Visual Inventory Supply Chain Network) was built to reduce the supply chain and asset management timeline in the aerospace industry. VISN automatically tracks the model progress of every inventory and it will maintain tracks using an automatically generated QR code (quick response code). The generated QR code will be attached to the indusial inventory/product. Generated QR code contains the information of each inventory and each inventory will have a unique code and all generated QR codes will be stored in the secure/well-known storage servers to track inventory in the future with generated QR code. The amount of scanned data is composed of the company’s web server. The data are stored in form of QR code with help of the server. Client or user scan the scan the QR assigned on inventory and analyze it. Once we scan the QR code of the inventory we get the details of the inventory when it is manufactured, model name, where it has been placed, etc. Dept. Of ETE: M.Tech. (Digital Communication) Page 5 Visual Inventory Supply Chain Network 2021-2022 1.5 Problem Statement User doesn’t have an access to login into the website. For the same I was supposed to integrate the User Registration and User Login Pages. To create an item there are many other mandatory fields supposed to be filled. For the same I assigned to create Category, Sub Categories and all other item information. After Item creation, the same item should tagged with unique QR code. When QR scans’s it should redirect the item information. Ex: https://moma.projectvison.com/items/:id ( https://moma.projectvisn.com/items/1) Once QR code generated the same information should store in the Postgres SQL database. 1.6 Objectives 1. To Understand Specification of the individual Items or (Inventory). Each Individual Users (Who have ability to access application). 2. To make Items / Parts in an organized way and To make sure users have will have not any other confusion using the items/ parts. 3. To not disclose Items / Parts of information of the directly physically/ visually, we kind of introducing concept called QR. 4. To generate Unique Item name and QR Code to give complete information about the Item. Dept. Of ETE: M.Tech. (Digital Communication) Page 6 Visual Inventory Supply Chain Network 2021-2022 1.5 Organization of Thesis The comprehensive details regarding the chapters and the report's contents are provided in this part. I. Chapter 1: The background, reasons for starting the project, goals, and other project objectives will all be covered in this chapter, which provides a brief explanation of the project's work. In aims and objectives, it mostly covers how the system is more successful, such as how little money is used, making it costefficient, and how quickly processing will occur with correct results. II. Chapter 2: The literature survey that is now in use and functioning is the main topic of discussion in this chapter. III. Chapter 3: Mainly discuss about the some of the definitions, hardware and software details are provided IV. Chapter 4. In this chapter discuss about the existing and propose network infrastructure. V. Chapter 5: discuss how exactly migration take place form older network to new network. Dept. Of ETE: M.Tech. (Digital Communication) Page 7 Visual Inventory Supply Chain Network 2021-2022 CHAPTER 2 LITERATURE REVIEW In paper [1] Ang, JC & Chee, Li & Majid, Hairudin.” The application of webbased inventory management system for small and medium enterprise (SME/SMI”. Inventory system is control management of items that being held by one organization especially in industry sector. A good industry management whereby the organization has sufficient stock of the right quality available at the right time is very important to ensure a well operation of an organization and to avoid loss that might occur. This paper has been written to give a methodology of applying Periodic Review System to analysis the optimal quantity of stock should be order. The aim is producing a webbased inventory management system that able to reduce the cost of organization and also increase their profit. A case study for few furniture and hardware company has been included to demonstrate the proposed methodology. In paper [2] Muyumba, Thomas & Phiri, Jackson. “ A Web based Inventory Control System using Cloud Architecture and Barcode Technology for Zambia Air Force”. Inventory management of spares is one of the activities Zambia Air Force (ZAF) undertakes to ensure optimal serviceability state of equipment to effectively achieve its roles. This obligation could only be made possible by automating the current manual and paper based inventory system. A web based inventory management system using cloud architecture and barcode technology was proposed. A literature review was conducted on three technologies used in the inventory management that is Radio Frequency Identification (RFID), Barcode Technology and Near Field Communication (NFC). A review was also undertaken on the related works to identify the concept that could be adopted in the proposed system. A baseline study was performed to understand the challenges faced by ZAF in the inventory management of spares. The results of the baseline study were analyzed and found that the challenges were attributed to the current manual inventory management system mainly due to human errors, incorrect inventory reporting and pilferage of items. The proposed prototype system was developed and tested and proved to be faster, efficient and more reliable than the manual and paper based system. Dept. Of ETE: M.Tech. (Digital Communication) Page 8 Visual Inventory Supply Chain Network 2021-2022 In paper [3] Ramakrishnan, Parthasarathi & Ma, Yongsheng. Adaptive Supply Chain Systems: IoT Based Conceptual Framework. Internet of Things (IoT) has enhanced the day-to day life of human beings in various fields. Even though the modern industry has gained a phenomenal benefit from IoT, the potential to use these tools in the Supply Chain Management (SCM) and Supply Chain Innovation (SCI) has not been fully explored. Hence this paper investigates the IoT, SCM and SCI. It explores the IoT impact on SCM and develops a conceptual framework that creates a system linking the four aspects of the supply chain (warehouse, supplier, logistics and client) using IoT. This framework demonstrates how IoT could enhance SCM, which helps the members of the supply chain to improve their overall performance through enhanced information sharing, efficient resource utilization and reduced loss of merchandise along the supply chain. The major components of the proposed framework are information collecting devices, the network for transmitting the collected information and the integrated information management system where the information collected is processed and analyzed for use by the end user. Additionally, this framework explores all possible supply chains for the product and suggests an appropriate supply chain primarily based client desires and demands. The ability of the framework to discover the viable su pply chains is accomplished with the aid of data sharing by the suppliers. Finally, the integrating the proposed framework with the existing ERP systems are discussed with the help of a case study In paper [4] Min Qin, XueMei Zhang, HongXia The Research of Supply Chain Management Information System Based on Web, Internet is the biggest carrier of global information resources in 21st century. Domestic enterprises want to join in with product suppliers and customers only through the internet. This is the meaning of supply chain management systems. This paper proposed the solutions based on web model, introduced the web framework model, and analyzed the functional requirements of supply chain management information system in detail. Finally an example of the supply chain management system based on Web is given to illustrate the workflow. In paper [5] Dawei Wang, Yuehwern Yih, PhD School of Industrial Engineering Web-based, Multi-platform, Centralized, Offline Compatible Supply Chain Management System for Emergency Responses The efficiency of humanitarian aid supply chains is Dept. Of ETE: M.Tech. (Digital Communication) Page 9 Visual Inventory Supply Chain Network 2021-2022 critical to effective emergency response. In addition, a sustainable supply chain network facilitates the rapid recovery of devastated areas and provides relief for the affected populations. Thus, an efficient, reliable and sustainable emergency supply chain management system plays a critical role in the humanitarian relief operations. Currently, a typical NGO ERP (enterprise resource planning) system does not address the specific needs of emergency humanitarian relief functions. Without an emergency supply chain management system, the lack of coordination and potential human errors will cause unnecessary delays and wastes in resources, which jeopardizes the safety, and sometimes survival, of affected people. In addition, tracking relief materials from donor resources all the way to distribution to target beneficiaries is important for accountability and transparency. In this project, Purdue University and Catholic Relief Services (CRS) are codesigning a web-based, multi-platform, centralized, offlinecompatible electrical emergency response system. This system is capable of connecting all global warehouses across different country programs, requesting and approving relief materials, checking inventory levels, tracking relief materials from donors to beneficiaries, and automatically generating accounting and beneficiary reports. This application will help NGOs form efficient, reliable and sustainable distribution plans for emergency responses with the most updated information. In paper [6] D. Kozma, P. Varga and C. Hegedüs, "Supply Chain Management and Logistics 4.0 - A Study on Arrowhead Framework Integration," The purpose of this research is twofold. First, to identify the impacts of the Industry 4.0 changes on Supply Chain Management (SCM) and Logistics. Second, to provide principal ideas on how to support these domains from the aspect of the Arrowhead Framework. The new industrial revolution brings many technological innovations, and the production-supporting management areas should be changed accordingly. Regarding the Industry 4.0 terminology, this paper reviews the main changes of Industry 4.0 and the current issues, then introduces new perspectives of SCM and Logistics. It also presents a solution to support the updated terminology through the Arrowhead Framework, which is already proposed for various use-cases throughout the Industrial Internet of Things (IIoT) domain. The operation of the suggested architectural solution is illustrated through an example of a papermaking production process. Dept. Of ETE: M.Tech. (Digital Communication) Page 10 Visual Inventory Supply Chain Network 2021-2022 CHAPTER 3 SYSTEM REQUIREMENT SPECIFICATION To develop a web application using Ruby on Rails Framework, you need to install the following software − Ruby The Rails Framework A Web Server A Database System We assume that you already have installed a Web Server and a Database System on your computer. You can use the WE Brick Web Server, which comes with Ruby. Most websites however use Apache or light TPD web servers in production. Rails works with many database systems, including MySQL, PostgreSQL, SQLite, Oracle, DB2 and SQL Server. Please refer to a corresponding Database System Setup manual to set up your database. Let's look at the installation instructions for Rails on Windows and Linux. Step 1: Check Ruby Version First, check if you already have Ruby installed. Open the command prompt in Linux and type ruby -v. If Ruby responds, and if it shows a version number at or above 2.2.2, then type gem --version. If you don't get an error, skip Install Ruby step. Otherwise, we'll install a fresh Ruby. Step 2: Install Ruby If Ruby is not installed, then download an installation package from rubyinstaller.org. And run the resulting installer. This is an exe file rubyinstaller-2.2.2.x.exe and will be installed in a single click. It's a very small package, and you'll get Ruby Gems as well along with this package. Please check the Release Notes for more detail. Step 3: Install Rails Install Rails − With Ruby gems loaded, you can install all of Rails and its dependencies using the following command through the command line − C :\> gem install rails Dept. Of ETE: M.Tech. (Digital Communication) Page 11 Visual Inventory Supply Chain Network 2021-2022 Step 4: Check Rails Version Use the following command to check the rails version. C:\> rails -v Output Rails 4.2.4 Rails Installation on Linux We are installing Ruby On Rails on Linux using rbenv. It is a lightweight Ruby Version Management Tool. The rbenv provides an easy installation procedure to manage various versions of Ruby, and a solid environment for developing Ruby on Rails applications. Follow the steps given below to install Ruby on Rails using rbenv tool. Step 1: Install Prerequisite Dependencies First of all, we have to install git - core and some ruby dependence that help to install Ruby on Rails. Use the following command for installing Rails dependencies using yum. Step 2: Install rbenv Now we will install rbenv and set the appropriate environment variables. Use the following set of commands to get rbenv for git repository. tp> git clone git://github.com/sstephenson/rbenv.git .rbenv tp> echo 'export PATH = "$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile tp> echo 'eval "$(rbenv init -)"' >> ~/.bash_profile tp> exec $SHELL tp> git clone git://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build tp> echo 'export PATH = "$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' << ~/.bash_profile tp> exec $SHELL Step 3: Install Ruby Before installing Ruby, determine which version of Ruby you want to install. We will install Ruby 2.2.3. Use the following command for installing Ruby. Dept. Of ETE: M.Tech. (Digital Communication) Page 12 Visual Inventory Supply Chain Network 2021-2022 tp> rbenv install -v 2.2.3 Use the following command for setting up the current Ruby version as default. tp> rbenv global 2.2.3 Use the following command to verify the Ruby version. tp> ruby -v Output Ruby 2.2.3p173 (2015-08-18 revision 51636) [X86_64-linux] Ruby provides a keyword gem for installing the supported dependencies; we call them gems. If you don't want to install the documentation for Ruby-gems, then use the following command. tp> echo "gem: --no-document" > ~/.gemrc Thereafter, it is better to install the Bundler gem, because it helps to manage your application dependencies. Use the following command to install bundler gem. tp> gem install bundler Step 4: Install Rails Use the following command for installing Rails version 4.2.4. tp> install rails -v 4.2.4 Use the following command to make Rails executable available. tp> rbenv rehash Use the following command for checking the rails version. tp> rails -v Output tp> Rails 4.2.4 Ruby on Rails framework requires JavaScript Runtime Environment (Node.js) to manage the features of Rails. Next, we will see how we can use Node.js to manage Asset Pipeline which is a Rails feature. Step 5: Install JavaScript Runtime Let us install Node.js from the Yum repository. We will take Node.js from EPEL yum repository. Use the following command to add the EPEL package to the yum repository. Dept. Of ETE: M.Tech. (Digital Communication) Page 13 Visual Inventory Supply Chain Network 2021-2022 tp> sudo yum -y install epel-release Use the following command for installing the Node.js package. tp> sudo yum install nodejs Congratulations! You are now on Rails over Linux. Step 6: Install Database By default, Rails uses sqlite3, but you may want to install MySQL, PostgreSQL, or other RDBMS. This is optional; if you have the database installed, then you may skip this step and it is not mandatory that you have a database installed to start the rails server. For this tutorial, we are using PostgreSQL database. Therefore use the following commands to install PostgreSQL. tp> sudo yum install postgresql-server postgresql-contrib Accept the prompt, by responding with a y. Use the following command to create a PostgreSQl database cluster. tp> sudo postgresql-setup initdb Use the following command to start and enable PostgreSQL. tp> sudo systemctl start postgresql tp> sudo systemctl enable postgresql You can verify if everything is set up according to your requirements or not. Use the following command to create a demo project. tp> rails new demo Dept. Of ETE: M.Tech. (Digital Communication) Page 14 Visual Inventory Supply Chain Network 2021-2022 Figure 3.1 bundle install It will generate a demo rail project; we will discuss about it later. Currently we have to check if the environment is set up or not. Next, use the following command to run WEBrick web server on your machine. tp> cd demo tp> rails server It will generate auto-code to start the server Now open your browser and type the following − http://localhost:3000 Dept. Of ETE: M.Tech. (Digital Communication) Page 15 Visual Inventory Supply Chain Network 2021-2022 Figure 3.2 welcome board window 3.1 Architecture of Web-based Inventory Management System Figure 3.3: Architecture of Web-based Inventory Management System Above figure 3.1 shows the architecture of the VISN (visual inventory supply chain network) application. It consists of client, server, database, QR code, & postgre SQL. As displayed in the figure 1 it has essentially maker who sends the stock printed version of information to the client. Then the client will switch the information over completely to PDF, that changed over information is gotten through Gmail, with assistance of server Dept. Of ETE: M.Tech. (Digital Communication) Page 16 Visual Inventory Supply Chain Network 2021-2022 and information base, the VISN a web application will produce the QR code. The created QR code is put away in the PostgreSQL that connection is shared to the maker. There are many moving parts in a project and keeping track of them is a time-consuming process. To overcome those problems a web application called VISN (Visual Inventory Supply Chain Network) was built to reduce the supply chain and asset management timeline in the aerospace industry. VISN automatically tracks the model progress of every inventory and it will maintain tracks using an automatically generated QR code (quick response code).The generated QR code will be attached to the indusial inventory/product. Generated QR code contains the data of each stock and each stock will have a unique code and all generated QR codes will be stored in the secure/well-known storage servers to track inventory in the future with generated QR code. The amount of scanned data is composed of the company’s web server. The data are stored in form of QR code with help of the server. Client or user scan the scan the QR assigned on inventory and analyze it. Once we scan the Quick Response code of the inventory, we get the details of the inventory when it is manufactured, model name, where it has been placed, etc. PostgreSQL might be a strong, open stockpile object-social data framework that purposes and broadens the SQL language joined with a few choices that securely store and scale the first troublesome information jobs. The beginnings of PostgreSQL start to 1986 as a piece of the POSTGRES project at the University of CA at Berkeley and have very thirty years of dynamic improvement on the center stage. PostgreSQL has procured a strong name for its very much attempted plan, dependableness, information honesty, solid list of capabilities, extensibility, and furthermore the commitment of the open stockpile local area behind the bundle to methodically convey per formant and imaginative arrangements. PostgreSQL runs on all major in activity frameworks, has been ACIDagreeable starting around 2001, and has strong additional items like the famous Postages geospatial data extender. It’s nothing unexpected that PostgreSQL has turned into the ASCII text document on-line information base of determination for a few people and associations. After storing in the PostgreSQL there is a storage link that is shared to the client then the client has given a access link once they logging in with the accessed mail id they easily alter the information of the inventory and they easily generate the qr code by adding the item name and item description and generate the qr code. After storing the data in PostgreSQL the link is shared via Gmail to the client once the client receives the link with his access the client will log in them he will scan the QR code and he has only person to access the information of the QR code or us. Dept. Of ETE: M.Tech. (Digital Communication) Page 17 Visual Inventory Supply Chain Network 2021-2022 CHAPTER 4 PROPOSED METHODOLOGY The above flow chart shows the proposed methodology of the entire project, first we have to create the sign up credentials and login data. Then create the categories by giving the specific name of the indivual inventory and by saving the categories we have to create the item description of the indivual inventory and generate the QR code for the individual inventory and store in the data base. Fig.4.1 The flow chart for proposed methodology As shown in the figure 4.1, it contains procedure to generating the QR code. Those steps are explained in details in below section as follows: I. II. III. User authentication procedure Creating a Category Sub category & item creation Generating the QR code Dept. Of ETE: M.Tech. (Digital Communication) Page 18 Visual Inventory Supply Chain Network I. 2021-2022 User authentication procedure For user authentication procedure these are the below procedures to generate the user authentication. Those procedures are listed one by one. Step1: Build user model Step 2: Add Confirmation and Password Columns to Users Table Step 3: Create Sign Up Pages Step 4: Create Login Page Step 5: Add Password Reset Functionality Step 6: Build Password Reset Forms Step 1: Build User Model 1. Generate User model. Algorithm: rails g model User email: string # db/migrate/[timestamp]_create_users.rb class CreateUsers < ActiveRecord::Migration[6.1] def change create_table :users do |t| t.string :email, null: false t.timestamps end add_index: users, :email, unique: true end end 2. Run migrations. Algorithm: rails db:migrate 3. Add validations and callbacks. # app/models/user.rb class User < ApplicationRecord before_save :downcase_email Dept. Of ETE: M.Tech. (Digital Communication) Page 19 Visual Inventory Supply Chain Network 2021-2022 validates :email, format: {with: URI::MailTo::EMAIL_REGEXP}, presence: true, uniqueness: true private def downcase_email self.email = email.downcase end end Step 2: Add Confirmation and Password Columns to Users Table 1. Create migration. Algorithm: rails g migration add_confirmation_and_password_columns_to_users confirmed_at:datetime password_digest:string 2. Update the migration. # db/migrate/[timestamp]_add_confirmation_and_password_columns_to_users.rb class AddConfirmationAndPasswordColumnsToUsers < ActiveRecord::Migration[6.1] def change add_column :users, :confirmed_at, :datetime add_column :users, :password_digest, :string, null: false end end The confirmed at column will be set when a user confirms their account. This will help us determine who has confirmed their account and who has not. The password digest column will store a hashed version of the user's password. This is provided by the has_secure_password method. 3. Run migrations. rails db:migrate 4. Enable and install BCrypt. This is needed to use has_secure_password. # Gemfile gem 'bcrypt', '~> 3.1.7' bundle install Dept. Of ETE: M.Tech. (Digital Communication) Page 20 Visual Inventory Supply Chain Network 2021-2022 5. Update the User Model. # app/models/user.rb class User < ApplicationRecord CONFIRMATION_TOKEN_EXPIRATION10.minutes has_secure_password before_save :downcase_email validates :email, format: {with: URI::MailTo::EMAIL_REGEXP}, presence: true, uniqueness: true def confirm! update_columns(confirmed_at: Time.current) end def confirmed? confirmed_at.present? end def generate_confirmation_token signed_id expires_in: CONFIRMATION_TOKEN_EXPIRATION, purpose: :confirm_email end def unconfirmed? !confirmed? end private def downcase_email self.email = email.downcase end end Step 3: Create Sign up Pages 1. Create a simple home page since we'll need a place to redirect users to after they sign up. Algorithm : rails g controller StaticPages home 2. Create Users Controller. Algorithm : rails g controller Users Dept. Of ETE: M.Tech. (Digital Communication) Page 21 Visual Inventory Supply Chain Network 2021-2022 # app/controllers/users_controller.rb class UsersController < ApplicationController def create @user = User.new(user_params) if @user.save redirect_to root_path, notice: "Please check your email for confirmation instructions." else render :new, status: :unprocessable_entity end end def new @user = User.new end private def user_params params.require(:user).permit(:email, :password, :password_confirmation) end end 3. Build sign-up form. <!-- app/views/shared/_form_errors.html.erb --> <% if object.errors.any? %> <ul> <% object.errors.full_messages.each do |message| %> <li><%= message %></li> <% end %> </ul> <% end %> <!-- app/views/users/new.html.erb --> <%= form_with model: @user, url: sign_up_path do |form| %> <%= render partial: "shared/form_errors", locals: { object: form.object } %> <div> <%= form.label :email %> <%= form.email_field :email, required: true %> </div> <div> <%= form.label :password %> <%= form.password_field :password, required: true %> </div> <div> <%= form.label :password_confirmation %> Dept. Of ETE: M.Tech. (Digital Communication) Page 22 Visual Inventory Supply Chain Network 2021-2022 <%= form.password_field :password_confirmation, required: true %> </div> <%= form.submit "Sign Up" %> <% end %> 4. Update routes. # config/routes.rb Rails.application.routes.draw do root "static_pages#home" post "sign_up", to: "users#create" get "sign_up", to: "users#new" end Step 4: create log in page 1. Generate Sessions Controller. Algorithm: rails g controller Sessions # app/controllers/sessions_controller.rb class SessionsController < ApplicationController before_action :redirect_if_authenticated, only: [:create, :new] def create @user = User.find_by(email: params[:user][:email].downcase) if @user if @user.unconfirmed? redirect_to new_confirmation_path, alert: "Incorrect email or password." elsif @user.authenticate(params[:user][:password]) login @user redirect_to root_path, notice: "Signed in." else flash.now[:alert] = "Incorrect email or password." render :new, status: :unprocessable_entity end else flash.now[:alert] = "Incorrect email or password." render :new, status: :unprocessable_entity end end def destroy logout redirect_to root_path, notice: "Signed out." end Dept. Of ETE: M.Tech. (Digital Communication) Page 23 Visual Inventory Supply Chain Network 2021-2022 2. Update routes. # config/routes.rb Rails.application.routes.draw do ... post "login", to: "sessions#create" delete "logout", to: "sessions#destroy" get "login", to: "sessions#new" end 3. Add sign-in form. <!-- app/views/sessions/new.html.erb --> <%= form_with url: login_path, scope: :user do |form| %> <div> <%= form.label :email %> <%= form.email_field :email, required: true %> </div> <div> <%= form.label :password %> <%= form.password_field :password, required: true %> </div> <%= form.submit "Sign In" %> <% end %> Step 5: Add Password Reset Functionality 1. Update User Model. # app/models/user.rb class User < ApplicationRecord ... PASSWORD_RESET_TOKEN_EXPIRATION = 10.minutes ... def generate_password_reset_token signed_id expires_in: PASSWORD_RESET_TOKEN_EXPIRATION, :reset_password end ... def send_password_reset_email! password_reset_token = generate_password_reset_token UserMailer.password_reset(self, password_reset_token).deliver_now end ... end Dept. Of ETE: M.Tech. (Digital Communication) purpose: Page 24 Visual Inventory Supply Chain Network 2021-2022 2. Update User Mailer. # app/mailers/user_mailer.rb class UserMailer < ApplicationMailer ... def password_reset(user, password_reset_token) @user = user @password_reset_token = password_reset_token mail to: @user.email, subject: "Password Reset Instructions" end end <!-- app/views/user_mailer/password_reset.html.erb --> <h1>Password Reset Instructions</h1> <%= link_to "Click here to edit_password_url(@password_reset_token) %> reset your password.", <!-- app/views/user_mailer/password_reset.text.erb --> Password Reset Instructions <%= edit_password_url(@password_reset_token) %> Step 6: Build Password Reset Forms 1. Create Passwords Controller. rails g controller Passwords # app/controllers/passwords_controller.rb class PasswordsController < ApplicationController before_action :redirect_if_authenticated def create @user = User.find_by(email: params[:user][:email].downcase) if @user.present? if @user.confirmed? @user.send_password_reset_email! redirect_to root_path, notice: "If that user exists we've sent instructions to their email." else redirect_to new_confirmation_path, alert: "Please confirm your email first." end else redirect_to root_path, notice: "If that user exists we've sent instructions to their email." Dept. Of ETE: M.Tech. (Digital Communication) Page 25 Visual Inventory Supply Chain Network 2021-2022 end end def edit @user = User.find_signed(params[:password_reset_token], purpose: :reset_password) if @user.present? && @user.unconfirmed? redirect_to new_confirmation_path, alert: "You must confirm your email before you can sign in." elsif @user.nil? redirect_to new_password_path, alert: "Invalid or expired token." end end def new end def update @user = User.find_signed(params[:password_reset_token], purpose: :reset_password) if @user if @user.unconfirmed? redirect_to new_confirmation_path, alert: "You must confirm your email before you can sign in." elsif @user.update(password_params) redirect_to login_path, notice: "Sign in." else flash.now[:alert] = @user.errors.full_messages.to_sentence render :edit, status: :unprocessable_entity end else flash.now[:alert] = "Invalid or expired token." render :new, status: :unprocessable_entity end end private def password_params params.require(:user).permit(:password, :password_confirmation) end end The create action will send an email to the user containing a link that will allow them to reset the password. The link will contain their password_reset_token which is unique and expires. Note that we call downcase on the email to account for case sensitivity when searching.You'll remember that the password_reset_token is a signed_id, and is set to Dept. Of ETE: M.Tech. (Digital Communication) Page 26 Visual Inventory Supply Chain Network 2021-2022 expire in 10 minutes. You'll also note that we need to pass the method purpose: :reset_password to be consistent with the purpose that was set in the generate_password_reset_token method.Note that we return Invalid or expired token. if the user is not found. This makes it difficult for a bad actor to use the reset form to see which email accounts exist on the application.The edit action simply renders the form for the user to update their password. It attempts to find a user by their password_reset_token. You can think of the password_reset_token as a way to identify the user much like how we normally identify records by their ID. However, the password_reset_token is randomly generated and will expire so it's more secure.The new action simply renders a form for the user to put their email address in to receive the password reset email.The update also ensures the user is identified by their password_reset_token. It's not enough to just do this on the edit action since a bad actor could make a PUT request to the server and bypass the form. If the user exists and is confirmed we update their password to the one they will set in the form. Otherwise, we handle each failure case differently. 2. Update Routes. # config/routes.rb Rails.application.routes.draw do ... resources :passwords, only: [:create, :edit, :new, :update], param: :password_reset_token end We add param: :password_reset_token as a named route parameter so that we can identify users by their password_reset_token and not id. This is similar to what we did with the confirmations routes and ensures a user cannot be identified by their ID. 3. Build forms. <!-- app/views/passwords/new.html.erb --> <%= form_with url: passwords_path, scope: :user do |form| %> <%= form.email_field :email, required: true %> <%= form.submit "Reset Password" %> <% end %> <!-- app/views/passwords/edit.html.erb --> Dept. Of ETE: M.Tech. (Digital Communication) Page 27 Visual Inventory Supply Chain Network 2021-2022 <%= form_with url: password_path(params[:password_reset_token]), scope: :user, method: :put do |form| %> <div> <%= form.label :password %> <%= form.password_field :password, required: true %> </div> <div> <%= form.label :password_confirmation %> <%= form.password_field :password_confirmation, required: true %> </div> = form.submit "Update Password" %> <% end %> Figure 4.2 welcome user sign window Figure 4.3 user log in log out window Dept. Of ETE: M.Tech. (Digital Communication) Page 28 Visual Inventory Supply Chain Network II. 2021-2022 Creating a Category Sub category & item creation The below algorithm shows the creating the category and sub category Algorithm: class Category < ActiveRecord::Base has_many :subcategories, : class_name => "Category", :foreign_key => "parent_id", dependent => :destroy belongs_to :parent_category, : class_name => "Category", :optional => true end To create the table use this migration: class CreateCategories < ActiveRecord::Migration def self.up create_table :category do |t| t.string :text # table name should be in plural t.references :parent_category, foreign_key: { to_table: :categories } t.timestamps end end end In your controller use def index @category = nil @categories = Category.find(:all, :conditions => {:parent_id => nil } ) end to find all categories without a parent, ie the main categories To find all sub-categories of any given category use: # Show subcategory def show # Find the category belonging to the given id @category = Category.find(params[:id]) # Grab all sub-categories @categories = @category.parent_category # We want to reuse the index renderer: render :action => :index end To add a new category use: def new Dept. Of ETE: M.Tech. (Digital Communication) Page 29 Visual Inventory Supply Chain Network 2021-2022 @category = Category.new @category.parent_category = Category.find(params[:id]) unless params[:id].nil? end It creates a new category and sets the parent category, if it is provided (otherwise it becomes a Main Category) Note: I used the old rails syntax (due to laziness), but for modern versions of Rails the principle is the same. In your categories/index.html.erb you can use something like this: <h1><%= @category.nil? ? 'Main categories' : category.text %></h1> <table> <% @categories.each do |category| %> <tr> <td><%= link_to category.text, category_path(category) %></td> <td><%= link_to 'Edit', edit_category_path(category) unless category.parent.nil? %></td> <td><%= link_to 'Destroy', category_path(category), :confirm => 'Are you sure?', :method => :delete unless category.parent.nil? %></td> </tr> <% end %> </table> <p> <%= link_to 'Back', @category.parent_category.nil? ? categories_path : category_path(@category.parent_category) unless @category.nil? %> <%= link_to 'New (sub-category', new_category_path(@category) unless @category.nil? %> </p> It shows the name of the selected category (or Main Category) and all of its subcategories (in a nice table). It links to all sub-categories, showing a similar layout, but for the sub-category. In the end it adds a 'new sub-category' link and a 'back' link. As a reference of these algorithm and the syntax, we written a code that is shown in the below figure. Dept. Of ETE: M.Tech. (Digital Communication) Page 30 Visual Inventory Supply Chain Network III. 2021-2022 Generating the QR code QR Code is a two-dimensional code developed by DENSO WAVE in 1994, and the most widely used in Japan. Features of QR Code 1. Representing a large amount of information with a small code QR code can represent various characters, including numbers, letters, Kanji, Kana, symbol binaries, and control codes. 2. Taking only a small physical space Since QR Code represents data in both vertical and horizontal directions, the amount of information held by a single bar code can be represented with a physical size approximately one tenth smaller. 3. Can be read from any direction (360º) QR Code can be read at high speeds from any direction. The three squares at three corners of a QR Code® enable stable and fast reading without the effects of background patterns. 4. Resistant to staining and damage Since QR Code has an error correction function, data can be recovered even in parts of the code that are stained or damaged. It could be impossible to recover data depending on the degree of the stain or damage. ROR is a library for creating and rendering QR codes into various formats. It has a simple interface with all the standard QR code options. It was adapted from the Javascript library by Kazuhiko Arase. QR code is trademarked by Denso Wave inc Minimum Ruby version is >= 2.3 For rqrcode releases < 2.0.0 please use this README For rqrcode releases < 1.0.0 please use this README Dept. Of ETE: M.Tech. (Digital Communication) Page 31 Visual Inventory Supply Chain Network 2021-2022 Installing Add this line to your application's Gemfile: gem "rqrcode", "~> 2.0" or install manually: gem install rqrcode Basic usage example require "rqrcode" qr = RQRCode::QRCode.new("https://kyan.com") puts qr.to_s # to_s( dark: "x", light: " " ) # defaults xxxxxxx xxxxxxx xxx xxxxxxx x x x xxx xx x x x xxx x xx x x xx x xxx x x xxx x xx xx xx x xxx x x xxx x x x xxx x xxx x x x xxx x xx x x x x ... Dept. Of ETE: M.Tech. (Digital Communication) Page 32 Visual Inventory Supply Chain Network 2021-2022 Figure 4.4 Basic QR code These are the various QR code generation options provided by the underlying rqrcode_core. You may actually only need this library if you don't need the various rendering options rqrcode provides, but just need the data structure. Algorithm: Expects a string or array (for multi-segment encoding) to be parsed in, other args are optional data - the string, QRSegment or array of Hashes (with data:, mode: keys) you wish to encode size - the size (Integer) of the QR Code (defaults to smallest size needed to encode the data) max_size the max_size RQRCodeCore::QRUtil.max_size) (Integer) of the QR Code (default level - the error correction level, can be: * Level :l 7% of code can be restored * Level :m 15% of code can be restored * Level :q 25% of code can be restored * Level :h 30% of code can be restored (default :h) mode - the mode of the QR Code (defaults to :alphanumeric or :byte_8bit, depending on the input data, only used when data is a string): * :number * :alphanumeric * :byte_8bit * :kanji Render types You probably want to output your QR code in a specific format. We make this easy by providing a bunch of formats to choose from below, each with their own set of options: as_svg as_png as_ansi Dept. Of ETE: M.Tech. (Digital Communication) Page 33 Visual Inventory Supply Chain Network 2021-2022 as_svg The SVG renderer will produce a stand-alone SVG as a String Options: Algorithm: offset - Padding around the QR Code in pixels (default 0) fill - Background color e.g "ffffff" or :white or :currentColor (default none) color - Foreground color e.g "000" or :black or :currentColor (default "000") module_size - The Pixel size of each module (defaults 11) shape_rendering - SVG Attribute: auto | optimizeSpeed | crispEdges | geometricPrecision (defaults crispEdges) standalone - Whether to make this a full SVG file, or only an svg to embed in other svg (default true) use_path - Use <path> to render SVG rather than <rect> to significantly reduce size. This will become the default in future versions. (default false) viewbox - Replace the `svg.width` and `svg.height` attribute with `svg.viewBox` to allow CSS scaling (default false) svg_attributes - A optional hash of custom <svg> attributes. Existing attributes will remain. (default {}) Dept. Of ETE: M.Tech. (Digital Communication) Page 34 Visual Inventory Supply Chain Network 2021-2022 Figure 4.5 QR code in svg format as_png The will produce a PNG using the ChunkyPNG gem. The result will be a ChunkyPNG::Image instance. Options: Algorithm: fill - Background ChunkyPNG::Color, defaults to 'white' color - Foreground ChunkyPNG::Color, defaults to 'black' When option :file is supplied you can use the following ChunkyPNG constraints: color_mode - The color mode to use. Use one of the ChunkyPNG::COLOR_* constants. (defaults to 'ChunkyPNG::COLOR_GRAYSCALE') bit_depth - The bit depth to use. This option is only used for indexed images. (defaults to 1 bit) interlace - Whether to use interlacing (true or false). (defaults to ChunkyPNG default) compression - The compression level for Zlib. This can be a value between 0 and 9, or a Zlib constant like Zlib::BEST_COMPRESSION (defaults to ChunkyPNG default) There are two sizing algorithms. * Original that can result in blurry and hard to scan images * Google's Chart API inspired sizing that resizes the module size to fit within the given image size. The Google one will be used when no options are given or when the new size option is used. *Google Sizing* size - Total size of PNG in pixels. The module size is calculated so it fits. (defaults to 120) border_modules - Width of white border around the modules. (defaults to 4). -- DONT USE border_modules OPTION UNLESS YOU KNOW ABOUT THE QUIET ZONE NEEDS OF QR CODES -*Original Sizing* Dept. Of ETE: M.Tech. (Digital Communication) Page 35 Visual Inventory Supply Chain Network 2021-2022 module_px_size - Image size, in pixels. border - Border thickness, in pixels It first creates an image where 1px = 1 module, then resizes. Defaults to 120x120 pixels, customizable by option. Figure 4.6 QR code in PNG format as_ansi The ANSI renderer will produce as a string with ANSI color codes. Options: light - Foreground ANSI code (default "\033[47m") dark - Background ANSI code (default "\033[40m") fill_character - The written character (default ' ') quiet_zone_size - Padding around the edge (default 4) Figure 4.7 QR code in ANSI format In our project we use the as_png format qr code. Dept. Of ETE: M.Tech. (Digital Communication) Page 36 Visual Inventory Supply Chain Network 2021-2022 CHAPTER 5 RESULTS AND PERFORMANCES EVALUATION Step 1 : Browse the link https://vsin-qr.herokuapp.com/items/1 Once we browse the generated link as shown in the above.it directly go to the login page where we have to login with the prescribed mail id. Step 2 : log in window appear Figure 5.1 Log in window As shown in figure 5.1 the log in window contains the user id and the password of the particular fixed id. I.e. the person who as the access he can only login to it. Once he logs in the item description of the inventory is shown. Dept. Of ETE: M.Tech. (Digital Communication) Page 37 Visual Inventory Supply Chain Network 2021-2022 Step 3: Add the item details Figure 5.2 item adding window As shown in the figure 5.2, the item adding window means we have to add the item description i.e. details of the item we have to fill. After creating the login credentials a login process has to be made, at that time once login is done we have to create the item categories where the table to create an item categories is made. After creating the categories item creation has to be made where the description of the individual inventory is made i.e. dimension, size, and we have to enter the full details of the individual Dept. Of ETE: M.Tech. (Digital Communication) Page 38 Visual Inventory Supply Chain Network 2021-2022 category means description of the individual inventory has to be made then we can create an item and its description are shown in figure 5.2. Step 4: After adding the items click on submit Figure 5.3 item added with information As shown in the figure 5.3, the item adding window means we have to add the item description i.e. details of the item we have to fill. After filling the item click on the submit icon as shown in the figure5.3. Dept. Of ETE: M.Tech. (Digital Communication) Page 39 Visual Inventory Supply Chain Network 2021-2022 Step 4: QR code is generated Figure 5.4 inventory information with QR code As shown in the figure 5.4,it has the information of the inventory and the QR code. The table is converted to QR code are shown. It has information of the inventory; the scanned information is visible to the person who has access by giving the login credentials. Dept. Of ETE: M.Tech. (Digital Communication) Page 40 Visual Inventory Supply Chain Network 2021-2022 Step 5: QR code is generated Figure 5.5 Generated QR code Step 6: Once we scan the QR code link is appeared on the Mobil screen Figure 5.6 scanning the QR code Once we click on the link generated on the screen as shown in figure 5.6 we get the information of the QR code.as shown in below figure 5.7. Dept. Of ETE: M.Tech. (Digital Communication) Page 41 Visual Inventory Supply Chain Network 2021-2022 Step 7: Click on the link appeared on the Mobil screen Figure 5.7 clicking the link on QR code Once click on the link which is displayed on the screen as shown in figure 5.7. After clicking the link person has to login then he can have the information of the inventory converted which is converted to QR code as shown in figure 5.8 and he or she can alter or edit the description of the inventory which is scanned by the user or client. Dept. Of ETE: M.Tech. (Digital Communication) Page 42 Visual Inventory Supply Chain Network 2021-2022 Figure 5.8 information of QR code Figure 5.9 inventory attached to QR code Dept. Of ETE: M.Tech. (Digital Communication) Page 43 Visual Inventory Supply Chain Network 2021-2022 CHAPTER 6 CONCLUSION The conclusion of the project encourages easy and reassuring use and is of low cost and can be used for routine checkup at the industries. It can also provide real on time analysis for inventory management. Due to the online QR code feature there is no need to go and check for the offline records. Hence it can be done where ever you take the test. The visual inventory supply chain network designed be of low cost and encourages easy and reassuring use. It can be operated irrespective of time and place. There is but variety of how to boost the expertise of consumers that square measure to be more explored to the present study. Firstly, there can be want for the integration of checkout system with the developed epitome, therefore on offer customers a very new expertise (from creating product decisions to locating the product and finding out to avoid long queues) searching in the store thereby creating their retail idea an entire ton higher. Lastly, to include Associate in nursing increased security feature on the QR codes in order that customers will firmly scan codes and well perform money transactions victimization their mobile phones. Dept. Of ETE: M.Tech. (Digital Communication) Page 44 Visual Inventory Supply Chain Network 2021-2022 REFERENCES [1] Ang, JC & Chee, Li & Majid, Hairudin. The application of web-based inventory management system for small and medium enterprise (SME/SMI): a case study for hardware and furniture industry in Malaysia, pp. 1-15, 2009. [2] Muyumba, Thomas & Phiri, Jackson. A Web based Inventory Control System using Cloud Architecture and Barcode Technology for Zambia Air Force. International Journal of Advanced Computer Science and Applications. 8. 10.14569/IJACSA.2017.081117. Vol. 8, No. 11, 2017. [3] Ramakrishnan, Parthasarathi & Ma, Yongsheng. Adaptive Supply Chain Systems: IoT Based Conceptual Framework. 62-68. 10.1145/3194188.3194205. pp. 7-11 May, 2018, [4] Min Qin, XueMei Zhang, HongXia The Research of Supply Chain Management Information System Based on Web, International Conference on Computer Application and System Modeling (ICCASM) 2010. [5] Dawei Wang, Yuehwern Yih, PhD School of Industrial Engineering Web-based, Multi-platform, Centralized, Offline Compatible Supply Chain Management System for Emergency Responses IEEE 2016 Global Humanitarian Technology Conference. [6] D. Kozma, P. Varga and C. Hegedüs, "Supply Chain Management and Logistics 4.0 A Study on Arrowhead Framework Integration," 2019 8th International Conference on Industrial Technology and Management (ICITM), 2019, pp. 12-16, doi: 10.1109/ICITM.2019.8710670. [7] G. Ge, Y. Wenge and W. Tianyong, "Component and Application of Supply-Chain Management Software for E-Services," 2006 International Conference on Service Systems and Service Management, 2006, pp. 847-852, doi: 10.1109/ICSSSM.2006.320731. [8] T. Sriram, K. Vishwanatha Rao, S. Biswas and B. Ahmed, "Applications of barcode technology in automated storage and retrieval systems," Proceedings of the 1996 IEEE IECON. 22nd International Conference on Industrial Electronics, Control, and Instrumentation, 1996, pp. 641-646 vol.1, doi: 10.1109/IECON.1996.571035 [9] Ihekweaba Chukwugoziem, Aru Okereke Eze, Chiaghana A Quick Response (QR) Code Generator with Mobile Scan Application for Mobile Network Recharge Operations International Journal of Scientific and Engineering Research, Vol. 10, No. 7, July 2019 ISSN 2229-5518. [10] R. M. Bani-Hani, Y. A. Wahsheh and M. B. Al-Sarhan, "Secure QR code system," 2014 10th International Conference on Innovations in Information Technology (IIT), 2014, pp. 1-6, doi: 10.1109/INNOVATIONS.2014.6985772. [11] S. Goyal, S. Yadav and M. Mathuria, "Exploring concept of QR code and its benefits in digital education system," 2016 International Conference on Advances in Computing, Communications and Informatics (ICACCI), 2016, pp. 1141-1147, doi: 10.1109/ICACCI.2016.7732198. Dept. Of ETE: M.Tech. (Digital Communication) Page 45 Visual Inventory Supply Chain Network 2021-2022 [12] Tiwari, Sumit. An Introduction to QR Code Technology. 39-44. 10.1109/ICIT.2016.021. IEEE 2016. DOI 10.1109/ICIT.2016.38 [13] Shin, Donghee & Jung, Jaemin & Chang, Byeng-Hee. The psychology behind QR codes: User experience perspective. Computers in Human Behavior. 28. 10.1016/j.chb.2012.03.004. pp 1417-1426, 2012. [14] P. Sutheebanjard and W. Premchaiswadi, "QR-code generator," 2010 Eighth International Conference on ICT and Knowledge Engineering, 2010, pp. 89-92, doi: 10.1109/ICTKE.2010.5692920. [15] Y. Yan, H.W. Liu. Research and Application of Encoding and Decoding Tech. of QR Code, University of Science and Tech, Beijing. [16] R. Dorado, E. Torress, C. Rus. Mobile learning: Using QR codes to develop teaching material, IEEE - Technologies Applied to Electronics Teaching (TAEE) 2016, Seville, Spain,22-24 June 2016. [17] Sumit Tiwari, Sandeep Sahu. A Novel Approach for the Detection of OMR Sheet Tampering Using Encrypted QR Code”, IEEE - International Conference on Computational Intelligence And Computing Research (2014), Coimbatore – India, 2014, pp. 604-608. [18] C. H. Lai, S. A. Chen. Scan & Learn: Exploring Application of Dynamic Quick Response Codes in Digital Classrooms”, Bulletin of IEEE Technical Committee on Learning Technology, Volume 15, Number 3, July, 2013. [19] QR Code Statistics 2022: Up-To-Date Numbers On Global QR Code Usage, Scanova Blog, scanova.io, 12 Sept. 2018, https://scanova.io/blog/qr-code-statistics/ [20] Y. Yang, C. Peng and Q. Li, "Predictive Control of Inventory Management in Supply Chain Systems with Uncertain Demands and Time Delays," 2021 40th Chinese Control Conference (CCC), 2021, pp. 450-455, doi: 10.23919/CCC52363.2021.9550484. Dept. Of ETE: M.Tech. (Digital Communication) Page 46 Visual Inventory Supply Chain Network 2021-2022 PAPER PUBLICATION DETAILS Dept. Of ETE: M.Tech. (Digital Communication) Page 47