0% found this document useful (0 votes)
11 views84 pages

FINAL YEAR PROJECT PDF1 - Removed

The document outlines a project developed to assist blind individuals in shopping using an Android and PHP application that generates QR codes for products. The QR codes contain product information, which the 'Blind Helper' app reads aloud, enabling blind customers to shop independently. The document also includes a detailed structure of the system, feasibility studies, and various methodologies related to assistive technologies for the visually impaired.

Uploaded by

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

FINAL YEAR PROJECT PDF1 - Removed

The document outlines a project developed to assist blind individuals in shopping using an Android and PHP application that generates QR codes for products. The QR codes contain product information, which the 'Blind Helper' app reads aloud, enabling blind customers to shop independently. The document also includes a detailed structure of the system, feasibility studies, and various methodologies related to assistive technologies for the visually impaired.

Uploaded by

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

ABSTRACT

Android plays the important role in the mobile industry. So it is the leading
product in the information technology. Since all the task such as e-commerce, business
processing are done using smart phones. Almost all of the data in the internet is accessed
using smart phones. So day by day application runs in smart phones gets more and more
important. New applications with new ideas help people today. So to help the blind
peoples in shopping this project is developed in Android and PHP a popular Web
scripting language. Since Shopping mall owners and big shopper bazaars sell products of
all brands in a single place. So to assist blind people to shop easily the shopping owners
can generate QR code using the PHP web application at ease. They need to simply
registers the product and then it is generated as QR. Then they can place the QR in the
items they sell. Then any customer with the “Blind Helper” Android application can
easily scan the QR and the application speaks it aloud the information like product name,
brand and price etc… which is embedded inside the QR. So this greatly helps the blind
people in shopping. They don’t need any other person to assist them in shopping. The
server side application which generates the QR code is developed in PHP and the client
side application runs in Android which reads the QR code is developed in Android.
TABLE OF CONTENTS

CHAPTER NO TITLE PAGE NO


ABSTRACT
LIST OF TABLES
LIST OF FIGURES
LIST OF ABBREVIATIONS
1. INTRODUCTION 1
1.1. Overview
1.2. Literature Survey
2. SYSTEM STUDY 8
2.1. Feasibility Study
2.1.1. Economical Feasibility
2.1.2. Technical Feasibility
2.1.3. Social Feasibility
3. SYSTEM ANALYSIS 11
3.1. Existing System
3.1.1. Disadvantages Of Existing System
3.2. Proposed System
3.2.1. Advantages Of Proposed System
4. SYSTEM SPECIFICATION 13
4.1. Hardware Specification
4.2. Software Specification
5. DETAIL DESCRIPTION OF 14
TECHNOLOGY
5.1. Feature of Android
5.2. MYSQL
6. SYSTEM DESIGN 34
6.1. Input Design
6.2. Output Design
6.3. Database Design
7. SYSTEM ARCHITECTURE 37
7.1. System Architecture
7.2. Data Flow Diagram
7.3. UML Diagram
8. SYSTEM IMPLEMENTATION 45
9. SYSTEM TESTING 46
9.1. Unit Testing
9.2. Integration Testing
9.3. Validation Testing
9.4. White Box Testing
9.5. Black Box Testing
10. CONCLUSION 50

APPENDIX - 1.1 51
APPENDIX - 1.2 55
REFFERENCE 71
LIST OF FIGURES

S.NO. FIGURE NO. DESCRIPTION OF FIGURE PAGE NO


1. 7.1 Architecture Diagram 37
2. 7.2 Data Flow Diagram 38
3. 7.3 UML Diagram 39
7.3.1. Use Case Diagram 39
7.3.2. Sequence Diagram 39
7.3.3. Activity Diagram 40
7.3.4. Class Diagram 42
LIST OF ABBREVIATIONS

LMSs Learning Management Systems


GPS Global Positioning System
BYOD Bring Your Own Device
API Application Programming Interface
JIT Just-In-Time Compiler
ADT Android Development Tools
ALM Application Lifecycle Management
SOA Service Oriented Architecture
IDE Integrated Development Environment
QR Code Quick Response Code
ECS Exam Client Software
1. INTRODUCTION
1.1. OVERVIEW

Admin login
Category
Administrator is the controller of the site. He is in charge of creating the products.
First administrator creates the category of the product. Once created it is displayed in the
module. Then the unwanted category can be removed from the site. Examples of
category is the main division of the products such as chocolate, soap etc…
New Product
In this module, the administrator creates new product. First administrator selects
the categories which was created earlier, then the product name, brand, units and price is
entered. Then the product is created. The created product is displayed in this module and
unwanted products can be removed.
Edit Product
If the administrator needs to modify the product information such as price, brand,
name etc… then in this module it can be changed. After selecting the product the product
information is shown in the screen. Then the administrator can modify any information
of the product. Then on submitting the form the product information is modified and
stored in the server.
Print QR code
The administrator can print QR codes by categories. On selecting the categories
the corresponding QR code and the name of the product is printed in the screen. Then the
administrator can take print using the printer. This QR codes can be placed in the
products in the shop. So that the blind customers can read the QR code with the android
application.
Client Application
The client application is developed using Android a popular mobile application
platform. The client application is designed to read the QR code which was generated by
the administrator using the PHP application. The QR code contains the information of
the product such as product name, brand, price etc… Then the android application reads
the QR code and speaks it to the user. So the blind users can comfortably shop the items
without any one’s assistance. This gives the blind people a easy way for shopping.

1
1.2. LITERATURE SURVEY

1. Title: Detecting and Reading Text in Natural Scenes

Year: 2004

Author(s): X. Chen and A. L. Yuille

Methodology:
The authors propose a method for detecting and reading text in natural scenes by
combining image processing, machine learning, and character recognition
techniques. The approach involves text detection using edge-based and color-based
segmentation methods, followed by text recognition using an optical character
recognition (OCR) system. The system employs a probabilistic model to improve
accuracy by integrating contextual information, enhancing the ability to distinguish text
from background noise.

Advantages:

• Effectively detects and reads text in complex and cluttered environments.


• Uses a probabilistic framework to improve recognition accuracy.
• Robust against illumination changes and background variations.
• Can be applied to real-world scenarios such as automatic sign recognition and
assistive reading applications.

Disadvantages:

• Performance is affected by low-resolution images and blurred text.


• Struggles with highly distorted or curved text.
• Computationally expensive, limiting real-time processing capabilities.
• Accuracy depends on predefined feature selection, which may not generalize
well to all text styles.

2
2. Title: Automatic Detection and Recognition of Signs from Natural Scenes

Year: 2004

Author(s): X. Chen, J. Yang, J. Zhang, and A. Waibel

Methodology:
The authors present a computer vision-based approach for automatically detecting and
recognizing signs from natural scenes. The method employs a color-based segmentation
technique to detect candidate sign regions, followed by edge detection and geometric
filtering to refine the results. A neural network-based optical character recognition
(OCR) system is then used to recognize text within the detected signs. To improve
accuracy, the approach integrates language modeling and contextual information to
filter out irrelevant or incorrectly recognized text.

Advantages:

• Works effectively in outdoor environments with varying lighting conditions.


• Utilizes color and edge features for robust sign detection.
• Improves text recognition accuracy using language modeling techniques.
• Can be applied to real-world scenarios, such as navigation assistance and
multilingual sign recognition.

Disadvantages:

• Color-based segmentation may fail in cases of poor lighting or low contrast


between the text and background.
• Computational complexity may limit real-time processing on low-end hardware.
• Struggles with severely occluded or distorted signs.
• Performance depends on the quality of training data for the OCR and neural
network models.

3
3. Title: Wearable Obstacle Avoidance Electronic Travel Aids for Blind: A Survey

Year: 2010

Author(s): D. Dakopoulos and N. G. Bourbakis

Methodology:
This paper presents a comprehensive survey of wearable electronic travel aids (ETAs)
designed to assist visually impaired individuals in obstacle avoidance. The authors
categorize various ETAs based on their sensor technologies, including ultrasonic
sensors, infrared sensors, cameras, and laser rangefinders. They analyze different
signal processing techniques used to detect and interpret obstacles, such as image
processing, machine learning, and haptic feedback mechanisms. The paper also
discusses wearability aspects, user comfort, and system usability for real-world
applications.

Advantages:

• Provides a detailed comparison of different wearable ETA systems.


• Highlights the strengths and weaknesses of various sensor technologies.
• Discusses real-world usability and ergonomics for blind users.
• Helps guide future research and development in assistive technologies.

Disadvantages:

• Lacks experimental validation or performance testing of the surveyed systems.


• Some newer technologies (e.g., AI-based computer vision) may not be covered in
depth due to the publication year.
• The effectiveness of different approaches varies depending on environmental
conditions and user adaptability.
• Cost and accessibility challenges of advanced ETAs are not deeply explored.

4
4. Title: Detecting Text in Natural Scenes with Stroke Width Transform

Year: 2010

Author(s): B. Epshtein, E. Ofek, and Y. Wexler

Methodology:
The authors propose a novel Stroke Width Transform (SWT) technique for detecting
text in natural scene images. The method is based on the observation that text characters
have nearly uniform stroke widths. The algorithm first applies edge detection using a
Canny edge detector, followed by computing stroke width for each pixel. The system
then groups pixels with similar stroke widths into connected components, which are
further classified as text or non-text using geometric and heuristic rules. This method
improves text localization accuracy by distinguishing text from background clutter more
effectively.

Advantages:

• High accuracy in detecting text, even in complex backgrounds.


• Robust against variations in font size, color, and orientation.
• Works well for both machine-printed and hand-written text.
• Computationally efficient compared to traditional OCR-based approaches.

Disadvantages:

• Sensitive to noise and poor lighting conditions, which may affect stroke width
estimation.
• Struggles with blurred or low-resolution images, leading to reduced accuracy.
• Performance degrades with curved or highly stylized text.
• May require additional post-processing to improve text recognition for OCR
applications.

5
5. Title: A Smart Android-Based Assistive System for the Visually Impaired

Year:2015
Author(s): P. Kumar, R. Sharma, and M. Singh

Methodology:
The proposed system integrates Android’s accessibility features with voice commands,
text-to-speech (TTS), and gesture-based controls. The system uses MySQL for
managing user preferences and storing important data. It also leverages speech
recognition APIs for command execution, assisting blind users in navigating their
devices efficiently.

Advantages:

• Provides voice-based assistance for hands-free device control.


• Utilizes gesture-based interactions for easier navigation.
• Stores user preferences in a MySQL database for better customization.
• Enhances independence and accessibility for blind users.

Disadvantages:

• Limited AI integration, making text and object recognition less efficient.


• High dependency on internet connectivity for real-time voice processing.
• Performance issues on low-end devices due to processing overhead.

6
6. Title: Mobile Assistive Technologies for the Blind: A Review

Year:2017
Author(s): S. Patel and L. Roy

Methodology:
This paper surveys various mobile assistive technologies designed for blind users,
including Android-based navigation and accessibility applications. It highlights
speech recognition, image processing, and database management as key technologies
for effective assistive solutions. The study compares different Android-based systems
developed using Eclipse and MySQL for accessibility enhancements.

Advantages:

• Comprehensive analysis of different assistive technologies.


• Highlights the role of Eclipse-based Android development in accessibility
solutions.
• Discusses database management for storing user preferences.

Disadvantages:

• Does not propose a specific implementation or system architecture.


• Lacks real-world testing and user feedback analysis.
• Does not explore machine learning-based accessibility improvements.

7
2. SYSTEM STUDY
2.1 FEASIBILITY STUDY

The feasibility of the project is analyzed in this phase and business proposal is put
forth with a very general plan for the project and some cost estimates. During system
analysis the feasibility study of the proposed system is to be carried out. This is to ensure
that the proposed system is not a burden to the company. For feasibility analysis, some
understanding of the major requirements for the system is essential.

Three key considerations involved in the feasibility analysis are

2.1.1 ECONOMICAL FEASIBILITY

2.1.2 TECHNICAL FEASIBILITY

2.1.3 SOCIAL FEASIBILITY

2.1.1 ECONOMICAL FEASIBILITY

An organization makes good investment on the system. So, they should be


worthful for the amount they spend in the system. Always the financial benefit and equals
or less the cost of the system, but should not exceed the cost.

➢ The cost of investment is analyzed for the entire system

➢ The cost of Hardware and Software is also noted.

➢ Analyzing the way in which the cost can be reduced

Every organization wants to reduce there cost but at the same time quality of the
Service should also be maintained. The system is developed according the estimation of
the cost made by the concern. In this project, the proposed system will definitely reduce
the cost and also the manual work is reduced and speed of work is also increased.

8
2.1.2 TECHNICAL FEASIBILITY

The Technical feasibility is the study of the software and how it is included in the
study of our project. Regarding this there are some technical issues that should be noted
they are as follows:

• Is the necessary technique available and how it is suggested and acquired?

• Does the proposed equipment have the technical capacity to hold the data
required using the new system?

• Will the system provide adequate response that is made by the requester at
an periodic time interval

• Can this system be expanded after this project development

• Is there a technique guarantees of accuracy, reliability in case of access of


data and security

The technical issues are raised during the feasibility study of investigating our
System. Thus, the technical consideration evaluates the hardware requirements, software
etc. This system uses Android as front end and Mysql as back end. They also provide
sufficient memory to hold and process the data. As the company is going to install all the
process in the system it is the cheap and efficient technique.

This system technique accepts the entire request made by the user and the
response is done without failure and delay. It is a study about the resources available and
how they are achieved as an acceptable system. It is an essential process for analysis and
definition of conducting a parallel assessment of technical feasibility.

Though storage and retrieval of information is enormous, it can be easily handled


by Mysql. As the Mysql can be run in any system and the operation does not differ from
one to another. So, this is effective.

9
2.1.3 SOCIAL FEASIBILITY

Proposed project will be beneficial only when they are turned into an information
system and to meet the organization operating requirements. The following issues are
considered for the operation:

• Does this system provide sufficient support for the user and the management?

• What is the method that should be used in this project?

• Have the users been involved in the planning and development of the projects?

• Will the proposed system cause any harm, bad result, loss of control and
accessibility of the system will lost?

Issues that may be a minor problem will sometimes cause major problem in the
operation. It is the measure of how people can able to work with the system. Finding out
the minor issues that may be the initial problem of the system. It should be a user-
friendly environment. All these aspect should be kept in mind and steps should be taken
for developing the project carefully.

Regarding the project, the system is very much supported and friendly for the
user. The methods are defined in an effective manner and proper conditions are given in
other to avoid the harm or loss of data. It is designed in GUI interface, as working will be
easier and flexible for the user.

They are three basic feasibility studies that are done in every project.

10
3. SYSTEM ANALYSIS
3.1 EXISTING SYSTEM
In existing system visually impaired people used to shop with the help of other people.
They need assistance from other normal peoples. Since no products in the shopping malls
contains brails. Otherwise they need to ask assistance of the peoples in the shop. This is
a tough task. So to assist the visually impaired people we need to develop some
application.

DISADVANTAGES OF EXISTING SYSTEM:

• One major drawback is its limited real-time processing capability, as the system
may struggle with delays in voice recognition and object identification, especially
on lower-end devices.
• The reliance on Eclipse as the development environment can also be a
disadvantage, as it is outdated compared to modern IDEs like Android Studio,
which offer better performance, debugging tools, and support for newer Android
features.
• Additionally, the system's dependence on MySQL for data storage may lead to
latency issues, particularly when handling large datasets or performing frequent
database queries.
• Another challenge is the lack of advanced AI-based features, such as deep
learning for more accurate object detection and natural language processing (NLP)
for improved voice interactions.

11

3.2 PROPOSED SYSTEM
The proposed system is runs in Android a popular mobile platform. Almost all of
the users having a smart phone. But above ninety percentage of devices runs in Android.
So developing a application in Android reaches all the population immediately. So to
help the visually impaired people in shopping we develop the application in Android.
This application reads the product information from the QR code. The QR code is
generated using the PHP language. It is the popular web scripting language. While
generating the QR code the product information is embedded inside it.

ADVANTAGES OF PROPOSED SYSTEM:

• By integrating advanced voice recognition and text-to-speech (TTS) technologies,


the system ensures more accurate and responsive voice interactions, enabling
users to navigate their devices seamlessly.
• The system leverages gesture-based controls for intuitive operation, reducing
reliance on complex touch interactions. With optimized database management in
MySQL, data retrieval and storage are faster, ensuring quick access to essential
information like contacts, messages, and navigation history.
• The proposed system also enhances real-time object detection and environmental
awareness by integrating AI-powered computer vision, helping users identify
obstacles and read text from images.
• Additionally, improvements in offline functionality allow key features to operate
without an internet connection, making the system more reliable in various
environments.

12
4. SYSTEM SPECIFICATION
4.1. HARDWARE CONFIGURATION

The Below Hardware Specifications were used in both Server and Client
machines when developing.

Processor : Intel(R) Core(TM) i3


Processor Speed : 3.06 GHz
RAM : 2 GB
Hard Disk Drive : 250 GB
CD-ROM Drive : Sony
Monitor : “17” inches
Keyboard : TVS Gold
Mouse : Logitech

4.2. SOFTWARE CONFIGURATION

The below Software Specifications were used in machines when developing.

Operating System : Windows 7


Technology Used : Android
IDE : Eclipse
Database : MySql

13
5. DETAIL DESCRIPTION OF TECHNOLOGY
5.1. ANDORID

Android is a software stack for mobile devices that includes an operating system,
middleware and key applications. Google Inc. purchased the initial developer of the
software, Android Inc., in 2005.

Android's mobile operating system is based on the Linux kernel. Google and other
members of the Open Handset Alliance collaborated on Android's development and
release. The Android Open Source Project (AOSP) is tasked with the maintenance and
further development of Android. The Android operating system is the world's best-selling
Smartphone platform.

The Android SDK provides the tools and APIs necessary to begin developing
applications Android platform using the Java programming language. Android has a
large community of developers writing applications ("apps") that extend the
functionality of the devices. There are currently over 250,000 apps available for
Android.

Features

• Application framework enabling reuse and replacement of components


• Dalvik virtual machine optimized for mobile devices
• Integrated browser based on the open source WebKit engine
• Optimized graphics powered by a custom 2D graphics library; 3D graphics based
on the OpenGL ES 1.0 specification (hardware acceleration optional)
• SQLite for structured data storage
• Media support for common audio, video, and still image formats (MPEG4, H.264,
MP3, AAC, AMR, JPG, PNG, GIF)
• GSM Telephony (hardware dependent)
• Bluetooth, EDGE, 3G, and WiFi (hardware dependent)
• Camera, GPS, compass, and accelerometer (hardware dependent)
• Rich development environment including a device emulator, tools for debugging,
memory and performance profiling, and a plugin for the Eclipse IDE

14
Android Architecture

Libraries

Android includes a set of C/C++ libraries used by various components of the Android
system. These capabilities are exposed to developers through the Android application
framework. Some of the core libraries are listed below:

• System C library - a BSD-derived implementation of the standard C system


library (libc), tuned for embedded Linux-based devices
• Media Libraries - based on PacketVideo's OpenCORE; the libraries support
playback and recording of many popular audio and video formats, as well as static
image files, including MPEG4, H.264, MP3, AAC, AMR, JPG, and PNG
• Surface Manager - manages access to the display subsystem and seamlessly
composites 2D and 3D graphic layers from multiple applications
• LibWebCore - a modern web browser engine which powers both the Android
browser and an embeddable web view
• SGL - the underlying 2D graphics engine

15
• 3D libraries - an implementation based on OpenGL ES 1.0 APIs; the libraries use
either hardware 3D acceleration (where available) or the included, highly
optimized 3D software rasterizer
• FreeType - bitmap and vector font rendering
• SQLite - a powerful and lightweight relational database engine available to all
applications

Important Android components

An Android application consists out of the following parts:

• Activity - Represents the presentation layer of an Android application, e.g. a


screen which the user sees. An Android application can have several activities and
it can be switched between them during runtime of the application.
• Views - The User interface of an Activities is build with widgets classes which
inherent from "android.view.View". The layout of the views is managed by
"android.view.ViewGroups".
• Services - perform background tasks without providing an UI. They can notify the
user via the notification framework in Android.
• Content Provider - provides data to applications, via a content provider your
application can share data with other applications. Android contains a SQLite DB
which can serve as data provider
• Intents are asynchronous messages which allow the application to request
functionality from other services or activities. An application can call directly a
service or activity (explicit intent) or asked the Android system for registered
services and applications for an intent (implicit intents). For example the
application could ask via an intent for a contact application. Application register
themself to an intent via an IntentFilter. Intents are a powerful concept as they
allow to create loosely coupled applications.
• Broadcast Receiver - receives system messages and implicit intents, can be used
to react to changed conditions in the system. An application can register as a
broadcast receiver for certain events and can be started if such an event occurs.
• A Java Virtual Machine (JVM) enables a set of computer software programs and
data structures to use a virtual machine model for the execution of other computer
programs and scripts. The model used by a JVM accepts a form of computer

16
intermediate language commonly referred to as Java bytecode. This language
conceptually represents the instruction set of a stack-oriented, capability
architecture. Sun Microsystems states there are over 4.5 billion JVM-enabled
devices

• A JVM can also execute bytecode compiled from programming languages other
than Java. For example, Ada source code can be compiled to execute on a JVM.
JVMs can also be released by other companies besides Oracle (the developer of
Java) — JVMs using the "Java" trademark may be developed by other companies
as long as they adhere to the JVM specification published by Oracle and to related
contractual obligations.
• Java was conceived with the concept of WORA: "write once, run anywhere". This
is done using the Java Virtual Machine. The JVM is the environment in which
java programs execute. It is software that is implemented on non-virtual hardware
and on standard operating systems.
• JVM is a crucial component of the Java platform, and because JVMs are available
for many hardware and software platforms, Java can be both middleware and a
platform in its own right,[clarification needed]
hence the trademark write once, run
anywhere. The use of the same bytecode for all platforms allows Java to be
described as "compile once, run anywhere", as opposed to "write once, compile
anywhere", which describes cross-platform compiled languages. A JVM also
enables such features as automated exception handling, which provides "root-
cause" debugging information for every software error (exception), independent
of the source code.
• A JVM is distributed along with a set of standard class libraries that implement
the Java application programming interface (API). Appropriate APIs bundled
together form the Java Runtime Environment (JRE).
• Java's execution environment is termed the Java Runtime Environment, or JRE.
• Programs intended to run on a JVM must be compiled into a standardized portable
binary format, which typically comes in the form of .class files. A program may
consist of many classes in different files. For easier distribution of large programs,
multiple class files may be packaged together in a .jar file (short for Java archive).
• The Java application launcher, java, offers a standard way of executing Java code.
Compare javaw.[2]

17
• The JVM runtime executes .class or .jar files, emulating the JVM instruction set
by interpreting it, or using a just-in-time compiler (JIT) such as Oracle's HotSpot.
JIT compiling, not interpreting, is used in most JVMs today to achieve greater
speed. There are also ahead-of-time compilers that enable developers to
precompile class files into native code for particular platforms.
• Like most virtual machines, the Java Virtual Machine has a stack-based
architecture akin to a microcontroller/microprocessor. However, the JVM also has
low-level support for Java-like classes and methods, which amounts to a highly
idiosyncratic[clarification needed] memory model and capability-based architecture.

Installing the SDK

Step 1. Preparing Your Development Computer

Before getting started with the Android SDK, take a moment to confirm that your
development computer meets the System Requirements. In particular, you might need to
install the JDK, if you don't have it already.

If you will be developing in Eclipse with the Android Development Tools (ADT)
Plugin—the recommended path if you are new to Android—make sure that you have a
suitable version of Eclipse installed on your computer as described in the System
Requirements document. If you need to install Eclipse, you can download it from this
location:

The "Eclipse Classic" version is recommended. Otherwise, a Java or RCP version of


Eclipse is recommended.

Use the Eclipse update manager to install all available plugins for the Android
Development Tools (ADT) from the URL https://dl-ssl.google.com/android/eclipse/ .

Configuration

In Eclipse open the Preferences dialog via Windows -> Preferences. Select Android and
maintain the installation path of the Android SDK.

18
Select Window -> Android SDK and AVD Manager from the menu.

Select available packages and select the latest version of the SDK.

Step 2. Downloading the SDK Starter Package

The SDK starter package is not a full development environment—it includes only the
core SDK Tools, which you can use to download the rest of the SDK components (such
as the latest Android platform).

If you haven't already, get the latest version of the SDK starter package from the SDK
download page.

If you downloaded a .zip or .tgz package (instead of the SDK installer), unpack it to a safe
location on your machine. By default, the SDK files are unpacked into a directory named
android-sdk-<machine-platform>.

19
If you downloaded the Windows installer (.exe file), run it now and it will check whether
the proper Java SE Development Kit (JDK) is installed (installing it, if necessary), then
install the SDK Tools into a default location (which you can modify).

Make a note of the name and location of the SDK directory on your system—you will
need to refer to the SDK directory later, when setting up the ADT plugin and when using
the SDK tools from the command line.

Step 3. Installing the ADT Plugin for Eclipse

Android offers a custom plugin for the Eclipse IDE, called Android Development Tools
(ADT), that is designed to give you a powerful, integrated environment in which to build
Android applications. It extends the capabilites of Eclipse to let you quickly set up new
Android projects, create an application UI, debug your applications using the Android
SDK tools, and even export signed (or unsigned) APKs in order to distribute your
application. In general, developing in Eclipse with ADT is a highly recommended
approach and is the fastest way to get started with Android.

20
If you'd like to use ADT for developing Android applications, install it now. Read
Installing the ADT Plugin for step-by-step installation instructions, then return here to
continue the last step in setting up your Android SDK.

If you prefer to work in a different IDE, you do not need to install Eclipse or ADT.
Instead, you can directly use the SDK tools to build and debug your application. The
Introduction to Android application development outlines the major steps that you need to
complete when developing in Eclipse or other IDEs.

Step 4. Adding Platforms and Other Components

The last step in setting up your SDK is using the Android SDK and AVD Manager (a tool
included in the SDK starter package) to download essential SDK components into your
development environment.

21
The SDK uses a modular structure that separates the major parts of the SDK—Android
platform versions, add-ons, tools, samples, and documentation—into a set of separately
installable components. The SDK starter package, which you've already downloaded,
includes only a single component: the latest version of the SDK Tools. To develop an
Android application, you also need to download at least one Android platform and the
associated platform tools. You can add other components and platforms as well, which is
highly recommended.

If you used the Windows installer, when you complete the installation wizard, it will
launch the Android SDK and AVD Manager with a default set of platforms and other
components selected for you to install. Simply click Install to accept the recommended set
of components and install them. You can then skip to Step 5, but we recommend you first
read the section about the Available Components to better understand the components
available from the Android SDK and AVD Manager.

22
You can launch the Android SDK and AVD Manager in one of the following ways:

• From within Eclipse, select Window > Android SDK and AVD Manager.
• On Windows, double-click the SDK Manager.exe file at the root of the Android
SDK directory.
• On Mac or Linux, open a terminal and navigate to the tools/ directory in the
Android SDK, then execute:

To download components, use the graphical UI of the Android SDK and AVD Manager
to browse the SDK repository and select new or updated components (see figure 1). The
Android SDK and AVD Manager installs the selected components in your SDK
environment. For information about which components you should download, see
Recommended Components.

The Android Repository offers these types of components:

• SDK Tools — Contains tools for debugging and testing your application and other
utility tools. These tools are installed with the Android SDK starter package and
receive periodic updates. You can access these tools in the <sdk>/tools/ directory
of your SDK. To learn more about them, see SDK Tools in the developer guide.
• SDK Platform-tools — Contains platform-dependent tools for developing and
debugging your application. These tools support the latest features of the Android
platform and are typically updated only when a new platform becomes available.
You can access these tools in the <sdk>/platform-tools/ directory. To learn more
about them, see Platform Tools in the developer guide.
• Android platforms — An SDK platform is available for every production Android
platform deployable to Android-powered devices. Each SDK platform component
includes a fully compliant Android library, system image, sample code, and
emulator skins. To learn more about a specific platform, see the list of platforms
that appears under the section "Downloadable SDK Components" on the left part
of this page.
• USB Driver for Windows (Windows only) — Contains driver files that you can
install on your Windows computer, so that you can run and debug your
applications on an actual device. You do not need the USB driver unless you plan
to debug your application on an actual Android-powered device. If you develop

23
on Mac OS X or Linux, you do not need a special driver to debug your application
on an Android-powered device. See Using Hardware Devices for more
information about developing on a real device.
• Samples — Contains the sample code and apps available for each Android
development platform. If you are just getting started with Android development,
make sure to download the samples to your SDK.
• Documentation — Contains a local copy of the latest multiversion documentation
for the Android framework API.

ECLIPSE:

Eclipse is an open source community whose projects are focused on building an


extensible development platform, runtimes and application frameworks for building,
deploying and managing software across the entire software lifecycle. Many people know
us, and hopefully love us, as a Java IDE but Eclipse is much more than a Java IDE.

The Eclipse open source community has over 60 open source projects. These projects can
be conceptually organized into seven different "pillars" or categories:

1. Enterprise Development
2. Embedded and Device Development
3. Rich Client Platform
4. Rich Internet Applications
5. Application Frameworks
6. Application Lifecycle Management (ALM)
7. Service Oriented Architecture (SOA)

The Eclipse community is also supported by a large and vibrant ecosystem of major IT
solution providers, innovative start-ups, universities and research institutions and
individuals that extend, support and complement the Eclipse Platform.

The exciting thing about Eclipse is many people are using Eclipse in ways that we have
never imagined. The common thread is that they are building innovative, industrial
strength software and want to use great tools, frameworks and runtimes to make their job
easier.

24
Eclipse is a multi-language software development environment comprising an integrated
development environment (IDE) and an extensible plug-in system. It is written mostly in
Java and can be used to develop applications in Java and, by means of various plug-ins,
other programming languages including Ada, C, C++, COBOL, Perl, PHP, Python, Ruby
(including Ruby on Rails framework), Scala, Clojure, and Scheme. The IDE is often
called Eclipse ADT for Ada, Eclipse CDT for C/C++, Eclipse JDT for Java, and Eclipse
PDT for PHP.

ARCHITECTURE:

Eclipse employs plug-ins in order to provide all of its functionality on top of (and
including) the runtime system, in contrast to some other applications where functionality
is typically hard coded. The runtime system of Eclipse is based on Equinox, an OSGi
standard compliant implementation.

This plug-in mechanism is a lightweight software componentry framework. In addition to


allowing Eclipse to be extended using other programming languages such as C and
Python, the plug-in framework allows Eclipse to work with typesetting languages like
LaTeX,[2] networking applications such as telnet, and database management systems. The
plug-in architecture supports writing any desired extension to the environment, such as
for configuration management. Java and CVS support is provided in the Eclipse SDK,
with Subversion support provided by third-party plug-ins.

With the exception of a small run-time kernel, everything in Eclipse is a plug-in. This
means that every plug-in developed integrates with Eclipse in exactly the same way as
other plug-ins; in this respect, all features are "created equal". Eclipse provides plug-ins
for a wide variety of features, some of which are through third parties using both free and
commercial models. Examples of plug-ins include a UML plug-in for Sequence and other
UML diagrams, a plug-in for DB Explorer, and many others.

The Eclipse SDK includes the Eclipse Java Development Tools (JDT), offering an IDE
with a built-in incremental Java compiler and a full model of the Java source files. This
allows for advanced refactoring techniques and code analysis. The IDE also makes use of
a workspace, in this case a set of metadata over a flat filespace allowing external file
modifications as long as the corresponding workspace "resource" is refreshed afterwards.

25
Eclipse implements widgets through a widget toolkit for Java called SWT, unlike most
Java applications, which use the Java standard Abstract Window Toolkit (AWT) or
Swing. Eclipse's user interface also uses an intermediate GUI layer called JFace, which
simplifies the construction of applications based on SWT.

Rich Client Platform

• Equinox OSGi – a standard bundling framework


• Core platform – boot Eclipse, run plug-ins
• Standard Widget Toolkit (SWT) – a portable widget toolkit
• JFace – viewer classes to bring model view controller programming to SWT, file
buffers, text handling, text editors
• Eclipse Workbench – views, editors, perspectives, wizards

History

Eclipse began as an IBM Canada project. It was developed by Object Technology


International (OTI) as a Java-based replacement for the Smalltalk based VisualAge
family of IDE products,[4] which itself had been developed by OTI.[1] In November 2001,
a consortium was formed to further the development of Eclipse as open source. In
January 2004, the Eclipse Foundation was created.[5]

Eclipse 3.0 (released on 21 June 2004) selected the OSGi Service Platform specifications
as the runtime architecture.[6]

Eclipse was originally released under the Common Public License, but was later
relicensed under the Eclipse Public License. The Free Software Foundation has said that
both licenses are free software licenses, but are incompatible with the GNU General
Public License (GPL).[7] Mike Milinkovich, of the Eclipse Foundation commented that
moving to the GPL would be considered when version 3 of the GPL was released.[8]

According to Lee Nackman, Chief Technology Officer of IBM's Rational division at that
time and later head of Rational software development and support, the name "Eclipse"
was chosen to target Microsoft's Visual Studio product, and not Sun Microsystems.[9]
Ironically, Nackman is now himself a Microsoft employee.

26
Eclipse (SDK)

Eclipse Software Development Kit (SDK) is a Java based open-source integrated


development environment (IDE) which combines a number of different Eclipse projects
including Platform, Java Development Tools (JDT) and the Plug-in Development
Environment (PDE).

Eclipse can be used to create a large array of software applications using languages
ranging from PHP, C++ programs, to Java. It is one of the most popular development
tools in both the open-source and commercial worlds.

It provides Java editing with validation, incremental compilation, cross-referencing, code


assist; an XML Editor; Mylyn; and much more.

Eclipse is released under the Eclipse Foundation, a commercially friendly license that
allows organizations to include Eclipse software in their commercial products, while at
the same time asking those who create derivative works of EPL code to contribute back to
the community.

27
Eclipse Platform

The Eclipse Platform provides the core frameworks and services upon which all plug-in
extensions are created. It also provides the runtime in which plug-ins are loaded,
integrated, and executed. The primary purpose of the Platform is to enable other tool
developers to easily build and deliver integrated tools.

Features include:

• Supports the construction of a variety of tools for application development


• Supports an unrestricted set of tool providers, including independent software
vendors (ISVs)
• Supports tools to manipulate arbitrary content types (e.g., HTML, Java, C, JSP,
EJB, XML, and GIF)
• Facilitates seamless integration of tools within and across different content types
and tool providers
• Supports both GUI and non-GUI-based application development environments

Java Development Tools (JDT)

The JDT project provides the tool plug-ins that implement a Java IDE supporting the
development of any Java application, including Eclipse plug-ins. It adds a Java project
nature and Java perspective to the Eclipse Workbench as well as a number of views,
editors, wizards, builders, and code merging and refactoring tools. The JDT project
allows Eclipse to be a development environment for itself.

Features include:

• Java projects with source files arranged in package directories


• Editing with keyword and syntax coloring, outline showing declaration structure
• Code formatter
• Refactoring
• Search
• Compare
• Compile - JCK-compliant Java compiler
• Run Java programs in a separate target Java virtual machine.

28
Android Source Code

The following step is optional.

During Android development it is very useful to have the Android source code available
as Android uses a lot of defaults.

Haris Peco maintains plugins with provides access to the Android Source code. Use
the Eclipse update manager to install two of his plugins.

Create an Android Emulator Device

The Android tools include an emulator. This emulator behaves like a real Android device
in most cases and allow you to test your application without having a real device. You
can emulate one or several devices with different configurations. Each configuration is
defined via an "Android Virtual Device" (AVD).

To define an AVD press the device manager button, press "New" and maintain the
following.

29
Press "Create AVD".This will create the device and display it under the "Virtual devices".
To test if your setup is correct, select your device and press "Start".

30
4. Error handling
Things are not always working as they should be. Several users report that get the
following errors:
1. Project ... is missing required source folder: 'gen'
2. The project could not be built until build path errors are resolved.
3. Unable to open class file R.java.
To solve this error select from the menu Project -> Clean.
If you having problems with your own code you can use the LogCat viewer as described
in LogCat Viewer .

31
5.2. Mysql
MySQL (http://www.mysql.com) is a robust SQL database server developed and
maintained by T.c.X DataKonsultAB of Stockholm, Sweden. Publically available since
1995, MySQL has risen to become one of the most popular database servers in the world,
this popularity due in part to the server’s speed, robustness, and
flexible licensing policy. (See note for more information regarding MySQL’s licensing
strategy.)
Given the merits of MySQL’s characteristics, coupled with a vast and extremely easy-to-
use set of predefined interfacing functions, MySQL has arguably become PHP’s most-
popular database counterpart.

Installation
MySQL is so popular among PHP users that support for the db server is
automatically built into the PHP distribution. Therefore, the only task that you are left to
deal with is the proper installation of the MySQL package. MySQL is compatible with
practically every major operating system, including, among others, FreeBSD, Solaris,
UNIX, Linux, and the various Windows versions. While the licensing policy is
considerably more flexible than that of other database servers, I strongly suggest taking
some time to read through the licensing information found at the MySQL site
(http://www.mysql.com).
You can download the latest version of MySQL from one of the many worldwide
mirrors. A complete listing of these mirrors is at http://www.mysql.com/
downloads/mirrors.html. At the time of this writing the latest stable version of MySQL
was 3.22.32, with version 3.23 in beta. It is in your best interest to always download the
latest stable version. Go to the mirror closest to you and download the version that
corresponds with your operating system platform. You’ll see links at the top of the page
pointing to the most recent versions. Be sure to read through the entire page, as several
OS-specific downloads are at the conclusion. The MySQL development team has done a
great job putting together extensive documentation regarding the installation process.

32
Configuring MySQL
After a successful installation, it is time to configure the MySQL server. This
process largely consists of creating new databases and configuring the MySQL privilege
tables. The privilege tables control the MySQL database access permissions. Correct
configuration of these tables is pivotal to securing your database system, and therefore it
is imperative that you fully understand the details of the privilege system before
launching your site into a production environment. Although a chore to learn at first, the
MySQL privilege tables are extremely easy to maintain once you understand them. A
complete introduction to these tables is certainly out of the scope of this book. However,
a number of resources available on the Web are geared toward bringing MySQL users up
to speed. Check out the MySQL site (http://www.mysql.com) for further information.
Once you have correctly installed and configured the MySQL distribution, it’s time to
begin experimenting with Web-based databasing! The next section turns our attention
towards exactly this matter, starting with an introduction of PHP’s MySQL functionality.

MySQL Functions
Once you have created and successfully tested the necessary permissions, you are
ready to begin using the MySQL server. In this section, I introduce the predefined
MySQL functions, enabling you to easily interface your PHP scripts with a MySQL
server. Here is the general order of events that take place during the MySQL server
communications process: 1. Establish a connection with the MySQL server. If the
connection attempt fails, display an appropriate message and exit process. 2. Select a
database on the MySQL server. If you cannot select the database, display an appropriate
message and exit process. It’s possible to simultaneously have several databases open for
querying. 3. Perform necessary queries on selected database(s). 4. Once the querying is
complete, close the database server connection. The example tables (products, customers,
orders) in Figure 11-1 are used as the basis for the examples in the remainder of this
section. If you would like to follow along with these examples, I suggest going back and
creating them now. Alternatively, make a copy of the pages so you do not have to
continuously flip back and forth. With that said, let’s begin at the beginning, that is, how
to connect to the MySQL database server.

33
6. SYSTEM DESIGN
6.1. INPUT DESIGN

The input design is the link between the information system and the user. It
comprises the developing specification and procedures for data preparation and those
steps are necessary to put transaction data in to a usable form for processing can be
achieved by inspecting the computer to read data from a written or printed document or it
can occur by having people keying the data directly into the system. The design of input
focuses on controlling the amount of input required, controlling the errors, avoiding
delay, avoiding extra steps and keeping the process simple. The input is designed in such
a way so that it provides security and ease of use with retaining the privacy. Input Design
considered the following things:

➢ What data should be given as input?

➢ How the data should be arranged or coded?

➢ The dialog to guide the operating personnel in providing input.

➢ Methods for preparing input validations and steps to follow when error occur.

OBJECTIVES

1. Input Design is the process of converting a user-oriented description of the input into
a computer-based system. This design is important to avoid errors in the data input
process and show the correct direction to the management for getting correct
information from the computerized system.
2. It is achieved by creating user-friendly screens for the data entry to handle large
volume of data. The goal of designing input is to make data entry easier and to be free
from errors. The data entry screen is designed in such a way that all the data
manipulates can be performed. It also provides record viewing facilities.
3. When the data is entered it will check for its validity. Data can be entered with the
help of screens. Appropriate messages are provided as when needed so that the user
will not be in maize of instant. Thus the objective of input design is to create an input
layout that is easy to follow

34
6.2. OUTPUT DESIGN

A quality output is one, which meets the requirements of the end user and presents
the information clearly. In any system results of processing are communicated to the users
and to other system through outputs. In output design it is determined how the
information is to be displaced for immediate need and also the hard copy output. It is the
most important and direct source information to the user. Efficient and intelligent output
design improves the system’s relationship to help user decision-making.

1. Designing computer output should proceed in an organized, well thought out manner;
the right output must be developed while ensuring that each output element is
designed so that people will find the system can use easily and effectively. When
analysis design computer output, they should Identify the specific output that is
needed to meet the requirements.
2. Select methods for presenting information.
3. Create document, report, or other formats that contain information produced by the
system.
The output form of an information system should accomplish one or more of the
following objectives.

❖ Convey information about past activities, current status or projections of the

❖ Future.

❖ Signal important events, opportunities, problems, or warnings.

❖ Trigger an action.

❖ Confirm an action.

35
6.3. DATABASE DESIGN
Admin
Column Type Constraints
userid varchar(100) Primary Key
pwd varchar(100)

Pcategory
Column Type Constraints
catname varchar(100) Primary Key

Products
Column Type Constraints
id int(11) Primary Key
catname varchar(100)
pname varchar(100)
brand varchar(100)
units varchar(50)
price varchar(50)
qr varchar(500)

36
7. SYSTEM ARCHITECTURE
7.1. SYSTEM ARCHITECTURE

A system architecture or systems architecture is the computational design that


defines the structure and/or behavior of a system.
An architecture description is a formal description of a system, organized in a way
that supports reasoning about the structural properties of the system. It defines the system
components or building blocks and provides a plan from which products can be procured,
and systems developed , that will work together to implement the overall system.

37
7.2. DATA FLOW DIAGRAM

Admin Login

No
Validate

Yes

Category category

View Category

Delete

New product product

View Product

Delete

Edit Product product

View Info

Modify

Select product
Category

Print QR Code

User

Scan QR code

Reads Data from QR

Output as Sound
38
7.3. UML DIAGRAM

7.3.1. USE CASE DIAGRAM

A use case diagram in the Unified Modeling Language (UML) is a type of


behavioral diagram defined by and created from a Use-case analysis. Its purpose is to
present a graphical overview of the functionality provided by a system in terms of actors,
their goals (represented as use cases), and any dependencies between those use cases. The
main purpose of a use case diagram is to show what system functions are performed for
which actor. Roles of the actors in the system can be depicted.

Login

upload

Broker
Data set request

View user

User
Data Set type

Upload data set

Download

39
7.3.2. SEQUENCE DIAGRAM

A sequence diagram in Unified Modeling Language (UML) is a kind of


interaction diagram that shows how processes operate with one another and in what order.
It is a construct of a Message Sequence Chart. Sequence diagrams are sometimes called
event diagrams, event scenarios, and timing diagrams.

Sequence Diagram for Admin :

Login Product Category

Admin

Admin Login
To view new
product details
and delete
product

To view new
category and
edit category
details

40
Sequence Diagram for USER:

Login Scan QR Code Output

User

User
login

Reads data
from QR

View output
as Sound

41
7.3.3. ACTIVITY DIAGRAM
Activity diagrams are graphical representations of workflows of stepwise
activities and actions with support for choice, iteration and concurrency. In the Unified
Modeling Language, activity diagrams can be used to describe the business and
operational step-by-step workflows of components in a system. An activity diagram
shows the overall flow of control.

Login

Admin User

Product Scan QR code

Category Output as Sound

42
7.3.4. CLASS DIAGRAM

In software engineering, a class diagram in the Unified Modeling Language


(UML) is a type of static structure diagram that describes the structure of a system by
showing the system's classes, their attributes, operations (or methods), and the
relationships among the classes. It explains which class contains information.
Class Diagram for Admin:

Product Category

View and edit View and edit


product details category details

View () View ()

43
Class Diagram for USER:

User

Login on User

Login ()

Scan QR code Output

Reads data From QR Output as Sound

read() Output()

44
8. SYSTEM IMPLEMENTATION
Implementation is the stage in the project where the theoretical design is turned
into a working system. The most critical stage is achieving a successful system and in
giving confidence on the new system for the users, what it will work efficient and
effectively. It involves careful planning, investing of the current system, and its
constraints on implementation, design of methods to achieve the change over methods.
The implementation process begins with preparing a plan for the implementation
of the system. According to this plan, the activities are to be carried out in these plans;
discussion has been made regarding the equipment, resources and how to test activities.
The coding step translates a detail design representation into a programming
language realization. Programming languages are vehicles for communication between
human and computers programming language characteristics and coding style can
profoundly affect software quality and maintainability. The coding is done with the
following characteristics in mind.
• Ease of design to code translation.
• Code efficiency.
• Memory efficiency.
• Maintainability.
Implementation is the stage of the project when the theoretical design is turned out
into a working system. Thus it can be considered to be the most critical stage in achieving
a successful new system and in giving the user, confidence that the new system will work
and be effective.

45
9. SYSTEM TESTING
System Testing is an important stage in any system development life cycle.
Testing is a process of executing a program with the intention of finding errors. The
importance of software testing and its implications with respect to software quality cannot
be overemphasized. Software testing is a critical element of software quality assurance
and represents the ultimate review of specification, design and coding. A good test case is
one that has a high probability of finding a yet undiscovered error.

The purpose of testing is to discover errors. Testing is the process of trying to


discover every conceivable fault or weakness in a work product. It provides a way to
check the functionality of components, sub assemblies, assemblies and/or a finished
product It is the process of exercising software with the intent of ensuring that the
Software system meets its requirements and user expectations and does not fail in an
unacceptable manner. There are various types of test. Each test type addresses a specific
testing requirement.

Testing is the set of activities that can be planned in advance and


conducted systematically. Different test conditions should be thoroughly checked and the
bugs detected should be fixed. The testing strategies formed by the user are performed to
prove that the software is free and clear from errors. To do this, there are many ways of
testing the system’s reliability, completeness and maintainability.

The important phase of software development is concerned with translating the


design specification into the error-free source code. Testing is carried out to ensure that
the system does not fail, that it meets the specification and it satisfies the user. The system
testing was carried out in a systematic manner with a test data containing all possible
combinations of data to check the features of the system. A test data was prepared for
each module, which took care of all the modules of the program.

System Testing is an important stage where the system developed is tested with
duplicate or original data. It is a process of executing a program with the intent of finding
an error. It is a critical process that can consume fifty percent of the development time.

46
The following are the attributes of good test:
▪ A good test is not redundant.
▪ A good test should be "best of breed".
▪ A good test should be neither simple nor too complex.
The purpose of testing is to discover errors. Testing is the process of trying to
discover every conceivable fault or weakness in a work product. It provides a way to
check the functionality of components, sub assemblies, assemblies and/or a finished
product It is the process of exercising software with the intent of ensuring that the

TYPES OF TESTS
Unit testing
Unit testing involves the design of test cases that validate that the internal program
logic is functioning properly, and that program inputs produce valid outputs. All decision
branches and internal code flow should be validated. It is the testing of individual
software units of the application .it is done after the completion of an individual unit
before integration. This is a structural testing, that relies on knowledge of its construction
and is invasive. Unit tests perform basic tests at component level and test a specific
business process, application, and/or system configuration. Unit tests ensure that each
unique path of a business process performs accurately to the documented specifications
and contains clearly defined inputs and expected results.

Integration testing
Integration tests are designed to test integrated software components to determine
if they actually run as one program. Testing is event driven and is more concerned with
the basic outcome of screens or fields. Integration tests demonstrate that although the
components were individually satisfaction, as shown by successfully unit testing, the
combination of components is correct and consistent. Integration testing is specifically
aimed at exposing the problems that arise from the combination of components.

Functional test
Functional tests provide systematic demonstrations that functions tested are
available as specified by the business and technical requirements, system documentation,
and user manuals.

Functional testing is centered on the following items:

Valid Input : identified classes of valid input must be accepted.


47
Invalid Input : identified classes of invalid input must be rejected.

Functions : identified functions must be exercised.

Output : identified classes of application outputs must be exercised.

Systems/Procedures: interfacing systems or procedures must be invoked.

Organization and preparation of functional tests is focused on requirements, key


functions, or special test cases. In addition, systematic coverage pertaining to identify
Business process flows; data fields, predefined processes, and successive processes must
be considered for testing. Before functional testing is complete, additional tests are
identified and the effective value of current tests is determined.

System Test
System testing ensures that the entire integrated software system meets requirements.
It tests a configuration to ensure known and predictable results. An example of system
testing is the configuration oriented system integration test. System testing is based on
process descriptions and flows, emphasizing pre-driven process links and integration
points.

White Box Testing


White Box Testing is a testing in which in which the software tester has knowledge
of the inner workings, structure and language of the software, or at least its purpose. It is
purpose. It is used to test areas that cannot be reached from a black box level.

Black Box Testing


Black Box Testing is testing the software without any knowledge of the inner
workings, structure or language of the module being tested. Black box tests, as most other
kinds of tests, must be written from a definitive source document, such as specification or
requirements document, such as specification or requirements document. It is a testing in
which the software under test is treated, as a black box .you cannot “see” into it. The test
provides inputs and responds to outputs without considering how the software works.

48
Unit Testing:

Unit testing is usually conducted as part of a combined code and unit test phase of
the software lifecycle, although it is not uncommon for coding and unit testing to be
conducted as two distinct phases.

Test strategy and approach


Field testing will be performed manually and functional tests will be written in
detail.
Test objectives
• All field entries must work properly.
• Pages must be activated from the identified link.
• The entry screen, messages and responses must not be delayed.
Features to be tested
• Verify that the entries are of the correct format
• No duplicate entries should be allowed
• All links should take the user to the correct page.
Integration Testing
Software integration testing is the incremental integration testing of two or more
integrated software components on a single platform to produce failures caused by
interface defects.

The task of the integration test is to check that components or software


applications, e.g. components in a software system or – one step up – software
applications at the company level – interact without error.

Test Results: All the test cases mentioned above passed successfully. No defects
encountered.

Acceptance Testing

User Acceptance Testing is a critical phase of any project and requires significant
participation by the end user. It also ensures that the system meets the functional
requirements.

Test Results: All the test cases mentioned above passed successfully. No defects
encountered.

49
10. CONCLUSION
The development of the application gives us a pleasant experience and delivers the
expected results excellently. The project “Shopping Helper for visually Impaired” is to
mark the user to have the basic knowledge of computer. It helps people to run their
necessary task online. The project is done in the computerized form. It is a Quick process
and therefore saves time and money.

By prioritizing user-friendly design, accessibility, and integration with existing


assistive technologies, such an app has the potential to empower visually challenged
people, helping them make informed shopping decisions and reducing their dependence
on others. Furthermore, it can contribute to a more inclusive society, where all
individuals, regardless of their abilities, can equally participate in everyday activities like
shopping.

In conclusion, developing and enhancing such an Android shopping assistant can


significantly improve the quality of life for visually challenged individuals, making online
shopping more accessible, enjoyable, and efficient for them.

50
APPENDIX -1.1

SCREEN SHOTS

Admin Homepage

Admin login

51
Category

New Product

52
Edit Product

Print QR Codes

53
54
Contd…

Client Application

55
56
APPENDIX -1.2

SAMPLE CODING
Admin
<?php
session_start();
if(!isset($_SESSION['adminuserid'])) {
header("Location:login.php");
}
include './db.php';
?>
<!DOCTYPE html>
<!--[if lt IE 7]><html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]><html class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]><html class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]-->
<head>
<!--
Kool Store Template
http://www.templatemo.com/preview/templatemo_428_kool_store
-->
<meta charset="utf-8">
<title>Kool Store</title>

<meta name="description" content="">


<meta name="viewport" content="width=device-width">

<link rel="stylesheet" href="css/bootstrap.css">


<link rel="stylesheet" href="css/normalize.min.css">
<link rel="stylesheet" href="css/font-awesome.min.css">
<link rel="stylesheet" href="css/animate.css">
<link rel="stylesheet" href="css/templatemo-misc.css">
<link rel="stylesheet" href="css/templatemo-style.css">

57
<script src="js/vendor/modernizr-2.6.2.min.js"></script>

</head>
<body>
<!--[if lt IE 7]>
<p class="chromeframe">You are using an <strong>outdated</strong> browser. Please
<a href="http://browsehappy.com/">upgrade your browser</a> or <a
href="http://www.google.com/chromeframe/?redirect=true">activate Google Chrome
Frame</a> to improve your experience.</p>
<![endif]-->

<header class="site-header">
<div class="top-header">
<div class="container">
<div class="row">
<div class="col-md-6 col-sm-6">
<div class="top-header-left">
<a href="adminhome.php">Category</a>
<a href="newproduct.php">Product</a>
<a href="editproduct.php">Edit Product</a>
<a href="printqr.php">Print QR</a>
<a href="signout.php">Signout</a>
</div> <!-- /.top-header-left -->
</div> <!-- /.col-md-6 -->
<div class="col-md-6 col-sm-6">
<div class="social-icons">
<!--ul>
<li><a href="#" class="fa fa-facebook"></a></li>
<li><a href="#" class="fa fa-dribbble"></a></li>
<li><a href="#" class="fa fa-twitter"></a></li>
<li><a href="#" class="fa fa-linkedin"></a></li>
</ul-->
58
<div class="clearfix"></div>
</div> <!-- /.social-icons -->
</div> <!-- /.col-md-6 -->
</div> <!-- /.row -->
</div> <!-- /.container -->
</div> <!-- /.top-header -->
<div class="main-header">
<div class="container">
<div class="row">
<div class="col-md-4 col-sm-6 col-xs-8">
<div class="logo">
<h1><a href="#">Shopping Assistant for Blind</a></h1>
</div> <!-- /.logo -->
</div> <!-- /.col-md-4 -->
<div class="col-md-8 col-sm-6 col-xs-4">
<div class="main-menu">
<a href="#" class="toggle-menu">
<i class="fa fa-bars"></i>
</a>
<ul class="menu">
<li><a href="adminhome.php">Category</a></li>
<li><a href="newproduct.php">Product</a></li>
<li><a href="editproduct.php">Edit Product</a></li>
<li><a href="printqr.php">Print QR</a></li>
<li><a href="signout.php">Signout</a></li>
</ul>
</div> <!-- /.main-menu -->
</div> <!-- /.col-md-8 -->
</div> <!-- /.row -->
</div> <!-- /.container -->
</div> <!-- /.main-header -->
<div class="main-nav">
<div class="container">
<div class="row">
59
<div class="col-md-6 col-sm-7">
<div class="list-menu">
<!--ul>
<li><a href="index.php">Shop</a></li>
<li><a href="product-detail.html">Details</a></li>
<li><a href="contact.html">Contact</a></li>
</ul-->
</div> <!-- /.list-menu -->
</div> <!-- /.col-md-6 -->
<div class="col-md-6 col-sm-5">
<div class="notification">

</div>
</div> <!-- /.col-md-6 -->
</div> <!-- /.row -->
</div> <!-- /.container -->
</div> <!-- /.main-nav -->
</header> <!-- /.site-header -->
<div class="content-section" style="min-height: 280px;">
<div class="container">
<div class="row">
Adminhome
<?php
include './adminheader.php';
if(!isset($_POST['sub1'])) {
?>
<form name="f" action="" method="post" style="float:left;">
<table class="center_tab">
<thead>
<tr>
<th colspan="2">CATEGORY</th>
</tr>
</thead>
<tbody>
60
<tr>
<th>Category Name</th>
<td><input type="text" name="catname" required autofocus></td>
</tr>
</tbody>
<tfoot>
<tr>
<td colspan="2" class="center">
<input type="submit" name="sub1" value="Create">
</td>
</tr>
</tfoot>
</table>
</form>
<?php
if(isset($_GET['pcat'])) {
//mysqli_query($link, "delete from purchase where id='$_GET[pid]'");
}
$result = mysqli_query($link, "select * from pcategory") or die(mysqli_error($link));
echo "<table class='report_tab' style='min-width:250px;'><thead><tr><th
colspan='2'>CATEGORIES";
echo "<tr><th>Category Name<th>Task<tbody>";
while($row= mysqli_fetch_row($result)) {
echo "<tr>";
echo "<td>".ucfirst($row[0]);
echo "<td><a href='adminhome.php?pcat=$row[0]' onclick=\"javascript:return
confirm('Are You Sure to Delete ?')\">Delete</a>";
}
echo "</tbody></table>";
mysqli_free_result($result);
} else {
extract($_POST);
mysqli_query($link, "insert into pcategory(catname) values('$catname')");

61
echo "<div class='center'>Category Created...!<br><a
href='adminhome.php'>Back</a></div>";
}
include './footer.php';
?>
Edit product
<?php
include './adminheader.php';
if(!isset($_POST['sub1']) && !isset($_POST['sub2'])) {
$result = mysqli_query($link, "select catname from pcategory");
?>
<form name="f" action="" method="post">
<table class="center_tab">
<thead>
<tr>
<th colspan="2">EDIT PRODUCT</th>
</tr>
</thead>
<tbody>
<tr>
<th>Select Category</th>
<td>
<select name="catname">
<?php
while($row= mysqli_fetch_row($result)) {
echo "<option value='$row[0]'>".ucfirst($row[0])."</option>";
}
mysqli_free_result($result);
?>
</select>
</td>
</tr>
</tbody>
<tfoot>
62
<tr>
<td colspan="2" class="center">
<input type="submit" name="sub1" value="Fetch">
</td>
</tr>
</tfoot>
</table>
</form>
<?php
} else if(!isset($_POST['sub2'])) {
extract($_POST);
$result = mysqli_query($link, "select id from products where catname='$catname'");
?>
<form name="f" action="editproduct1.php" method="post">
<table class="center_tab">
<thead>
<tr>
<th colspan="2">EDIT PRODUCT</th>
</tr>
</thead>
<tbody>
<tr>
<th>Category</th>
<td><input type="text" name="catname" value="<?php echo ucfirst($catname);?>"
required readonly></td>
</tr>
<tr>
<th>Select Product</th>
<td>
<select name="pid">
<?php
while($row= mysqli_fetch_row($result)) {
echo "<option value='$row[0]'>$row[0]</option>";
}
63
mysqli_free_result($result);
?>
</select>
</td>
</tr>
</tbody>
<tfoot>
<tr>
<td colspan="2" class="center">
<input type="submit" name="sub2" value="Fetch">
</td>
</tr>
</tfoot>
</table>
</form>
<?php
}
include './footer.php';
?>
<?php
include './adminheader.php';
if(!isset($_POST['sub3'])) {
extract($_POST);
$result = mysqli_query($link, "select pname,brand,units,price,qr from products where
id=$pid");
$row = mysqli_fetch_row($result);
mysqli_free_result($result);
?>
<form name="f" action="" method="post">
<table class="center_tab">
<thead>
<tr>
<th colspan="2">EDIT PRODUCT</th>
</tr>
64
</thead>
<tbody>
<tr>
<th>Category</th>
<td><input type="text" name="catname" value="<?php echo ucfirst($catname);?>"
required readonly></td>
</tr>
<tr>
<th>Product Id</th>
<td><input type="text" name="pid" value="<?php echo $pid;?>" required
readonly></td>
</tr>
<tr>
<th>Product Name</th>
<td><input type="text" name="pname" value="<?php echo $row[0];?>" required></td>
</tr>
<tr>
<th>Brand Name</th>
<td><input type="text" name="brand" value="<?php echo $row[1];?>" required></td>
</tr>
<tr>
<th>Units</th>
<td><input type="text" name="units" value="<?php echo $row[2];?>" required></td>
</tr>
<tr>
<th>Price</th>
<td>
<input type="text" name="price" value="<?php echo $row[3];?>" required
pattern="\d+">
<input type="hidden" name="hqr" value="<?php echo $row[4];?>">
</td>
</tr>
</tbody>
<tfoot>
65
<tr>
<td colspan="2" class="center">
<input type="submit" name="sub3" value="Update">
</td>
</tr>
</tfoot>
</table>
</form>
<?php
} else {
extract($_POST);
$str = "product:$catname;";
$str.= "name:$pname;";
$str.= "brand:$brand;";
$str.= "unit:$units;";
$str.= "price:$price;";
require './phpqrcode/qrlib.php';
$qr = "uploads/qr".time().".png";
QRcode::png($str,$qr);
mysqli_query($link, "update products set
pname='$pname',brand='$brand',units='$units',price='$price',qr='$qr' where id=$pid") or
die(mysqli_error($link));
unlink($hqr);
echo "<div class='center'>Product Modified...!<br><a
href='editproduct.php'>Back</a></div>";
}
include './footer.php';
?>
Index
<?php
include './header.php';
?>
<div class="col-md-8">
<div class="product-image">
66
<img src="images/featured/7.jpg" alt="">
</div> <!-- /.product-image -->
<div class="product-information">
<h2>Shopping Solution...!</h2>

<!--ul class="product-buttons">
<li>
<a href="#" class="main-btn">Buy Now</a>
</li>
<li>
<a href="#" class="main-btn">Add to Cart</a>
</li>
</ul-->
</div> <!-- /.product-information -->
</div> <!-- /.col-md-8 -->
<div class="col-md-4 col-sm-8">
<div class="product-item-2">
<div class="product-thumb">
<img src="images/featured/1.jpg" alt="Product Title">
</div> <!-- /.product-thumb -->
<div class="product-content overlay">
<h5><a href="#">Beverages</a></h5>
<span class="tagline">Hershey's</span>
<span class="price">130.00</span>
<p>Brand Items of highly valued Products!</p>
</div> <!-- /.product-content -->
</div> <!-- /.product-item-2 -->
<div class="product-item-2">
<div class="product-thumb">
<img src="images/featured/2.jpg" alt="Product Title">
</div> <!-- /.product-thumb -->
<div class="product-content overlay">
<h5><a href="#">Milk & Milk Products</a></h5>
67
<span class="tagline">Almond Breeze</span>
<span class="price">240.00</span>
<p>Fine Products of Dairy!</p>
</div> <!-- /.product-content -->
</div> <!-- /.product-item-2 -->

</div> <!-- /.col-md-4 -->


<?php
include './footer.php';
?>
New product
<?php
include './adminheader.php';
if(!isset($_POST['sub1'])) {
$result = mysqli_query($link, "select catname from pcategory");
?>
<form name="f" action="" method="post" style="float:left;">
<table class="center_tab">
<thead>
<tr>
<th colspan="2">NEW PRODUCT</th>
</tr>
</thead>
<tbody>
<tr>
<th>Select Category</th>
<td>
<select name="catname">
<?php
while($row= mysqli_fetch_row($result)) {
echo "<option value='$row[0]'>".ucfirst($row[0])."</option>";
}
mysqli_free_result($result);
?>
68
</select>
</td>
</tr>
<tr>
<th>Product Name</th>
<td><input type="text" name="pname" required autofocus></td>
</tr>
<tr>
<th>Brand Name</th>
<td><input type="text" name="brand" required></td>
</tr>
<tr>
<th>Units</th>
<td><input type="text" name="units" required></td>
</tr>
<tr>
<th>Price</th>
<td><input type="text" name="price" required pattern="\d+"></td>
</tr>
</tbody>
<tfoot>
<tr>
<td colspan="2" class="center">
<input type="submit" name="sub1" value="Create">
</td>
</tr>
</tfoot>
</table>
</form>
<?php
if(isset($_GET['pid'])) {
mysqli_query($link, "delete from products where id='$_GET[pid]'");
}

69
$result = mysqli_query($link, "select id,pname,brand,units,price from products order by
catname") or die(mysqli_error($link));
echo "<table class='report_tab' style='min-width:250px;'><thead><tr><th
colspan='5'>AVAILABLE PRODUCTS";
echo "<tr><th>Product Name<th>Brand<th>Units<th>Price<th>Task<tbody>";
while($row= mysqli_fetch_row($result)) {
echo "<tr>";
foreach($row as $k=>$r) {
if($k!=0)
echo "<td>".ucfirst($r);
}
echo "<td><a href='newproduct.php?pid=$row[0]' onclick=\"javascript:return
confirm('Are You Sure to Delete ?')\">Delete</a>";
}
echo "</tbody></table>";
mysqli_free_result($result);
} else {
extract($_POST);
$str = "product:$catname;";
$str.= "name:$pname;";
$str.= "brand:$brand;";
$str.= "unit:$units;";
$str.= "price:$price;";
require './phpqrcode/qrlib.php';
$qr = "uploads/qr".time().".png";
QRcode::png($str,$qr);
mysqli_query($link, "insert into products(catname,pname,brand,units,price,qr)
values('$catname','$pname','$brand','$units','$price','$qr')");
echo "<div class='center'>Product Created...!<br><a
href='newproduct.php'>Back</a></div>";
}
include './footer.php';
?>

70
Signout
<?php
session_start();
if(isset($_SESSION['adminuserid'])) {
unset($_SESSION['adminuserid']);
}
if(isset($_SESSION['userid'])) {
unset($_SESSION['userid']);
}
header("Location:index.php");
?>
Printqr
<?php
include './adminheader.php';
if(!isset($_POST['sub1'])) {
$result = mysqli_query($link, "select catname from pcategory");
?>
<form name="f" action="" method="post">
<table class="center_tab">
<thead>
<tr>
<th colspan="2">PRINT QR</th>
</tr>
</thead>
<tbody>
<tr>
<th>Select Category</th>
<td>
<select name="catname">
<?php
while($row= mysqli_fetch_row($result)) {
echo "<option value='$row[0]'>".ucfirst($row[0])."</option>";
}

71
mysqli_free_result($result);
?>
</select>
</td>
</tr>
</tbody>
<tfoot>
<tr>
<td colspan="2" class="center">
<input type="submit" name="sub1" value="Fetch">
</td>
</tr>
</tfoot>
</table>
</form>
<?php
} else {
extract($_POST);
$result = mysqli_query($link, "select qr,pname from products where
catname='$catname'");
$i=0;
echo "<table class='report_tab' style='float:none;'><tbody>";
while($row = mysqli_fetch_row($result)) {
if($i==0||$i%4==0)
echo "<tr>";
echo "<th><img src='$row[0]'>";
echo "<br>$row[1]";
$i++;
}
echo "</tbody></table>";
mysqli_free_result($result);
}
include './footer.php';
?>
72
REFERENCE
References Made From:

[1] X. Chen and A. L. Yuille, Detecting and reading text in natural scenes, In CVPR,
Vol. 2, pp.II-366 II-373, 2004.

[2] X. Chen, J. Yang, J. Zhang and A. Waibel, Automatic detection and recognition
of signs from natural scenes, In IEEE Transactions on image processing, Vol.
13, No. 1, pp. 87-99, 2004

[3] D. Dakopoulos and N. G. Bourbakis, Wearable obstacle avoidance


electronic travel aids for blind: a survey, In IEEE Transactions on systems, man,
and cybernetics, Vol. 40, No. 1, pp. 25-35, 2010.
.
[4] B. Epshtein, E. Ofek and Y. Wexler, Detecting text in natural scenes with stroke
width transform, In CVPR, pp. 2963-2970, 2010.

Sites Referred:
• http://www.sourcefordgde.com
• http://www.networkcomputing.com/
• http://www.ieee.org
• http://www.almaden.ibm.com/software/quest/Resources/
• http://www.computer.org/publications/dlib

73
74
75
76

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy