Mad Mini

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

BARCODE SCANNER

A PROJECT REPORT

Submitted by

Shantanu Rai (21BCS8582)


Vanshika Rawat(21BCS8515)

in partial fulfillment for the award of the degree of

BACHELOR OF ENGINEERING

IN

COMPUTER SCIENCE AND ENGINEERING

Chandigarh University
APRIL 2024
BONAFIDE CERTIFICATE

Certified that this project report “Sorting-Visualizer.” is the bonafide work of “Shantanu
Rai(21BCS8582) , Vanshika Rawat(21BCS8515) ” who carried out the project work under
my/oursupervision.

SIGNATURE SIGNATURE

HEAD OF THE DEPARTMENT SUPERVISOR

Submitted for the project viva-voce examination held on …………………….

INTERNAL EXAMINER EXTERNAL EXAMINER


ABSTRACT

With the recent surge in interest in computational thought, an important question has arisen:
what are the best methods for teaching students basic computing concepts? Visualization is
considered as one way to support student learning. With anaim to help and motivate students,
number of researchers have come up with various tools. Although many tools are available this
problem seems to be still persistent. This paper proposes a web application used to visualize
seven commonly used sorting algorithms: Bubble Sort, Selection Sort, Insertion Sort, Quick
Sort, Merge Sort, Heap Sort and Tim Sort. The web application represents data in the form of
a bar graph and user will be able to select the algorithm, control and speed of visualization and
control the size of the bar graph. This paper also shows the Architectural design and technical
structure of the application as well as its practical use and educational benefits are presented
and discussed.
TABLE OF CONTENTS

S.NO. TITLE PAGE NO.

ABSTRACT v

LIST OF FIGURES viii

1. CHAPTER 1: INTRODUCTION

1.1 INTRODUCTION 1
1.2 RESEARCH AND SIGNIFICANCE 2

2. CHAPTER 2: LITERATURE SURVEY 3

3. CHAPTER 3: AIM AND SCOPE 4


3.1 AIM 4
3.2 SCOPE 4

4. CHAPTER 4: SYSTEM DESIGN AND METHODOLOGY 5


4.1 PROPOSED SYSTEM 5
4.2 REQUIREMENT SPECIFICATION 5
4.2.1 SOFTWARE REQUIREMENTS 6
4.2.2 HARDWARE REQUIREMENTS 6
4.3 SYSTEM FUNCTIONALITIES 6

5. CHAPTER 5: SYSTEM DEVELOPMENT METHODOLOGY 11


5.1 SYSTEM ARCHITECTURE 11
5.1.1 MODEL 12
5.1.2 VIEW 12
5.1.3 CONTROLLER 12
5.2 INTERNAL STRUCTURE 13

6. CHAPTER 6: RESULTS AND DISCUSSION 14


7. CHAPTER 7: CONCLUSION 17

REFERENCES 18

APPENDIX 19

1. PAPER ACCEPTANCE MAIL


2. PLAGIARISM REPORT
3. JOURNAL PAPER
4. SOURCE CODE
CHAPTER 1

INTRODUCTION

INTRODUCTION

In today's rapidly evolving digital landscape, the integration of innovative technologies into
everyday tasks has become commonplace. One such technology that has revolutionized various
industries is barcode scanning. With its ability to swiftly and accurately capture data encoded in
barcodes, this technology has become indispensable in sectors ranging from retail and inventory
management to healthcare and logistics.

In this project, we embark on the journey of developing a barcode scanning application for
Android devices using the robust development environment of Android Studio. Our aim is to
harness the power of modern smartphones and their built-in cameras to create an intuitive and
efficient tool for barcode scanning. Barcode scanning applications have become increasingly
prevalent due to their versatility and convenience. They offer businesses and individuals a means
to streamline processes, enhance productivity, and improve accuracy in tasks such as inventory
management, product tracking, and data entry. The ubiquity of smartphones equipped with
high-quality cameras makes them an ideal platform for implementing barcode scanning
functionality. By leveraging the camera capabilities of Android devices, our application will
empower users to quickly and effortlessly scan barcodes, decode them, and access relevant
information. Through this project, we not only aim to create a functional barcode scanning
application but also to explore the intricacies of mobile development using Android Studio. We
will delve into concepts such as camera integration, image processing, barcode decoding
algorithms, user interface design, and more. Furthermore, our project will emphasize user
experience, ensuring that the application is intuitive, responsive, and user-friendly. We will strive
to provide real-time feedback during the scanning process, offer customization options to cater to
diverse user preferences, and implement features such as barcode history and search
functionality. By developing this barcode scanning application, we aim to showcase the
capabilities of Android Studio as a development platform and highlight the practical applications
of barcode scanning technology in the modern era.
RESEARCH AND SIGNIFICANCE

As barcode scanning technology continues to evolve, there is a growing need to adapt and
optimize barcode scanning applications for modern mobile platforms. With the advent of
Android Studio and the Kotlin programming language, coupled with advancements in
smartphone hardware and software, researchers are exploring new avenues to enhance the
functionality and performance of barcode scanning applications for API levels above 31.

One significant area of research focuses on leveraging the latest features and APIs introduced in
Android versions targeting API level 31 and above. Researchers delve into the capabilities
offered by the Android CameraX library, which provides a simplified API for camera
integration, enabling developers to capture high-quality images efficiently. By harnessing
CameraX's functionalities such as image analysis and image capture, researchers aim to
improve the speed and accuracy of barcode detection and decoding on modern Android devices.

Furthermore, researchers are investigating the integration of machine learning and computer
vision techniques into barcode scanning applications to enhance their capabilities. Techniques
such as deep learning-based object detection and recognition algorithms are explored to enable
the identification and decoding of barcodes in complex environments, including low-light
conditions and distorted images. By training models on diverse datasets, researchers seek to
develop robust and adaptable barcode scanning solutions capable of handling various barcode
types with high accuracy.

In addition to technical advancements, the significance of research in this domain extends to


practical implications for businesses and end-users. Barcode scanning applications developed
using Android Studio and Kotlin offer businesses across industries a cost-effective and scalable
solution for inventory management, retail operations, and logistics tracking. By utilizing the
latest APIs and features available in Android versions targeting API level 31 and above,
developers can ensure compatibility with a wide range of Android devices while delivering an
optimized user experience.
CHAPTER 2

LITERATURE

SURVEY

QR (Quick Response) code recognition from an image, which can be used to insert the image
into a QR code reader. The code can identify the image and retrieve the portion of the file,
which can include details about specific individuals and organization logos, for example. The
QR code is located in this section. Barcodes are of two types i) 1D barcode and ii) 2D Barcode.
1D Barcode encodes the information or data between the parallel lines and spaces between
them, these parallel lines have different widths and different spaces between them. A 1D
barcode can only store the alphanumerical data if more information is to be stored then the
length of the barcode should be increased. When a barcode reader device scans the barcode, the
reader uses a laser to read those unique parallel lines and spaces. The barcode reader reads the
code from left to right when scanning it. After that, the barcode reader reads the pattern of
shaded lines on the black and white bar and converts the encoded data into binary code. After
the information is extracted into a binary form the computer reads the binary codes and the
decoded information or data is displayed in the screen of the computer screen. Barcodes are
made up of 95 blocks out of those 95 blocks barcodes are written in 12 blocks. Three blocks are
designated as a left guard, center guard, and right guard among the 95 total blocks. The
barcodes are designed in such a way that they can categories the type of product. It can
determine the materials that the product is made up of, it also determines that the product is
vegan or non-vegan. Barcodes are the combination of different types of information which
includes country code, manufacture’s code, product code, and check digits, the first three digits
determine the country code, the next four digits determine the manufacture’s code, next five
digits determines the product code, and the last digits is a check digit. A barcode scanner is
made up of a mirror, a light source, and a light sensor that can convert optical impulses into
electrical signals. A barcode scanner decodes information by analysing image data generated
by the light sensor and sending the data to the output port. The decoder is used to recognize the
barcode symbols and it translates the parallel lines and spaces into the data in such a format
that can be understood by humans.
CHAPTER 3

AIM AND SCOPE

AIM

The aim of this project is to develop a user-friendly barcode scanning application for
Android devices using Kotlin and Android Studio. The application will provide efficient
and accurate barcode scanning capabilities for various barcode types, catering to
businesses and individuals across different industries.

SCOPE

1. Barcode Scanning Functionality: Implement core barcode scanning functionality using


the device's camera for real-time decoding.

2. Support for Multiple Barcode Types: Support various barcode formats, including 1D
and 2D barcodes like UPC, EAN, and QR codes.

3. Integration with Android CameraX: Leverage Android CameraX library for simplified
camera integration and efficient image capture.

4. User Interface Design: Design an intuitive interface with visual cues for smooth user
experience.

5. Customization Options: Allow users to customize scanning settings and visual themes
for flexibility.

The scope of the project encompasses delivering a comprehensive barcode scanning


application that meets the needs of businesses and individuals, facilitating inventory
management, retail operations, and data entry tasks efficiently.
CHAPTER 4

SYSTEM DESIGN AND METHODOLOGY

PROPOSED SYSTEM

The proposed system is a barcode scanning application developed for Android devices using
Kotlin programming language and Android Studio. It offers users an intuitive and efficient tool
for scanning various barcode types, including 1D and 2D barcodes, facilitating tasks such as
inventory management and product identification. With features like customizable settings, user-
friendly interface, and data management capabilities, the system aims to provide a
comprehensive solution for barcode scanning needs, ensuring compatibility with a wide range of
Android devices and optimizing performance for enhanced user experience.

REQUIREMENT SPECIFICATION

This proposed software runs effectively on a computing system that has the minimum
requirements. Undertaking all the equipment necessities are not satisfied but rather exist in
their systems administration between the user’s machines already. So, the main need is to
introduce appropriate equipment for the product. The requirements are split into two
categories, namely:

SOFTWARE REQUIREMENTS

1. Android Studio: The primary development environment for creating the barcode
scanner application.
2. Android Mobile: The target device for deploying and testing the barcode
scanner application.
3. Windows 10 OS: The operating system used for running Android Studio and
managing development tasks.
HARDWARE REQUIREMENTS

1. Hard disk of 5 GB: Sufficient storage space for installing and running Android Studio,
storing project files, and managing dependencies.
2. System memory (RAM) of 512 MB: Adequate RAM for running Android Studio and
emulator instances, compiling code, and performing development tasks efficiently.
3. I3 processor-based computer or higher: A capable processor to support the demands of
running Android Studio, compiling code, and executing development tasks smoothly.

SYSTEM FUNCTIONALITIES

The barcode scanner application, developed using Kotlin language in Android Studio, offers
a seamless and intuitive user experience for scanning various types of barcodes. Leveraging
the code-scanner library, the app allows users to effortlessly capture barcode images using
their device's camera and decode them in real-time.

Upon installation, the app prompts users to grant necessary camera permissions, ensuring
smooth functionality. For devices running Android API level 23 and above, the application
implements dynamic permissions handling, requesting camera permissions at runtime to enhance
user privacy and security.

Furthermore, the application declares the requirement for the camera hardware feature in its
manifest file, ensuring compatibility only with devices equipped with a camera.

In essence, the barcode scanner application provides users with a reliable and efficient solution
for barcode scanning tasks, empowering them to manage inventory, identify products, and
streamline
data entry processes seamlessly on their Android devices.

The barcode scanner application development process has commenced with the integration of
necessary dependencies and permissions. To ensure seamless barcode scanning functionality, the
following steps have been undertaken:

Dependency Resolution Management:


In the settings.gradle file, the repository URL 'https://jitpack.io' has been added under the
dependencyResolutionManagement block. This enables the retrieval of required dependencies
during the build process.

Fig. 4.1: adding the repository

Dependency Inclusion:

The barcode scanning functionality is facilitated by the 'code-scanner' library. In the build.gradle
file, the dependency on this library has been added under the dependencies block. The version
2.3.0 of the library is specified for integration.
Fig. 4.2: adding the dependency

Permission Setup
To utilize the device's camera for barcode scanning, necessary permissions have been declared
in the AndroidManifest.xml file. The 'CAMERA' permission is added to grant the application
access to the device's camera hardware.

Additionally, the application declares the 'android.hardware.camera' feature in the manifest file
with 'required' attribute set to 'false'. This ensures that the application can be installed on devices
with or without a camera, allowing for broader compatibility.

Fig. 4.3: adding camera permission

Layout Adjustment and CodeScannerView Integration

The application's layout was updated to RelativeLayout, providing enhanced flexibility in


arranging UI elements. The CodeScannerView component was seamlessly integrated into the
layout, resembling a physical barcode scanner. This integration improves user experience and
facilitates easy initiation of barcode scanning operations. Future steps involve implementing
logic to capture and decode barcode images, ensuring a user-friendly solution for barcode
scanning tasks on Android devices.

Fig. 4.4: adjusting layout

MainActivity.kt Overview

The MainActivity.kt file initializes the barcode scanner functionality. It sets up camera
permissions, configures the CodeScanner object, defines callbacks for decoding barcode
data, and handles permission requests. This file serves as the core logic for the barcode
scanning feature in the application.
Fig. 4.5: MainActivity.kt
CHAPTER 5
SOFTWARE DEVELOPMENT METHODOLOGY

SYSTEM ARCHITECTURE

The system architecture of the barcode scanner application is designed with modularity and
efficiency in mind. It comprises several key components that work seamlessly together to
provide robust barcode scanning functionality on Android devices. At its core, the application's
user interface (UI) component serves as the visual gateway for users to interact with the
scanning process. This includes initiating scans, displaying results, and accessing settings.

Supporting the UI is the Barcode Scanning Module, responsible for capturing and decoding
barcode images using the CodeScanner library. This module ensures accurate and efficient
barcode recognition, enhancing the overall user experience. Additionally, the Permission
Handling Module plays a crucial role in managing camera permissions dynamically. It checks for
and requests camera permissions at runtime, ensuring smooth operation without compromising
user privacy or security.

Furthermore, the Data Management Module handles the storage and retrieval of scanned barcode
data. This includes functionalities such as storing scan history, searching for specific scans, and
facilitating data export to external systems if needed. Finally, while optional, Backend Services
can be integrated to support cloud storage, data synchronization, and advanced analytics,
enhancing the application's scalability and reliability.

Overall, this architecture embodies a modular approach, enabling easier development, testing,
and maintenance of the application. It ensures efficient barcode scanning operations while
providing flexibility for future enhancements and optimizations.
MODEL

The Model component of the barcode scanner application encapsulates the data and business
logic of the system. It serves as the backbone responsible for managing scanned barcode data
and implementing various functionalities related to data storage, retrieval, and manipulation.
Within the Model, the data management module handles tasks such as storing scan history,
searching for specific scans, and facilitating data export to external systems if needed. This
module ensures data integrity, consistency, and security by enforcing business rules and
validation checks.
Additionally, it provides an interface for other components of the system to interact with the
stored data, abstracting away the underlying data storage mechanisms.

VIEW

The View component is responsible for presenting the user interface and facilitating user
interaction within the application. In the context of the barcode scanner app, the View
encompasses various UI elements and screens that enable users to initiate barcode scans, view
scan results, and configure scanning settings. This includes the design and layout of user
interface elements, such as buttons, text views, and input fields, as well as the visual
presentation of scan results and feedback messages. The View communicates user actions and
input events to the Controller and displays data received from the Model, ensuring a seamless
and intuitive user experience.

CONTROLLER

The Controller acts as an intermediary between the Model and the View, orchestrating the flow
of control within the application. It handles user inputs, events, and interactions initiated through
the View, processes them, and updates the Model accordingly. In the barcode scanner app, the
Controller includes logic for managing camera permissions, initiating barcode scanning
operations, handling decoded barcode data, and responding to errors or exceptions. It
coordinates the interaction between the Model and the View, ensuring that changes in one
component are reflected appropriately in the others. Additionally, the Controller implements
business logic,
validation rules, and application-specific behaviors, maintaining separation of concerns and
promoting reusability and maintainability.

INTERNAL STRUCTURE

A barcode scanner is used in scanning a barcode and retrieving the encoded information or data
in the barcode. Barcode Sensor, and the decoder. A barcode scanner scans the barcode by
scanning the parallel black and white bar and spaces by illuminating the barcode symbol with
red light [3]. The illuminated light is reflected towards the sensor present in the barcode
scanner. The sensor detects the reflected light and generates the analog signal from the
illuminating reflected light, the decoder receives the produced analog signal, the decoder then
interprets the analog signal and checks the barcode for validity using the check digit. After the
validation of the barcode is done the decoder converts the barcode into text where humans can
understand. The text that is decoded is sent to the computer system using the appropriate
software that can communicate between the computer system and the barcode scanner. There is
different type of barcode scanner which use different ways for scanning the barcodes and they
have their advantages and disadvantages. Each type of barcode scanner is used to serve its
specific purpose. Barcodes are generated by using some of the standards. The barcode symbols
are categories into three sections left guard, center guard, right guard. The left guard consists of
manufacturer code, the center guard consists of product code, and the right guard is a check bit.

Fig. 5.1: Showing the detailed structure of the barcode


Fig. 5.2: Number representing its categories
CHAPTER 6

RESULTS AND DISCUSSION

Fig. 6.1: QR code and Barcode

The barcode scanner project has been executed with a comprehensive evaluation of its
functionality, performance, user experience, scalability, and potential future enhancements.

Functionality Verification:

The application effectively captures barcode images through the device's camera and decodes
them in real-time using the CodeScanner library. Users can seamlessly initiate scans, view scan
results, and configure scanning settings through the intuitive user interface. The application
demonstrates versatility by accurately recognizing and decoding various barcode formats,
including 1D (linear) barcodes like UPC and EAN, as well as 2D barcodes such as QR codes.
Performance Evaluation:

Performance testing confirms the application's high performance, with swift and accurate
decoding of barcode data even under varying lighting conditions. The efficient management of
camera resources ensures smooth operation, with minimal impact on device performance. The
application is designed to handle different camera specifications, optimizing performance across
a wide range of Android devices.

User Experience:

User feedback indicates a positive experience with the barcode scanner application, emphasizing
its ease of use, responsiveness, and reliability. The intuitive user interface, coupled with visual
cues during the scanning process, contributes to a seamless and user-friendly experience.
Additionally, user-centric design principles ensure accessibility and inclusivity for all users,
regardless of technical proficiency.

Scalability and Maintenance:

The project's modular architecture, adhering to the Model-View-Controller (MVC) pattern,


facilitates scalability and maintainability. Clear separation of concerns between the Model, View,
and Controller components enables seamless development, testing, and future enhancements.
The well-organized codebase, accompanied by comprehensive documentation, streamlines
maintenance and troubleshooting processes, ensuring the longevity and sustainability of the
application.

Future Enhancements:

Future iterations of the barcode scanner application could incorporate additional features to
further enrich its functionality and utility. Potential enhancements may include batch scanning
capabilities, barcode generation functionalities, cloud synchronization for data storage, and
advanced data analytics for performance tracking and optimization. Integration with external
databases or inventory management systems could extend the application's applicability across
various industries and use cases.

Fig 6.2: Scanning and displaying result

In the illustrated scenario, showcased above, the Barcode Scanner adeptly scans the code, swiftly
retrieving and displaying comprehensive information about the product.
CHAPTER 7

CONCLUSION

This presented paper reviews the technology about the barcodes like how they are created, what
are their type, which types and how much data can a barcode store, and the several scanners and
their method of recognizing the barcode. The barcode is a symbological representation of the
encoded information or the data that can be scanned by the barcode scanner in a fast, accurate,
and efficient way, before this technology people used to do the data entry task manually and
managing the items with their serial no was also done manually, during this process lot of time is
consumed and there was a high chance of human errors. To overcome this problem this
technology was introduced where the serials no. or the unique no. that can be used to identify the
product is encoded in a barcode so it can be understood by the computer system. This
symbological representation of information called barcode can store several types of characters,
symbols, and links to the websites. This technology is generally used everywhere in the modern
world to make the data entry, searching, tracking of items simpler. This technology is mostly
used by Courier service, Library in universities, Flight Boarding pass, Aadhaar card, Student ID
Cards, Point of Sale System, etc. This can read the encoded information at high speed and more
accurate which makes the process faster and efficient. This technology will be useful shortly for
many tasks to be done in the data entry sector and many organizations will be using this
technology to increase their productivity and shipping the products all over the world.
REFERENCES

[1] Norhashimah Mohd Saad, Barcode Recognition system, International Journal of Emerging
Trends & Technology in Computer Science (IJETTCS), www.ijettcs.org, Volume 2, Issue
4, July-August 2013.

[2] Brain M., 2000 ‘How UPC Barcodes Work?’,


http://electronics.howstuffworks.com/upc.htm, last viewed 7th November 2008

[3] W. Su, L. Ma, K. Hu and L. Zhang, "A research on integrated application of rfid-based lean
manufacturing", Control and Decision Conference 2009. CCDC'09. Chinese, pp. 5781-
5784, 2009.

[4] A. Akbari, S. Mirshahi and M. Hashemipour, "Application of rfid system for the
process control of distributed manufacturing system", Electrical and Computer
Engineering (CCECE) 2015. 28th annual IEEE Canadian Conference on, 2015.

[5] S. Mirshahi, A. Akbari and S. Uysal, “Implementation of structural health monitoring


based on rfid and wsn", Electrical and Computer Engineering (CCECE) 2015. 28th annual
IEEE Canadian Conference on, 2015.

[6] R. Muniz, L. Junco, and A. Otero. A Robust Software Barcode Reader Using the Hough
Transform. In Proc. of 1999 International Conference on Information Intelligence and
Systems, pages 313-319. IEEE, IEEE Computer Society Press, 1999.

[7] P.B. Nagpal et al, “Architecture of Software Defined Wide- Area Network: A Review “,
GRD journals, vol 5 issue 6, May 2020.

[8] P. Nagpal et al, “Health Monitoring Multifunction Band Using IOT “, Proceedings of
International Conference on IoT Inclusive Life (ICIIL 2019), NITTTR Chandigarh, India
,2020, page no 159-165

[9] P. B. Nagpal et al, “Design and Development of Android based Multimedia Player,
International Journal of Innovative Research in Computer Science & Technology, vol,
issue 3, May 2020
PLAGIARISM REPORT

You might also like