FINAL YEAR PROJECT PDF1 - Removed
FINAL YEAR PROJECT PDF1 - Removed
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
APPENDIX - 1.1 51
APPENDIX - 1.2 55
REFFERENCE 71
LIST OF FIGURES
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
Year: 2004
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:
Disadvantages:
2
2. Title: Automatic Detection and Recognition of Signs from Natural Scenes
Year: 2004
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:
Disadvantages:
3
3. Title: Wearable Obstacle Avoidance Electronic Travel Aids for Blind: A Survey
Year: 2010
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:
Disadvantages:
4
4. Title: Detecting Text in Natural Scenes with Stroke Width Transform
Year: 2010
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:
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:
Disadvantages:
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:
Disadvantages:
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.
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:
• 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
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.
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?
• 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.
• 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.
12
4. SYSTEM SPECIFICATION
4.1. HARDWARE CONFIGURATION
The Below Hardware Specifications were used in both Server and Client
machines when developing.
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
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:
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
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.
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:
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.
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.
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.
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.
• 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:
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.
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.
History
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 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.
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:
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:
28
Android Source Code
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.
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:
➢ 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.
❖ Future.
❖ 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
37
7.2. DATA FLOW DIAGRAM
Admin Login
No
Validate
Yes
Category category
View Category
Delete
View Product
Delete
View Info
Modify
Select product
Category
Print QR Code
User
Scan QR code
Output as Sound
38
7.3. UML DIAGRAM
Login
upload
Broker
Data set request
View user
User
Data Set type
Download
39
7.3.2. SEQUENCE DIAGRAM
Admin
Admin Login
To view new
product details
and delete
product
To view new
category and
edit category
details
40
Sequence Diagram for USER:
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
42
7.3.4. CLASS DIAGRAM
Product Category
View () View ()
43
Class Diagram for USER:
User
Login on User
Login ()
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.
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.
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.
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 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.
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>
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 -->
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
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