Sei sulla pagina 1di 153

i

INTEGRATION OF SMART CARTS IN PUREGOLD SUPERMARKET

A Capstone Submitted to the Faculty of Engineering –Information

and Computer Studies Department of the

University of Santo Tomas

In Partial Fulfilment of the Requirements for the

Degree of Bachelor of Science in

Information Technology

By:

Feraer, Reinier M.

Madrid, Darren Joseph Real M..

Reyes, Adrian Gene J.

Reyes, Jervin V.

October 2012
ii

TABLE OF CONTENTS

CHAPTER 1 INTRODUCTION

1.1. Project Context………………………………………………………2

1.2. Project Description………………………………………………......4

1.3. Objectives………………………………………………………........5

1.4. Scope and Limitation……………………………………………......5

1.5. Definition of Terms………………………………………………….6

CHAPTER 2 REVIEW OF RELATED LITERATURE

2.1. Related Literature……………………………………………………8

2.2. Foreign Studies………………………………………………...........15

2.3. Local Studies………………………………………………………..21

CHAPTER 3 METHODOLOGY

3.1. Technical Background

3.1.1. Hardware Specifications……………………………............23

3.1.2. Software Specifications…………………………………….25

3.2. Methodology

3.2.1. Research Design……………………………………………26

3.2.2. Project Design ……………………………………………...29

3.2.3. Project Development


iii

3.2.3.1. System Flowchart………………………….30

3.2.4. Requirements Analysis……………………………………………..32

3.2.4.1. Use-Case Diagram………………………………………....33

3.2.5. Requirements Documentation……………………………………...35

CHAPTER 4 RESULTS AND DISCUSSION

4.1. Results

1. Connection of Liquid Crystal Display to Microcontroller….........37

2. Connection of Keypad to Microcontroller………………….........43

3. Connection of ZigBee Module to Microcontroller………………51

4. Connection of Barcode Reader to Microcontroller………………56

5. Connection of the entire Smart Cart System……………….........61

4.2. Discussion

1. Connection of Liquid Crystal Display to Microcontroller….........67

2. Connection of Keypad to Microcontroller………………….........68

3. Connection of ZigBee Module to Microcontroller………............69

4. Connection of Barcode Reader to Microcontroller………............60

5. Connection of the entire Smart Cart System…………..................70

6. Actual Testing……………………………………………............71

CHAPTER 5 SUMMARY, CONCLUSION, AND RECOMMENDATION

5.1. Summary of Results………………………………………………...82


iv

5.2. Conclusion………………………………………………………….83

5.3. Recommendation……………………………………………….......83

APPENDICES

Appendix A Relevant Source Code

Appendix B Pin Diagram and Pin Functions of PIC16F877A

Appendix C Pin Diagram and Pin Functions of ZigBee Module


v

LIST OF FIGURES

Figure 1 Block Diagram of the Smart Cart………………………………......3

Figure 2 Zigbee Module……………………………………………………...8

Figure 3 Barcode Scanner………………………………………………........9

Figure 4 4 x 20 Liquid Crystal Display………………………………………10

Figure 5 PIC Microcontroller………………………………………………...12

Figure 6 3 x 4 Keypad……………………………………………….............14

Figure 7 The SDLC Waterfall Model………………………………………..26

Figure 8 Block Diagram of the Smart Cart……………………......................29

Figure 9 System Flowchart………………………..........................................30

Figure 10 System Flowchart (Continued)……………………….....................31

Figure 11 Use-Case Diagram…………………………………………….........33

Figure 12 Connection of Liquid Crystal Display to Microcontroller………….36

Figure 13 Connection of Keypad to Microcontroller………………………….42

Figure 14 Connection of ZigBee Module to Microcontroller………………....50

Figure 15 Connection of Barcode Reader to Microcontroller……………........56

Figure 16 Connection of the entire Smart Cart System……………………….61


vi

LIST OF TABLES

Table 1 Internal Pin Connection of the Liquid Crystal Display (LCD)……..12

Table 2 Requirements Analysis Table……………………………………….32

Table 3 Use-Case Scenario…………………………………………………..34

Table 4 Testing of the connection of LCD to Microcontroller........................37

Table 5 Testing of the connection of Keypad to Microcontroller....................43

Table 6 Testing of the connection of ZigBee Module to Microcontroller.......51

Table 7 Testing of the connection of Barcode Reader to Microcontroller.......56

Table 8 Testing of the connection of the entire Smart Cart System.................62

Table 9 LCD Pin Configuration……………………………………………...66

Table 10 Actual Testing……………………………………………………….80


CHAPTER I

INTRODUCTION

Supermarkets were establishments that provide a wide variety of the merchandise

needed by the people in their daily course of life. Push carts were used by the customers

to help them carry all of their bought goods, it carried a large amount of grocery items

which was hard for a human to carry and it had wheels so that customers can easily

manipulate its movement.

One of the concerns that customers face during their time of purchasing their

grocery is how they can properly and wisely manage their budget. Customers tend to buy

items which were not essentially needed, resulting to additional expenses.

Barcode readers were commonly used in the cashier counters inside the

supermarket. It was an electronic device used to read or scan printed barcode labels of the

products being sold in the supermarket. Like a flatbed scanner, it consisted of a light

source, a lens and a light sensor translating optical impulses into electrical ones.

Additionally, nearly all barcode readers contained decoder circuitry which analyzed the

barcode’s image data provided by the sensor and sending the barcode’s content to the

scanner’s output port.

ZigBee was a specification for a suite of high level communication protocols

using small, low-power digital radios based on an IEEE 802 standard for personal area
2

networks. ZigBee devices were often used in mesh network form to transmit data over

long distances, passing data through intermediate devices to reach more distant ones. This

allowed ZigBee networks to be formed ad-hoc, with no centralized control or high-power

transmitter/receiver able to reach all of the devices. Any ZigBee device can be tasked

with running the network.

1.1. Project Context

The project was about the innovation of the concept of a simple push cart. Push

carts made it easier for customers to move around and select products without having to

lift the heavy baggage of grocery items. A push cart was made up of the container basket,

the wheels and the bar to which the customer applied force in order to push the whole

cart. The project had the concept of adding new parts in the traditional push cart. One part

was the barcode scanner. This part was used in order to read/scan the product or item to

be purchased. Another part was the ZigBee module that will transmit or relay data from

the cart onto the counter where the total price of the accumulated products purchased was

calculated and a display of a list of all items purchased. Data was then sent back from the

counter to the cart and was displayed into another new part which was the LCD screen.

The description of the item scanned by the barcode reader and the total accumulated price

was displayed on the LCD screen.

The barcode reader can only read items two inches away from the cart. Items

scanned beyond that range will not be read. The cart is powered by a battery that will last
3

for four hours. The range of the ZigBee module is only up to twenty to thirty meters,

depending on the obstructions.

The project inspired the researchers to create and combine different helpful

materials present in a grocery store such as a product barcode scanner, an LCD screen

and a push cart. With this kind of combined technology, customers will not have

difficulty in running around the store, buying stuff they need and still think of the total

price in their heads. Instead, they will have an automatic list of the items they bought and

the total price of the products bought.

SMART CART*

BATTERY LCD

BARCODE
MICROCONTROLLE KEYPAD
READER
R

ZIGBEE
(Transmitter)

Wireless

ZIGBEE
(Receiver)

CASHIER

Figure 1. Block Diagram of the Smart Cart


4

1.2. Project Description

Budgeting was an important aspect in each and everyone’s expenditures. Many

people tend to buy unnecessary items which results in unnecessary expenses. Nowadays,

it is very important to budget our money in order for us to save for our future and

emergency use.

The Puregold Supermarket was currently operating in a traditional way which was

the first-come-first-serve basis and still the products were only scanned in the counter.

With the project, Puregold Supermarket can add a cashier stand which is only for Smart

Cart users which will decrease the queue time and at the same time will also help the

customers to optimize their budget.

The Smart Cart was composed of a LCD screen display where customers can

view the items that they need to buy. By providing this, customers will be aided

throughout their grocery shopping in the supermarket. A barcode reader was also

provided for customers to read the barcode of the items which they are to purchase. With

the use of ZigBee module, the items read by the barcode reader will be sent to a computer

located at the cashier. ZigBee has the ability to send data over a long distance. So

anywhere inside the supermarket, the Smart Cart is fully functional and accurate. The

customer will then have to come to a designated counter wherein the customer will have

to pay the total price of the goods bought.


5

1.3. Objectives

The general objective of this project was to design a smart shopping cart that

would aid customers on how to wisely manage their grocery budget and to minimize or

decrease queue time.

Specifically, this project aims to:

a) to interface ZigBee that will serve as the data carrier

b) to interface a LCD screen for the display of the item list and

other functions of the cart

c) to design a circuit connection for the ZigBee module

d) to create a microcontroller based program for the barcode

reader

e) to interface a keypad module for the data inputs

1.4. Scope and Limitation

The project covers the following features:

 Barcode reader to identify the item and its price

 LCD screen for the display of the total amount of the items purchased and of

the other Smart Cart services

 ZigBee Module for long-distance data transfer between the Smart Cart and a

computer unit and multiple frequency accommodation

 Keypad for the user’s input

 Support for back-up to prevent data loss


6

The project is limited to the following:

 Barcode scanning range will be up to only two inches away from the product.

Scanning beyond that range will not yield any scan results.

 ZigBee Module range will be only up to twenty to thirty meters. Going

beyond the range will result to data loss (data will not be sent to counter).

 Multiple purchase of same products will require multiple barcode reading or

scanning

 Data traffic will be encountered sometimes due to the queuing of data and

frequency.

 First-come-first-serve payment basis will be implemented in each counter.

 A database containing fifteen products only will be provided by the

researchers for sample demonstrations in order to avoid tallying all products

inside the supermarket.

1.5. Definition of Terms

 Barcode Reader – an electronic device for reading printed barcodes.

 Keypad – a set of buttons arranged in a block or pad which usually bears digits,

symbols and usually a complete set of alphabetical letters.

 Liquid Crystal Display – a flat-panel display, electronic visual display, or video

display that uses the light modulating properties of liquid crystals (LCs). LCs

does not emit light directly.


7

 Push cart – wheeled vehicle that can be pushed by a person; may have one or two

or four wheels.

 PIC Microcontroller – PIC is a family of modified Harvard-architecture

microcontrollers made by Microchip Technology, derived from the PIC1650

originally developed by General Instrument’s Microelectronics Division. The

name PIC initially referred to “Peripheral Interface Controller”.

 ZigBee – a low-cost, low-power, wireless mesh network standard.


8

CHAPTER II

REVIEW OF RELATED LITERATURE

2.1. Related Literatures

 ZigBee Module

Figure 2. ZigBee Module

ZigBee is a specification for a suite of high level communication protocols

using small, low-power digital radios based on an IEEE 802 standard for personal

area networks. Applications include wireless light switches, electrical meters with

in-home-displays, and other consumer and industrial equipment that require short-

range wireless transfer of data at relatively low rates. The technology defined by

the ZigBee specification is intended to be simpler and less expensive than

other WPANs, such as Bluetooth.

ZigBee is a low-cost, low-power, wireless mesh network standard. The

low cost allows the technology to be widely deployed in wireless control and

monitoring applications. Low power-usage allows longer life with smaller

batteries. Mesh networking provides high reliability and more extensive range.
9

ZigBee chip vendors typically sell integrated radios and microcontrollers with

between 60 KB and 256 KB flash memory.

ZigBee operates in the industrial, scientific and medical (ISM) radio

bands; 868 MHz in Europe, 915 MHz in the USA and Australia, and 2.4 GHz in

most jurisdictions worldwide. Data transmission rates vary from 20 to 900

kilobits/second.

The ZigBee network layer natively supports both star and tree typical

networks, and generic mesh networks. Every network must have one coordinator

device, tasked with its creation, the control of its parameters and basic

maintenance. Within star networks, the coordinator must be the central node. Both

trees and meshes allow the use of ZigBee routers to extend communication at the

network level.

 Barcode Reader

Figure 3. Barcode Reader


10

A barcode reader (or barcode scanner) is an electronic device for reading

printed barcodes. Like a flatbed scanner, it consists of a light source, a lens and a

light sensor translating optical impulses into electrical ones. Additionally, nearly

all barcode readers contain decoder circuitry analyzing the barcode's image data

provided by the sensor and sending the barcode's content to the scanner's output

port.

Modern handheld barcode readers are operated in wireless

networks according to IEEE 802.11g (WLAN) or IEEE 802.15.1 (Bluetooth).

However, such configuration limits the time of operation

from battery or rechargeable battery and required recharging at least after a shift

of operation.

 Liquid Crystal Display

Figure 4. 4 x 20 Liquid Crystal Display (LCD)


11

A liquid crystal display (LCD) is a flat panel display, electronic visual display,

or video display that uses the light modulating properties of liquid crystals (LCs).

LCs does not emit light directly.

LCDs are used in a wide range of applications, including computer

monitors, television, instrument panels, aircraft cockpit displays, signage, etc.

They are common in consumer devices such as video players, gaming

devices, clocks, watches, calculators, and telephones. LCDs have

replaced cathode ray tube (CRT) displays in most applications. They are available

in a wider range of screen sizes than CRT and plasma displays, and since they do

not use phosphors, they cannot suffer image burn-in. LCDs are, however,

susceptible to image persistence.

LCDs are more energy efficient and offer safer disposal than CRTs. Its

low electrical power consumption enables it to be used in battery-

powered electronic equipment. It is an electronically modulated optical

device made up of any number of segments filled with liquid crystals and arrayed

in front of a light source (backlight) or reflector to produce images in color

or monochrome. The most flexible ones use an array of small pixels.


12

Table 1. Internal Pin Connection of the Liquid Crystal Display (LCD)

 PIC Microcontroller

Figure 5. PIC Microcontroller


13

PIC is a family of modified Harvard architecture microcontrollers made

by Microchip Technology, derived from the PIC1650 originally developed

by General Instrument's Microelectronics Division. The name PIC initially

referred to "Peripheral Interface Controller".

PICs are popular with both industrial developers and hobbyists alike due

to their low cost, wide availability, large user base, extensive collection of

application notes, availability of low cost or free development tools, and serial

programming (and re-programming with flash memory) capability.

The architectural decisions are directed at the maximization of speed-to-

cost ratio. The PIC architecture was among the first scalar CPU designs, and is

still among the simplest and cheapest. The Harvard architecture—in which

instructions and data come from separate sources—simplify timing and

microcircuit design greatly, and this benefits clock speed, price, and power

consumption.

The PIC instruction set is suited to implementation of fast lookup tables in

the program space. Such lookups take one instruction and two instruction cycles.

Many functions can be modeled in this way. Optimization is facilitated by the

relatively large program space of the PIC (e.g. 4096 × 14-bit words on the

16F690) and by the design of the instruction set, which allows for embedded
14

constants. For example, a branch instruction's target may be indexed by W, and

execute a "RETLW" which does as it is named - return with literal in W.

Interrupt latency is constant at three instruction cycles. External interrupts

have to be synchronized with the four clock instruction cycle; otherwise there can

be a one instruction cycle jitter. Internal interrupts are already synchronized. The

constant interrupt latency allows PICs to achieve interrupt driven low jitter timing

sequences. An example of this is a video sync pulse generator. This is no longer

true in the newest PIC models, because they have a synchronous interrupt latency

of three or four cycles.

 Keypad

Figure 6. 3 x 4 Keypad

A keypad is a set of buttons arranged in a block or "pad" which usually

bear digits, symbols and usually a complete set of alphabetical letters. If it mostly

contains numbers then it can also be called a numeric keypad. Keypads are found

on many alphanumeric keyboards and on other devices such as calculators, push-


15

button telephones, combination locks, and digital door locks, which require

mainly numeric input.

As a general rule, the keys on calculator-style keypads are arranged such

that the digits 1, 2, and 3 are on the bottom row. Whereas in a telephone keypad,

either in a home or mobile phone, digits 1, 2, and 3 are located on top. A phone

key-pad also has the special buttons labeled * (asterisk) and # (number sign) on

either side of the zero key. Most of the keys on a telephone also bear letters which

have had several auxiliary uses, such as remembering area codes or whole

telephone numbers.

The keypad of a calculator contains the digits 0 through 9, from bottom

upwards, together with the four arithmetic operations, the decimal point and other

more advanced mathematical functions.

2.2. Foreign Studies

 A Computer Vision-Based Barcode Reading System

This study focuses on barcode recognition from images of barcode stamped

products, acquired by different cameras. First step in recognition of barcode data is

achieving barcode localization. For this purpose, a Fast Hough Transform

Approximation has been developed. With this method, barcode localization and the

angular orientation of the barcode is obtained. In order to decipher barcode data, the

scan line obtained by barcode localization and angular orientation information are
16

used. However, the image resolution has to be good enough so that the barcode data

could be read properly. In this work, image quality is improved with the methods of

B-Spline Smoothing and super-resolution techniques. Later, barcode data is

deciphered via match filtering. [Safran, 2008]

 Access Control using Bluetooth

This thesis project proposes a method of access control using Bluetooth.

Currently access control methods require physical contact to a device, such as a

swipe-card. Bluetooth is a wireless technology that could be used to replace such

applications, and provide the convenience of wireless access control. The purpose of

this thesis is to demonstrate that such a concept is feasible, by implementing one such

application. The application developed in this thesis involves the shutting off of

ringing tones of mobile phones that enter a “silent” zone. Such a policy is enforced by

a Bluetooth access point situated in this “silent” zone. The access point will send out

a “beacon” signal to the mobile phone, via Bluetooth, telling it to shut down its

ringing tone. Another focus of this thesis is to ensure that this procedure is secure.

Both the mobile phone and access point will have to carry out an authentication

procedure, designed in this thesis. [Mei, Salim, 2003]

 Barcodes and Radio Frequency identification in Supply Chain Management

Since the 1980s, barcodes have become the backbone of supply chain

management (SCM). Recently, organizations, from both government and corporate

sectors have placed increasing emphasis on further streamlining SCM to deliver cost
17

savings. This has lead to a number of leading organizations introducing mandates for

their suppliers to implement radio frequency identification (RFID) technology. Many

organizations are unsure which technology, barcodes or RFID offers them the best

return. This thesis will aid stakeholders in understanding the advantages and

disadvantages of each respective technology in SCM applications. Furthermore, the

research will examine the importance of a global standard for RFID such as the

Electronic Product Code (EPC) and offer insight into the coexistence of barcodes and

RFID. The research will employ a thorough documentation review as well as several

interviews with users of each technology. [Luke, 2004]

 Development of a Matlab-Based Graphical User Interface Environment for

PIC Microcontroller Project

Peripheral Interface Controllers (PICs) are inexpensive microcontroller units

with built-in serial communication functionality. Similarly, Matlab, widely used

technical computing software, allows serial communication with external devices. In

addition, Matlab provides graphical design tools such as Simulink and Dials and

Gauges Blockset. This paper exploits the serial communication capability of PIC

microcontrollers and the Matlab software along with graphical design tools of Matlab

to create a Matlab-based graphical user interface (GUI) environment for PIC

microcontroller projects. Three examples are included to illustrate that the integration

of low-cost PIC microcontrollers with the Matlab-based GUI environment allows data

acquisition, data processing, data visualization, and control.


18

Peripheral Interface Controllers (PICs) developed and marketed by Microchip

Technology, Inc. are inexpensive microcontroller units that include a central

processing unit and peripherals such as memory, timers, and input/output (I/O)

functions on an integrated circuit (IC). There are more than a hundred varieties of PIC

microcontrollers available, each providing functionality for different types of

applications, making PICs one of the most popular microcontrollers for educational,

hobby, and industrial applications. Similar to other microcontrollers, PICs are usually

not designed to interface with human beings; instead they are directly embedded into

automated products/processes. Thus, graphical user interface (GUI) capabilities,

which have become a mainstay of many personal computer (PC) applications, are

nonexistent for PIC. [Lee, Li, Kapila, 2004]

 GSM Based Display Toolkit

Wireless communication has announced its arrival on big stage and the world

is going mobile. We want to control everything and without moving an inch. This

remote control of appliances is possible through Embedded Systems. The use of

“Embedded System in Communication” has given rise to many interesting

applications that ensures comfort and safety to human life. The main aim of the

project will be to design a SMS driven automatic display toolkit which can replace

the currently used programmable electronic display. It is proposed to design receive

cum display toolkit which can be programmed from an authorized mobile phone. The

message to be displayed is sent through a SMS from an authorized transmitter. The

toolkit receives the SMS, validates the sending Mobile Identification Number (MIN)
19

and displays the desired information after necessary code conversion. The system is

made efficient by using ‘clone’ SIMs of same MIN in a geographical area so that the

same SMS can be received by number of display boards in a locality using techniques

of time division multiple access. Started of as an instantaneous News display unit, we

have improved upon it and tried to take advantage of the computing capabilities of

microcontroller. We envision a toolkit that will not only display message but also can

be used to do some mechanical work. Looking into current trend of information

transfer in the campus, it is seen that important notice take time to be displayed in the

notice boards. This latency is not expected in most of the cases and must be avoided.

It is proposed to implement this project at the institute level. It is proposed to place

display boards in major access points. The electronics displays which are currently

used are programmable displays which need to be reprogrammed each time. This

makes it inefficient for immediate information transfer, and thus the display board

loses its importance. The GSM based display toolkit can be used as a add-on to these

display boards and make it truly wireless. The display board programs itself with the

help of the incoming SMS with proper validation. Such a system proves to be helpful

for immediate information transfer the system required for the purpose is nothing but

a Microcontroller based SMS box. The main components of the toolkit include

microcontroller, GSM modem. These components are integrated with the display

board and thus incorporate the wireless features. The GSM modem receives the SMS.

The AT commands are serially transferred to the modem through MAX232. In return

the modem transmits the stored message through the COM port. The microcontroller

validates the SMS and then displays the message in the LCD display board. Various
20

time division multiplexing techniques have been suggested to make the display

boards functionally efficient. The microcontroller used in this case is Philips

P89C51RD2BN. Matrix Simado GDT11 is used as the GSM modem. In the prototype

model, LCD display is used for simulation purpose. While implementation this can be

replaced by actually display boards. [Mishra, Kumar Das, 2007]

 The use of IEEE 802.15.4/ZigBee for Time-Sensitive Wireless Sensor

Network Application

Recent advancements in information and communication technologies are

paving the way for new paradigms in embedded computing systems. This, allied with

an increasing eagerness for monitoring and controlling everything, everywhere, is

pushing forward the design of new Wireless Sensor Network (WSN) infrastructures

that will tightly interact with the physical environment, in a ubiquitous and pervasive

fashion. Such cyber-physical systems require a rethinking of the usual computing and

networking concepts, and given that the computing entities closely interact with their

environment, timeliness is of increasing importance. This Thesis addresses the use of

standard protocols, particularly IEEE 802.15.4 and ZigBee, combined with

commercial technologies as a baseline to enable WSN infrastructures capable of

supporting the Quality of Service (QoS) requirements (specially timeliness and

system lifetime) that future large-scale networked embedded systems will impose.

With this purpose, in this Thesis we start by evaluating the network performance of

the IEEE 802.15.4 Slotted CSMA/CA (Carrier Sense Multiple Access with Collision

Avoidance) mechanism for different parameter settings, both through simulation and
21

through an experimental test bed. In order to improve the performance of these

networks (e.g. throughput, energy efficiency, message delay) against the hidden-

terminal problem, a mechanism to mitigate it was implemented and experimentally

validated. The effectiveness of this mechanism was also demonstrated in a real

application scenario, featuring a target tracking application. A methodology for

modeling cluster-tree WSNs and computing the worst-case end-to-end delays,

buffering and bandwidth requirements was tested and validated experimentally. This

work is of paramount importance to understand the behavior of WSNs under worst-

case conditions and also to make the appropriate network settings. Our experimental

work enabled us to identify a number of technological constrains, namely related to

hardware/software and to the Open-ZB implementation in TinyOS. In this line, a new

implementation effort was triggered to port the Open-ZB IEEE 802.15.4/ZigBee

protocol stack to the ERIKA real-time operating system. This implementation was

validated experimentally and its behavior compared with the TinyOS–based

implementation. [Silva Severino, 2008]

2.3. Local Literature/Studies

 Microcontroller Based SMS E-Load Vending Machine

Presently, there has been a world-wide spread use of cellular phones. Cellular

communication plays an important role in our daily life. It helps us locate and be in

touch with another person in a remote location. Since the Philippines being a

developing country, 33 percent of our population is under poverty. Wireless

Telecommunications Company offered prepaid loading option that is highly suitable


22

in the Philippine setting. Subscribers purchase consumable credits for their account in

preset denominations. These gave subscribers limited option to choose the amount

they will load up. [Cu, Sy, 2006]

 Wi-Fi Access Vending Machine

The University of Santo Tomas is a Wi-Fi ready campus, but not everyone is

capable of using its service due to some limitations. This limitations is due to the

exclusively of the Wi-Fi service to students, faculty, and other employees of the

University, who have unique given usernames and passwords. That’s why our team

have come up with the idea of the Wi-Fi Access Vending Machine, in which other

possible users, like guests and visitors, who doesn’t have official accounts to access

the Wi-Fi service can also use the said service.

The group has made a vending machine where the user can purchase their

own username and password. It is connected to a database and a system which will

generate their user accounts that will be sent to their mobile numbers which they will

be asked to input in the vending machine. This study resulted to a much wider range

of accessibility, efficiency, and trouble-free use of the Wi-Fi service in UST. [De

Leon, Gonida, Kaiklian, 2011]


23

CHAPTER III

RESEARCH AND METHODOLOGY

3.1. Technical Background

3.1.1. Hardware Specifications

The following were parts of the Smart Cart. The researchers assumed that the

following parts will greatly increase the performance of the machine in order to make the

Smart Cart user friendly.

 ZigBee

ZigBee is a specification for a suite of high level communication protocols

using small, low-power digital radios based on an IEEE 802 standard for personal

area networks. Applications include wireless light switches, electrical meters with in-

home-displays, and other consumer and industrial equipment that require short-range

wireless transfer of data at relatively low rates. The technology defined by the ZigBee

specification is intended to be simpler and less expensive than other WPANs, such as

Bluetooth. This served as the transmitter and receiver of signal in the counter-to-cart

data transmission.

 Barcode Reader

A barcode reader (or barcode scanner) is an electronic device for reading

printed barcodes. The Barcode Reader served a great purpose for the Smart Cart

system because it was the one tasked to read the products’ barcode label. It will then
24

send a relay message to the machine to tally and total the price of the user’s grocery

items.

 Liquid Crystal Display (LCD)

LCDs are used in a wide range of applications, including computer monitors,

television, instrument panels, aircraft cockpit displays, signage, etc. They are

common in consumer devices such as video players, gaming devices, clocks, watches,

calculators, and telephones. LCDs have replaced cathode ray tube (CRT) displays in

most applications. They are available in a wider range of screen sizes than CRT and

plasma displays, and since they do not use phosphors, they cannot suffer image burn-

in. LCDs are, however, susceptible to image persistence. This part was the one to

interact with the customer. This was where the customer can see all of the products

he/she bought from the grocery store as well as the budget and the total price of the

products.

 PIC Microcontroller

PICs are popular with both industrial developers and hobbyists alike due to

their low cost, wide availability, large user base, extensive collection of application

notes, availability of low cost or free development tools, and serial programming (and

re-programming with flash memory) capability.


25

 Keypad

This part was where the customer can input the budget that he/she has for

grocery items. This was intended to be the input device for the customer.

 PIC Kit

This was the programmer for the PIC microcontroller.

 Computer Unit

This hardware specification was used as the cashier side of the product. It

receives data sent by the cart then stores that data in the database. Later, the data

would be queried by the system in order for the cashier to check whether the items

bought match the items in the query. This part was also the one that would end the

POS transaction.

3.1.2. Software Specification

The researchers used the following programs in order to develop the system

software of the virtual cashier:

 PIC Programming Software

This software enabled the researchers to create, edit and debug the program

that will be embedded in the PIC microcontroller.


26

 Microsoft Access

This was the database software that was used for the development of the

database for the project.

 Visual Basic 6.0

This software enabled the researchers to create the interface for the cashier

which was connected to the Smart Cart through the use of the ZigBee Module.

3.2. Methodology

3.2.1. Research Design

 General Method Used

Analysis

Gathering

Design

Construction

Testing

Deployment

Maintenance

Figure 7. The System Development Life Cycle (SDLC) Waterfall Model


27

In developing the Smart Cart, the researchers used the Waterfall model. This type

of system development life cycle approach assumes that the various phases of the project

development can be carried out and completed entirely in a sequential manner. One

completed phase leads into the next phase. Its progress is seen as flowing steadily

downwards through the phases of analysis, gathering, design, construction, testing,

deployment, and maintenance.

 Analysis of the Study

This phase focused on determining and analyzing the problem that the

researchers want to solve. This phase determined the scope and processes that took

place all throughout the entire research. Information gathering was also included in

this phase.

 Gathering of Materials

In this phase, the researchers gathered the materials for the Smart Cart and

took into consideration different designs in order to fully comprehend and create a

design that will be convenient for the customer. Gathered materials were either

bought online or from a local electronic store.

 Designing the Cart

This phase focused on designing the actual Smart Cart and the system

software that the researchers used. Different designs were considered to fully
28

integrate a functioning prototype of the cart. User interaction was the top priority

basis for considerations of the designing of the system of the Smart Cart.

 Constructing the Cart

After the Design Phase, the researchers immediately started the construction

of the system of the Smart Cart including the MCU and Visual Basic programs and its

database. This also included the construction of the circuitry of the system that

enabled the functionality of all the components of the Smart Cart. This phase

probably took two full months due to the fact that the researchers took into

consideration that during this phase, some materials will break.

 Testing the Product

After construction, the researchers tested the kiosk in order to determine any

problem in the machine and the system. The researchers immediately solved any

problem. Problems that occurred were tallied upon recognition for future references.

 Deployment

After ensuring that problems encountered during the testing phase was

eliminated or diverted, the researchers prepared for the deployment phase. The

researchers coordinated with the owner to know the date of the deployment of the cart

in the convenience store. This phase only took a maximum of three days because

coordination between owner and the researchers were clear.


29

 Maintenance

In this phase, the researchers monitored the Smart Cart’s performance and

benefits. Problems that occurred were given immediate action from the researchers.

During this phase, survey and analysis of the cart’s performance were evaluated

through questionnaires that were handed out to the owner and the customers.

3.2.2. Project Design

SMART CART*

BATTERY LCD

BARCODE
MICROCONTROLLE KEYPAD
READER
R

ZIGBEE
(Transmitter)

Wireless

ZIGBEE
(Receiver)

CASHIER

Figure 8. Block Diagram of the Smart Cart

The Smart Cart was composed of two major parts: the Smart Cart itself and the

Cashier. The Smart Cart was constructed with a Liquid Crystal Display (LCD) screen for

display, a Barcode Reader for reading barcode labels of products, a Keypad for user input

and for using other functions such as mode selector and enter/cancel, a battery for power

source, and a ZigBee Module for wireless transmission of data. The Cashier was
30

primarily a computer unit running the Visual Basic program, a database, and a ZigBee

Module also for wireless transmission. These components worked together to make the

entire system function properly and simulate a real-world transaction running in an

innovative machine.

3.2.3. Project Development

3.2.3.1. System Flowchart

The entire system of the Smart Cart worked with all the components functioning

properly. This flowchart showed how data processes throughout the system.

START

INITIALIZE VARIABLE
INITIALIZE CONFIGURATION

NO
RETRIEVE LAST
START DATA
NEW?
YES

CLEAR DATA
CONNECT TO SERVER

ENTER
X BUDGET
MODE = 1 MODE = 2
MODE Y

SCAN ITEM ITEM LOCATOR

TRANSMIT ITEM BARCODE


RECEIVE ITEM DESCRIPTION MODE

PAGE UP PAGE DOWN CANCEL


X
DISPLAY ITEM ITEM
NAME AND CATEGORY
PRICE LIST

MODE Y

A X
B

Figure 9. System Flowchart


31
ADD ITEM REMOVE ITEM

A B

NO NO
CURRENT IS ITEM IN
BUDGET > ITEM DATABAS
PRICE E?
WARNING YES YES

INSUFFICIE ADD ITEM DELETE ITEM


NT BUDGET!

DISPLAY DISPLAY
TOTAL TOTAL
AMOUNT AMOUNT

DONE?

YES

GO TO CASHIER
GIVE CART
NUMBER

INPUT CART NUMBER


QUERY ITEM LIST FROM DATABASE

CHECK ITEM
(CART TO CASHIER ITEM LIST)

PAY TOTAL AMOUNT

CLEAR DATA

START

Figure 10. System Flowchart (continuation)

The Smart Cart, when turned on connects to the server and prompts the user to

either start a new transaction or retrieve the last one. Retrieving the last transaction mode

was provided to support power loss or unexpected error occurring throughout the system.

The user is prompted to input his/her desired budget for his/her whole grocery shopping.

Exceeding the budget does not stop the customer transaction but only provides a message

that the user is exceeding his/her budget. After doing so, the user is given the choice of
32

scanning desired products or using the product locator. The product locater provides the

user to easily locate product aisle numbers. When the user scans the barcode label of

products, the user is to add or delete the item in his/her grocery list. The system also

displays product information like the product name and price and the total accumulated

price of the entire transaction. When the user is done with his/her shopping, the user is to

proceed to a counter and pay the amount of his/her transaction.

3.2.4. Requirements Analysis

The researchers presented this part in a manner of question and answer type in

order for readers to easily understand this capstone. The answers were provided

theoretically based on the customer’s and owner’s opinions.

Table 2. Requirements Analysis Table

Question posed by researchers Answers

An LCD display, a ZigBee


1. What will be the new parts that will be present
module, a barcode scanner, and
in the smart cart?
a keypad

2. What will be used to transmit data from the A ZigBee transmitter and a

cart to the counter? receiver

3. Will the customer be able to input his budget? Yes, definitely


33

4. Can the smart cart help the customer manage


Yes, definitely
his budget well?

This device will be responsible

5. How will ZigBee work? for transmitting and receiving

data to and from the carry

6. What is the microcontroller that you will use? A PIC microcontroller

7. How will the customer input his budget? Through a keypad

After the whole process, the

8. How will the customer pay? customer can directly pay to the

cashier.

The customer can check it at the


9. How can the customer check if the products
counter later after the
he/she bought were scanned?
transaction
34

3.2.4.1. Use-Case Diagram

The following diagram illustrates the use case scenarios and their

corresponding actors.

SWITCH
INPUT
BUDGET

KEYPAD

CHANGE
MODE

BARCODE SCAN ITEM


SCANNER

CASH
REGISTER

CHECK
COLLECT ITEMS
PAYMENT

Figure 11. Use-Case Diagram

The table specifies what the actor could do during the process of studying

and testing.

Table 3. Use-Case Scenario

Actor Roles Role Description

Turns on the whole Smart Cart


Customer Turn on the switch
system

Barcode Scanner Scan barcode label Scans Barcode label


35

Used to input budget and item


Keypad Input desired budget
category

Press ‘#’ in order to deduct

item; Change mode to (-) Press


Change mode
‘*’ in order to add item;

Change mode to (+)

Checks whether the items that

Cashier Check items the customer bought match the

item list in the counter

Collects payment and ends the


Collect Payment
whole POS transaction

3.2.5. Requirements Documentation

The Smart Cart featured a barcode reader that scanned the product’s code. The

machine only read products with a barcode. The machine also had a Liquid Crystal

Display (LCD) screen to aid customers with their proper budgeting and to view other

functions of the cart. First-time users/customers were needed to be fully briefed or to be

provided with an instruction manual in order to avoid unnecessary damage or technical

difficulty to the machine. The machine used a ZigBee Module for long distance data

transfer within the supermarket and for multiple frequency accommodation. The products

and its prices scanned through the barcode reader were sent to the computer/server
36

located at the counter. After the customer was done with his/her shopping, he/she only

had to go to the cashier for the payment of all the merchandise bought.
37

CHAPTER IV

RESULTS AND DISCUSSION

This chapter was about the results and discussion that of which the researchers

performed throughout the creation of the prototype. Material and module testing and

evaluation were very crucial to the performance and results of the prototype.

4.1. Results

1. Connection of Liquid Crystal Display to Microcontroller

The connection of LCD to Microcontroller and its function was tested in order

to see whether the LCD works and if it outputs the right characters that the user needs

to see. The LCD was tested with one scenario input where it should display budget

input and the product information. There were fourteen tests conducted until the LCD

displayed the correct display.

Figure 12. Connection of Liquid Crystal Display to Microcontrolle


38

Table 4. Testing of the connection of LCD to the Microcontroller

Trial Date Scenario Expected Result Actual Result Remarks

It displayed
To be able to Budget input and Unsuccessful;
the right
display the product String format
July 17, information
1 budget input information will in the
2012 but on the
and product be displayed in assembly code
wrong
information desired position must be exact
position

It displayed

the correct Unsuccessful;

To be able to Budget input and information The characters

display the product but when the in the string


July 18,
2 budget input information will number of buffer must be
2012
and product be displayed in characters filled and

information desired position exceeded include

produced character limit

error
39

Trial Date Scenario Expected Result Actual Result Remarks

It displayed
To be able to Budget input and Successful;
the budget
display the product The string
July 25, and product
3 budget input information will format in the
2012 information in
and product be displayed in assembly code
the desired
information desired position is fixed
position

It displayed
To be able to Budget input and
the budget
display the product
August 1, and product
4 budget input information will Successful
2012 information in
and product be displayed in
the desired
information desired position
position

It displayed
To be able to Budget input and
the budget
display the product
August 5, and product
5 budget input information will Successful
2012 information in
and product be displayed in
the desired
information desired position
position
40

Trial Date Scenario Expected Result Actual Result Remarks

It displayed
To be able to Budget input and
the budget
display the product
August and product
6 budget input information will Successful
12, 2012 information in
and product be displayed in
the desired
information desired position
position

It displayed
To be able to Budget input and
the budget
display the product
August and product
7 budget input information will Successful
15, 2012 information in
and product be displayed in
the desired
information desired position
position

It displayed
To be able to Budget input and
the budget
display the product
August and product
8 budget input information will Successful
22, 2012 information in
and product be displayed in
the desired
information desired position
position
41

Trial Date Scenario Expected Result Actual Result Remarks

It displayed
To be able to Budget input and
the budget
display the product
September and product
9 budget input information will Successful
5, 2012 information in
and product be displayed in
the desired
information desired position
position

It displayed
To be able to Budget input and
the budget
display the product
September and product
10 budget input information will Successful
10, 2012 information in
and product be displayed in
the desired
information desired position
position

It displayed
To be able to Budget input and
the budget
display the product
September and product
11 budget input information will Successful
12, 2012 information in
and product be displayed in
the desired
information desired position
position
42

Trial Date Scenario Expected Result Actual Result Remarks

It displayed
To be able to Budget input and
the budget
display the product
September and product
12 budget input information will Successful
15, 2012 information in
and product be displayed in
the desired
information desired position
position

It displayed
To be able to Budget input and
the budget
display the product
September and product
13 budget input information will Successful
18, 2012 information in
and product be displayed in
the desired
information desired position
position

It displayed
To be able to Budget input and
the budget
display the product
September and product
14 budget input information will Successful
22, 2012 information in
and product be displayed in
the desired
information desired position
position

Legend: Successful = Actual result meets the scenario’s objective


Unsuccessful = Actual result does not meet scenario’s objective
43

2. Connection of Keypad to Microcontroller

The connection between the keypad and the microcontroller was tested to

monitor whether the keypad was functioning according to its purpose. Testing

procedure was in fourteen tries until the user can input the right budget and use other

keypad functions of the Smart Cart.

Figure 13. Connection of Keypad to Microcontroller


44

Table 3. Testing of the connection of Keypad to the Microcontroller

Trial Date Scenario Expected Result Actual Result Remarks

To be able to

input desired Unsuccessful;


All keys are
budget and All keys must be Port
functioning
July 17, use other functioning and assignment in
1 expect for the
2012 buttons for producing desired the assembly
‘*’ and ‘#’
other output code is
button
functions of incorrect

the Smart Cart

To be able to
Unsuccessful;
input desired
When the
budget and All keys must be The end
button is
July 18, use other functioning and transaction
2 pressed it goes
2012 buttons for producing desired button was
inside an
other output not working.
endless loop
functions of
in the function
the Smart Cart
45

Trial Date Scenario Expected Result Actual Result Remarks

To be able to
Successful;
input desired
All keys are closing tags
budget and All keys must be
functioning for the
July 25, use other functioning and
3 according to assembly code
2012 buttons for producing desired
the target is fixed where
other output
result the loop
functions of
occurs
the Smart Cart

To be able to

input desired
All keys are
budget and All keys must be
functioning
August 1, use other functioning and
4 according to Successful
2012 buttons for producing desired
the target
other output
result
functions of

the Smart Cart


46

Trial Date Scenario Expected Result Actual Result Remarks

To be able to

input desired
All keys are
budget and All keys must be
functioning
August 5, use other functioning and
5 according to Successful
2012 buttons for producing desired
the target
other output
result
functions of

the Smart Cart

To be able to

input desired
All keys are
budget and All keys must be
functioning
August use other functioning and
6 according to Successful
12, 2012 buttons for producing desired
the target
other output
result
functions of

the Smart Cart


47

Trial Date Scenario Expected Result Actual Result Remarks

To be able to

input desired
All keys are
budget and All keys must be
functioning
August use other functioning and
7 according to Successful
15, 2012 buttons for producing desired
the target
other output
result
functions of

the Smart Cart

To be able to

input desired
All keys are
budget and All keys must be
functioning
August use other functioning and
according to Successful
8
22, 2012 buttons for producing desired
the target
other output
result
functions of

the Smart Cart


48

Trial Date Scenario Expected Result Actual Result Remarks

To be able to

input desired
All keys are
budget and All keys must be
functioning
September use other functioning and
9 according to Successful
5, 2012 buttons for producing desired
the target
other output
result
functions of

the Smart Cart

To be able to

input desired
All keys are
budget and All keys must be
functioning
September use other functioning and
10 according to Successful
10, 2012 buttons for producing desired
the target
other output
result
functions of

the Smart Cart


49

Trial Date Scenario Expected Result Actual Result Remarks

To be able to

input desired
All keys are
budget and All keys must be
functioning
September use other functioning and
11 according to Successful
12, 2012 buttons for producing desired
the target
other output
result
functions of

the Smart Cart

To be able to

input desired
All keys are
budget and All keys must be
functioning
September use other functioning and
12 according to Successful
15, 2012 buttons for producing desired
the target
other output
result
functions of

the Smart Cart


50

Trial Date Scenario Expected Result Actual Result Remarks

To be able to

input desired
All keys are
budget and All keys must be
functioning
September use other functioning and
13 according to Successful
18, 2012 buttons for producing desired
the target
other output
result
functions of

the Smart Cart

To be able to

input desired
All keys are
budget and All keys must be
functioning
September use other functioning and
14 according to Successful
22, 2012 buttons for producing desired
the target
other output
result
functions of

the Smart Cart

Legend: Successful = Actual result meets the scenario’s objective


Unsuccessful = Actual result does not meet scenario’s objective
51

3. Connection of ZigBee Module to Microcontroller

The ZigBee Module acted as the transmitter/receiver for the data of the

system. The connection between the ZigBee and the Microcontroller was tested in

order to know if the ZigBee really transmits/receives data as the user scans the

products. Fourteen trials were conducted in separate occasions in order to determine

if the ZigBee Module really works.

Figure 14. Connection of ZigBee Module to Microcontroller


52

Table 6. Testing of the connection of ZigBee Module to the Microcontroller

Trial Date Scenario Expected Result Actual Result Remarks

Unsuccessful;
To be able to
The Visual
transmit and
July 17, Data transmitted Slow response Basic
1 receive data
2012 at real-time time interfacing
from a certain
code was not
distance
sufficient

Slow response Unsuccessful;


To be able to
time and does The assembly
transmit and
July 18, Data transmitted not retransmit code for
2 receive data
2012 at real-time if the VB passing the
from a certain
interface did data is
distance
not receive inefficient

To be able to Unsuccessful;
Fast response
transmit and Retransmission
July 25, Data transmitted time but no
3 receive data of data must be
2012 at real-time retransmission
from a certain included in the
of data
distance algorithm
53

Trial Date Scenario Expected Result Actual Result Remarks

Successful;

Code handling
To be able to Fast response
in transmission
transmit and in
August 1, Data transmitted must be
4 receive data transmitting
2012 at real-time effective.
from a certain and receiving
Correct ports
distance data
and newer

syntax

To be able to Fast response

transmit and in
August 5, Data transmitted
5 receive data transmitting Successful
2012 at real-time
from a certain and receiving

distance data

To be able to Fast response

transmit and in
August Data transmitted
6 receive data transmitting Successful
12, 2012 at real-time
from a certain and receiving

distance data
54

Trial Date Scenario Expected Result Actual Result Remarks

To be able to Fast response

transmit and in
August Data transmitted
7 receive data transmitting Successful
15, 2012 at real-time
from a certain and receiving

distance data

To be able to Fast response

transmit and in
August Data transmitted
8 receive data transmitting Successful
22, 2012 at real-time
from a certain and receiving

distance data

To be able to Fast response

transmit and in
September Data transmitted
9 receive data transmitting Successful
5, 2012 at real-time
from a certain and receiving

distance data

To be able to Fast response

transmit and in
September Data transmitted
10 receive data transmitting Successful
10, 2012 at real-time
from a certain and receiving

distance data
55

Trial Date Scenario Expected Result Actual Result Remarks

To be able to Fast response

transmit and in
September Data transmitted
11 receive data transmitting Successful
12, 2012 at real-time
from a certain and receiving

distance data

To be able to Fast response

transmit and in
September Data transmitted
12 receive data transmitting Successful
15, 2012 at real-time
from a certain and receiving

distance data

To be able to Fast response

transmit and in
September Data transmitted
13 receive data transmitting Successful
18, 2012 at real-time
from a certain and receiving

distance data
56

Trial Date Scenario Expected Result Actual Result Remarks

To be able to Fast response

transmit and in
September Data transmitted
14 receive data transmitting Successful
22, 2012 at real-time
from a certain and receiving

distance data

Legend: Successful = Actual result meets the scenario’s objective


Unsuccessful = Actual result does not meet scenario’s objective

4. Connection of Barcode Reader to Microcontroller

The connection between the barcode reader and the microcontroller was tested

in order to determine if the microcontroller can really receive the data scanned by the

barcode. Testing procedure was done in fourteen tries with separate dates until the

barcode scanner could scan the correct barcode label and the microcontroller can

receive data passed by the barcode scanner.


57

Figure 15. Connection of Barcode Reader to Microcontoller

Table 7. Testing of the connection of Barcode Scanner to the Microcontroller

Trial Date Scenario Expected Result Actual Result Remarks

Unsuccessful;
To be able to Accurate scan and
July 17, Not the connected
1 scan products’ barcode label is
2012 Functioning is not plug
barcode label correct
correctly
58

Trial Date Scenario Expected Result Actual Result Remarks

Unsuccessful;

The
To be able to Accurate scan and
July 18, Still not connection for
2 scan products’ barcode label is
2012 Functioning the circuit
barcode label correct
board is

wrong.

Successful;

Completely We fixed the


To be able to Accurate scan and
July 25, functioning required
3 scan products’ barcode label is
2012 with desired connection in
barcode label correct
results the circuit

board

Completely
To be able to Accurate scan and
August 1, functioning
4 scan products’ barcode label is Successful
2012 with desired
barcode label correct
results

Completely
To be able to Accurate scan and
August 5, functioning
5 scan products’ barcode label is Successful
2012 with desired
barcode label correct
results
59

Trial Date Scenario Expected Result Actual Result Remarks

Completely
To be able to Accurate scan and
August functioning
6 scan products’ barcode label is Successful
12, 2012 with desired
barcode label correct
results

Completely
To be able to Accurate scan and
August functioning
7 scan products’ barcode label is Successful
15, 2012 with desired
barcode label correct
results

Completely
To be able to Accurate scan and
August functioning
8 scan products’ barcode label is Successful
22, 2012 with desired
barcode label correct
results

Completely
To be able to Accurate scan and
September functioning
9 scan products’ barcode label is Successful
5, 2012 with desired
barcode label correct
results
60

Trial Date Scenario Expected Result Actual Result Remarks

Completely
To be able to Accurate scan and
September functioning
10 scan products’ barcode label is Successful
10, 2012 with desired
barcode label correct
results

Completely
To be able to Accurate scan and
September functioning
11 scan products’ barcode label is Successful
12, 2012 with desired
barcode label correct
results

Completely
To be able to Accurate scan and
September functioning
12 scan products’ barcode label is Successful
15, 2012 with desired
barcode label correct
results

Completely
To be able to Accurate scan and
September functioning
13 scan products’ barcode label is Successful
18, 2012 with desired
barcode label correct
results
61

Trial Date Scenario Expected Result Actual Result Remarks

Completely
To be able to Accurate scan and
September functioning
14 scan products’ barcode label is Successful
22, 2012 with desired
barcode label correct
results

Legend: Successful = Actual result meets the scenario’s objective


Unsuccessful = Actual result does not meet scenario’s objective

5. Connection of the entire Smart Cart System

The connection of the entire Smart Cart was tested in order to determine if the

cart system really functions. These testing procedures would let the researchers know

if the entire Smart Cart system works and perform all its functions. Testing procedure

of the entire system should be like the other testing procedures of the individual parts.

There were twelve tries until the entire system turned on and did its basic functions.
62

Figure 16. Connection of the entire Smart Cart System


63

Table 8. Testing of the connection of the entire Smart Cart system

Trial Date Scenario Expected Result Actual Result Remarks

The Visual

Basic
To be able to Unsuccessful;
Program start up interface
September start up the The LCD was
and device start
1 program is up
22, 2012 system and not connected
up but the device
the device properly
displays

nothing

The VB Successful;
To be able to
Program start up interface is up Proper
September start up the
2 and device start and running connection for
22, 2012 system and
up as well as the the LCD was
the device
device made

The program
Successful;
To be able to LCD will display proceeded
September Debugging for
start a new a budget input
3 with the next
23, 2012 assembly is
transaction line. step, which is
successful.
budget input
64

Trial Date Scenario Expected Result Actual Result Remarks

Unsuccessful;

The loop
Produce the
To be able to The cursor is counter in the
September correct characters
4 input desired not moving to assembly
23, 2012 and proper
budget the next space program is not
alignment
correctly

entered

Successful;
Desired result

Produce the was achieved Program was


To be able to
September correct characters correct debugged;
input desired
5
24,2012 and proper characters Increase the
budget
alignment produced and counter to the

alignment sufficient

needs
65

Trial Date Scenario Expected Result Actual Result Remarks

Successful;
Proper Item was

transmission of scanned and Correct


September To be able to
6 data between the passed to the placement of
25, 2012 scan item
device and the system, value connections in

system was added the wiring and

correct code

Unsuccessful;
For the
To be able to Correct values of The Visual
subtract mode
September view the total price for add Basic code for
7 it was not
25, 2012 correct values item and subtract the subtract
transmitting
of total price item method is
data
incomplete

To be able to Correct values of Successful;


Correct output
September view the total price for add Return value
8 is displayed in
25, 2012 correct values item and subtract was set to the
the LCD
of total price item. packet
66

Trial Date Scenario Expected Result Actual Result Remarks

Unsuccessful;
To be able to The device
Correct total The Visual
retrieve old keeps on
September value for old basic code
transaction in waiting for
9
26, 2012 transaction is case statement
case of loss of the total
displayed is not ended
power value.
properly

To be able to Unsuccessful;
Correct total The device
retrieve old
September value for old keeps on The value for
10 transaction in
26, 2012 transaction is waiting for the reply
case of loss of
displayed the total value packet was
power not initialized

Successful;

The Visual
To be able to
Correct total Basic code
retrieve old Retrieved the
September value for old was corrected;
11 transaction in correct total
26,2012 transaction is Value for
case of loss of value
displayed reply packets
power
was initialized

properly
67

Trial Date Scenario Expected Result Actual Result Remarks

To be able to
Desired Successful;
Item categories
locate the
output was Correct
September section must be
categories of
achieved, database
12
27, 2012 displayed
item using the
sections for queries for the
successfully
feature of the
item program code
system

Legend: Successful = Actual result meets the scenario’s objective


Unsuccessful = Actual result does not meet scenario’s objective

4.2. Discussion

1. Connection of Liquid Crystal Display to Microcontroller

In order to display characters in the LCD, connect the corresponding LCD pin

assignment to the microcontroller. Hence, the communication between the LCD and

MCU was working properly.

Table 9. LCD Pin Configuration

LCD Pins Pin Assignment LCD Pins Pin Assignment

Pin 1 Vss Pin 8 DB1 None

Pin 2 Vcc 5V Pin 9 DB2 None

Pin 3 V0 Pin 10 DB3 None


68

Pin 4 Rs RA4 Pin 11 DB4 RA0

Pin 5 R/W None Pin 12 DB5 RA1

Pin 6 E RB3 Pin 13 DB6 RA2

Pin 7 DB0 None Pin14 DB7 RA3

2. Connection of Keypad to Microcontroller

All available keys in the keypad were fully used in the system. The numbers

are used to input the desired budget of the customer for his/her shopping. The digit 1

and 2 buttons were used for two purposes: selection of mode between stating a new

transaction and retrieving a previous one; selection of another mode between

scanning an item barcode and using the item locator. The ‘*’ and ‘#’ were also used

in the system for two purposes: Enter/Cancel and Mode Switching. For the

enter/cancel function, the button ‘*’ is used to enter the customer’s desired budget

while the ‘#’ is used to delete/cancel errors in the budget input. For the mode

switching function, the button ‘#’ is used to enable the add mode (+) which is for

adding items in the customer’s transaction while the ‘*’ is used for minus mode (-)

which is for removing items in the customer’s transaction.

The keypad in the connection with the microcontroller is working properly.


69

3. Connection of ZigBee Module to Microcontroller

The ZigBee Module connected to the microcontroller serves as a data receiver

as well as a data transmitter. The computer unit also has a ZigBee module connected

to it. Once a product barcode has been scanned using the barcode scanner, the ZigBee

Module transmits the data to the computer unit. The computer unit looks for the

corresponding barcode inside its database. When the barcode has been located, the

ZigBee Module connected to the computer transmits the data back to the

microcontroller.

The ZigBee Module connected to the microcontroller and the computer unit is

working properly but it is limited for particular range. When the ZigBee Module is

not in its range, it does not transmit or receive any data causing transmission delays.

4. Connection of Barcode Reader to Microcontroller

The barcode reader connected to the microcontroller is used for

reading/scanning barcode label of products which the customers purchase. The

barcode reader used in the system is connected using the PS/2 connector because the

microcontroller does not support new barcode readers that are connected using the

USB port.

The barcode reader connected to the microcontroller is working properly. The

barcode reader only reads/scans a barcode label if fired from a very short distance. If
70

it is fired from a distance greater than its range, the barcode does not capture the

barcode label of a product.

5. Connection of the entire Smart Cart System

In order to interface the whole system, several trials were needed to confirm

the full functionality of the system. The first thing we did was to start up the system

as a whole, 12V was needed for the device, and the Visual Basic interface must be

also started for the device to function. Minimal errors for hardware were encountered.

Most of it was unattached connections. Most errors occur inside the software

programs. Some were initializations of variables and proper ending statement for

loops. The functionality of the Point-of-Sale was completely functioning. The device

was complete running and compatible for the Visual Basic interface along with the

proper database. Overall, the prototype was successfully performing its features and

functions.
71

6. Actual Testing

A. Device Image

B. Cashier Image
72

C. System Startup

D. New Transaction
73

E. Sending Cart Number

F. Sending Success

G. Entering Budget
74

G. Entering Budget Continuation


75

H. Finished Entering Budget

I. Sending Budget Info

J. Choices of Mode
76

K. Mode 1 (Scan Item)

L. Product Scanned
77

M. Add the Item

N. Delete Item

O. Cancel Item
78

P. Product Locator

Page Up

Page Down
79

Product Locator (Back – to previous Mode)

Q. Retrieving Previous Transaction

Re-enter Budget
80

Retrieving Previous Transaction (Success)

Table 10. Actual Testing

Zigbee

Range Item Item With Without


Trial Actual Result
(Wireless Scan Price obstruction obstruction

Module)

Desired output
Corned Php
1 5 meters achieved 32.00 Successful Successful
Beef 32.00
Php scanned

Desired output
Corned Php
2 10 meters achieved 32.00 Successful Successful
Beef 32.00
Php scanned
81

Zigbee

Range Item Item With Without


Trial Actual Result
(Wireless Scan Price obstruction obstruction

Module)

Desired output
Corned Php
3 15 meters achieved 32.00 Successful Successful
Beef 32.00
Php scanned

Desired output
Corned Php
4 20 meters achieved 32.00 Successful Successful
Beef 32.00
Php scanned

Desired output
Corned Php
5 25 meters achieved 32.00 Successful Successful
Beef 32.00
Php scanned

Desired output
Corned Php
6 30 meters achieved 32.00 Successful Unsuccessful
Beef 32.00
Php scanned

Desired output
Corned Php
7 35 meters achieved 32.00 Unsuccessful Unsuccessful
Beef 32.00
Php scanned

Legend: Successful = Actual result meets the scenario’s objective


Unsuccessful = Actual result does not meet scenario’s objective
82

CHAPTER V

SUMMARY, CONCLUSION, AND RECOMMENDATION

This chapter presented the summary description of the conduct of the project and

its findings. The conclusion was based on the analysis of the data gathered and some

recommendation based on the significant point of the entire research.

5.1. Summary of Results

Several tests were conducted by the researchers. Based from the results, a total

of 12V is needed to power up the system including the ZigBee Module, LCD screen,

and the barcode scanner.

With the use of Smart Cart, shoppers can easily input their budget with simple

readable instructions. When the user is exceeding the budget, the buzzer will sound

that is strong enough to be heard by the user. Several functions were also added to

make the user comfortable such as the default mode which is add (+) item. Users can

also remove item and most of all when the user is finished, there is a dedicated lane

indicated on his/her cart.

With these features, the utility of the system is convenient and very useful.

The user will not forget about the targeted budget.


83

5.2. Conclusion

After several trial and errors, the researchers concluded that the prototype will

provide a better quality of market in most of the grocery stores, most especially to the

users who will be experiencing the ease of shopping. The prototype will provide the

users a budget input that will remind them if they exceed or not but it will not limit

them and of course the ease of payment, when they arrive at the counter their items

and is already listed and is ready for payment.

The researchers therefore conclude that “Smart Cart” system is anytime ready

for implementation not only in small grocery stores but also in big markets, with the

innovation of a ZigBee Module, the data can be networked which will produce

optimization for the market owners to lessen the workload of employee and time

queue of customers.

5.3. Recommendations

The researchers suggest the following recommendations in order to enhance

the utility and function of the system:

1. There is a technical barrier between the barcode scanner speed of transmitting

the data and the receiver. In due time when it is available, the system’s

barcode scanner can be mounted so that the user can easily scan the item.
84

2. The system can include an RFID, with RFID provided at the cashier area,

when the user enters the lane items in the cart are automatically scanned and

data is sent to the cashier.

3. An improvisation of ZigBee Module and a smaller battery that would meet

that system requirement can improve the system.

4. Construction of a more scalable system for bigger implementations.

5. Usage of up-to-date software for development of the system.

6. For the transmission of data, more efficient codes for the microcontroller and

also you can implement it on an updated software development tool.


APPENDIX A
VISUAL BASIC 6.0 PROGRAMS End If

MAIN End Sub

Option Explicit Private Sub cmdAdd_Click()


Option Compare Text
Dim tempTotalItems As Integer If cmdAdd.Caption = "Add Item" Then

Dim mytempprice As String txtQty.Locked = False


txtQty.Enabled = True
'reply packet variables txtItemNo.Locked = False
cmdAdd.Caption = "OK"
Dim replyPacket As String
txtItemNo.SetFocus
Dim TotalAmount As Double
Else
Dim productName As String
If txtQty.Text = "" Or Val(txtQty.Text)
Dim productPrice As Double <= 0 Then

'received packet variables MsgBox "Enter Quantity!",


vbExclamation, "Error"
Dim receivedPacket As String
txtQty.SetFocus
Dim myDirective As String
Exit Sub
Dim myBarCode As String
Else
Dim myCartID As String
End If
Dim AdsCtr As Integer
txtQty.Locked = True
Private Sub chckPromo_Click() txtQty.Enabled = False
txtItemNo.Locked = True
If chckPromo.Value = 1 Then cmdAdd.Caption = "Add Item"

mytempprice = txtPrice.Text Set TempRs = New


txtPrice.Text = sPromoPrice ADODB.Recordset

sFlagPromo = True TempRs.Open "Select * From


tblTransactions Where CartNo='" &
Else txtCartNo.Text & "' AND ItemNo='" &
txtItemNo.Text & "' AND
txtPrice.Text = mytempprice Status='New'", Adoconn, 1, 2
sFlagPromo = False
If TempRs.RecordCount > 0 Then
MsgBox "Item Already In The Rs.Delete
Cart", vbCritical, "Duplicate"
Rs.MoveNext
Else
Loop
TempRs.AddNew
TempRs("CartNo") = txtCartNo.Text End If
TempRs("ItemNo") = txtItemNo.Text
TempRs("Qty") = Val(txtQty.Text) End If

TempRs("Amount") = Set Rs = Nothing


Val(txtQty.Text) * Val(txtPrice.Text)
TempRs("Price") = TotalAmount = "0"
Val(txtPrice.Text) lblItems.Caption = "0"
TempRs("Status") = "New" txtItemNo.Text = ""
TempRs.Update txtDescription.Text = ""
txtItemCode.Text = ""
End If txtCategory.Text = ""
txtPrice.Text = ""
Set TempRs = Nothing txtQty.Text = ""
txtTotalAmount.Text = "0.00"
TotalAmount = "0" txtCash.Text = "0.00"
txtChange.Text = "0.00 "
Call cmdFind_Click lstItem.Clear

End If Call cmdFind_Click

End Sub End Sub

Private Sub cmdCancel_Click() Private Sub cmdFind_Click()

Set Rs = New ADODB.Recordset TotalAmount = 0

If MsgBox("WARNING!. Cart Data Set Rs = New ADODB.Recordset


Items Will Be Lost!.Cancel
Transaction?", vbYesNo + vbQuestion, Rs.Open "Select * From
"Cancel") = vbYes Then qryProdTransaction Where CartNo='" &
txtCartNo.Text & "' AND
Rs.Open "Select * From Status='New'", Adoconn, 1, 2
tblTransactions Where CartNo='" &
txtCartNo.Text & "'", Adoconn, 1, 2 If Rs.RecordCount > 0 Then

If Rs.RecordCount > 0 Then lstItem.Clear

Do Until Rs.EOF Do Until Rs.EOF


txtItemNo.Text & "' AND
lstItem.AddItem Rs("ItemNo") & " | Status='New'", Adoconn, 1, 2
" & Rs("Code") & " Amount:" &
Rs("Amount") & " QTY:" & Rs("Qty") If TempRs.RecordCount > 0 Then
TotalAmount = Val(TotalAmount) +
Val(Rs("Amount")) TempRs("Qty") = Val(txtQty.Text)

Rs.MoveNext If sFlagPromo = True Then

Loop TempRs("Amount") =
Val(txtQty.Text) * Val(txtPrice.Text)
lblItems.Caption = Rs.RecordCount 'Val(TempRs("Price"))

tempTotalItems = Else
Val(Rs.RecordCount)
TempRs("Amount") =
txtTotalAmount.Text = Val(txtQty.Text) * Val(txtPrice.Text)
Format(TotalAmount, "##.00")
End If
Else
TempRs.Update
End If
End If
End Sub
Set TempRs = Nothing
Private Sub cmdModify_Click()
TotalAmount = "0"
If cmdModify.Caption = "Modify" Then
Call cmdFind_Click
txtQty.Locked = False
txtQty.Enabled = True End If
cmdModify.Caption = "OK"
End Sub
Else
Private Sub cmdMyReply_Click()
txtQty.Locked = True
txtQty.Enabled = False myDirective = "Y"
cmdModify.Caption = "Modify" myBarCode = "1" '"76164088"
myCartID = "12345678"
Set TempRs = New
ADODB.Recordset sItemNo = Trim$(myBarCode)
'Trim(txttempItemNo.Text)
TempRs.Open "Select * From sCartNo = "00000001" 'myCartID
tblTransactions Where CartNo='" & '"01"
txtCartNo.Text & "' AND ItemNo='" &
Call cmdSendReply
End Sub If IsNumeric(txtCash.Text) = True
And Val(txtCash.Text) >=
Private Sub cmdNew_Click() Val(txtTotalAmount.Text) Then

Set Rs = New ADODB.Recordset txtChange.Text =


Val(txtCash.Text) -
Rs.Open "Select * From tblTransactions Val(txtTotalAmount.Text)
Where CartNo='" & txtCartNo.Text &
"'", Adoconn, 1, 2 txtCash.Text = Format(txtCash,
"##.00")
If Rs.RecordCount > 0 Then txtChange.Text =
Format(txtChange, "##.00")
Do Until Rs.EOF
Set Rs = New ADODB.Recordset
Rs.Delete
Rs.Open "Select * From
Rs.MoveNext tblSalesLog", Adoconn, 1, 2

Loop Rs.AddNew

End If Rs("CashReceived") =
txtCash.Text
Set Rs = Nothing Rs("Change") = txtChange.Text
Rs("TotalAmt") =
TotalAmount = "0" txtTotalAmount.Text
lblItems.Caption = "0" Rs("TotalItems") =
txtItemNo.Text = "" tempTotalItems
txtDescription.Text = "" Rs("LogDate") = Format(Now,
txtItemCode.Text = "" "mm/dd/yyyy")
txtCategory.Text = "" Rs("LogTime") = Format(Now,
txtPrice.Text = "" "hh:mm:ss AM/PM")
txtQty.Text = ""
txtTotalAmount.Text = "0.00" Rs.Update
txtCash.Text = "0.00"
txtChange.Text = "0.00 " Else
lstItem.Clear
MsgBox "Please Check Your
Call cmdFind_Click Input!", vbExclamation, "Message"

End Sub End If

Private Sub cmdProcessCart_Click() Set TempRs = New


ADODB.Recordset
If txtTotalAmount.Text <> "" And
txtCash.Text <> "" Then
TempRs.Open "Select * From
tblTransactions Where CartNo='" & TotalAmount = "0"
myCartID & "'", Adoconn, 1, 2
txtItemNo.Text = ""
If TempRs.RecordCount > 0 Then txtDescription.Text = ""
txtItemCode.Text = ""
TempRs.Delete txtCategory.Text = ""
txtPrice.Text = ""
End If txtQty.Text = ""
txtTotalAmount.Text = "0.00"
Set TempRs = Nothing txtCash.Text = "0.00"
txtChange.Text = "0.00"
Else lstItem.Clear

MsgBox "Enter Your Cash Bill!", Call cmdFind_Click


vbExclamation, "Message"
txtCash.SetFocus End If

End If End Sub

End Sub Private Sub Form_Load()


Private Sub cmdVoid_Click()
'On Error Resume Next
If txtCartNo.Text <> "" And
txtItemNo.Text <> "" Then Call ConnectDatabase

Set Rs = New ADODB.Recordset


With mscSerialComm
If MsgBox("Void This Item?",
vbYesNo + vbQuestion, "Delete Item") .CommPort = strComNo
= vbYes Then .InputLen = 0
.RThreshold = 19 '22
Rs.Open "Select * From
tblTransactions Where CartNo='" & If .PortOpen = False Then
txtCartNo.Text & "' AND ItemNo='" &
txtItemNo.Text & "'", Adoconn, 1, 2 .PortOpen = True

If Rs.RecordCount > 0 Then End If

Rs.Delete End With

End If receivedPacket = ""

End If End Sub

Set Rs = Nothing Private Sub lstItem_Click()


StatusBar1.SimpleText = "Today is: " &
Dim tempitemno As String Format(Now, "mmmm/dd/yyyy") & "
Dim tempQty As String Time: " & Format(Now, "hh:mm:ss
AM/PM")
tempitemno = lstItem.Text
End Sub
tempitemno =
Trim(Replace(Mid(tempitemno, 1, Private Sub
InStrRev(tempitemno, "|")), "|", "")) Toolbar1_ButtonClick(ByVal Button As
MSComctlLib.Button)
tempQty = lstItem.Text
tempQty = If Button.Caption = "EXIT" Then
Trim(Replace$(Mid(tempQty,
InStr(tempQty, "Qty")), "Qty:", "")) End

txtItemNo.Text = tempitemno ElseIf Button.Caption = "PRODUCT"


txtQty.Text = tempQty Then

End Sub framePos.Visible = False


frmProduct.Show vbModal
Private Sub
mscSerialComm_OnComm() ElseIf Button.Caption = "POS" Then

Select Case framePos.Visible = True


mscSerialComm.CommEvent Call ClearText

Case comEvReceive ElseIf Button.Caption = "ADS" Then

'receivedPacket = receivedPacket framePos.Visible = False


& mscSerialComm.Input frmAdsForm.Show vbModal
receivedPacket =
mscSerialComm.Input ElseIf Button.Caption = "LOCATOR"
Then
'MsgBox receivedPacket
framePos.Visible = False
pTransact (receivedPacket) frmLocator.Show vbModal

receivedPacket = "" End If

End Select End Sub


Private Sub sGetTransaction()
End Sub
TRNo = CreateTRNo
Private Sub Timer1_Timer()
End Sub
Private Sub txtItemNo_Change() txtCash.Text = "0.00"
txtChange.Text = "0.00 "
Set Rs = New ADODB.Recordset lstItem.Clear

Rs.Open "Select * From tblProducts cmdAdd.Caption = "Add Item"


Where ItemNo='" & txtItemNo.Text & cmdModify.Caption = "Modify"
"'", Adoconn, 1, 2 cmdProcessCart.Caption = "Process"
cmdCancel.Caption = "Cancel"
If Rs.RecordCount > 0 Then cmdVoid.Caption = "Void Item"

txtDescription.Text = txtItemNo.Locked = True


UCase(Rs("Description")) txtQty.Locked = True
txtItemCode.Text =
UCase(Rs("Code")) End Sub
txtPrice.Text = UCase(Rs("Price"))
txtCategory.Text = Private Sub pTransact(ByVal myPacket
UCase(Rs("Category")) As String)

If Rs("PromoStats") = "Yes" Then 'parse the packet

lblPromo.Text = myDirective = Mid$(myPacket, 1, 1)


UCase(Rs("Promo")) myBarCode = Mid$(myPacket, 2, 13)
sPromoPrice = Rs("PromoPrice") myCartID = Mid$(myPacket, 15, 8)
chckPromo.Enabled = True
'MsgBox Len(myBarCode)
Else lblNoCart.Caption = myCartID

lblPromo.Text = "" sItemNo = Trim$(myBarCode)


sPromoPrice = "0" 'Trim(txttempItemNo.Text)
chckPromo.Enabled = False sCartNo = myCartID '"01"

End If 'txtRequest(0).Text = myBarCode


'txtRequest(1).Text = myCartID
End If
Select Case myDirective
End Sub
Case "N"
Private Sub ClearText()
lblPacket.Caption = "NEW
txtItemNo.Text = "" TRANSACTION"
txtDescription.Text = ""
txtItemCode.Text = "" Case "O"
txtCategory.Text = ""
txtPrice.Text = "" lblPacket.Caption = "OLD
txtQty.Text = "" TRANSACTION"
txtTotalAmount.Text = "0.00"
Case "I"
End Select

lblPacket.Caption = "ITEM Call cmdSendReply


PRICE INQUIRY: REGULAR"
End Sub
Case "P"
Private Sub cmdSendReply()
lblPacket.Caption = "ITEM
PRICE INQUIRY: PROMO" Select Case myDirective

Case "T" Case "N"

lblPacket.Caption = "PROMO 'N - NEW TRANSACTION,


TEXT INQUIRY" JUST SEND THE 0.00 TOTAL
AMOUNT DEFAULT PACKET
Case "A"
TotalAmount = 0
lblPacket.Caption = "ADD ITEM
TO CART" replyPacket = "INIT" &
String$(10 -
Case "B" Len(FormatNumber(TotalAmount, 2, , ,
vbFalse)), Chr(32)) &
lblPacket.Caption = "ADD FormatNumber(TotalAmount, 2, , ,
PROMO ITEM FROM CART" vbFalse)

Case "M" Set TempRs = New


ADODB.Recordset
lblPacket.Caption = "REMOVE
ITEM FROM CART" TempRs.Open "Select * From
tblTransactions Where CartNo='" &
Case "L" myCartID & "'", Adoconn, 1, 2

lblPacket.Caption = "REMOVE If TempRs.RecordCount > 0


PROMO ITEM FROM CART" Then

Case "Y" 'Product Locator Do Until TempRs.EOF

lblPacket.Caption = "PRODUCT TempRs.Delete


LOCATOR, PAGE " &
CInt(myBarCode) TempRs.MoveNext

Case "Z" 'Product Locator Loop

lblPacket.Caption = End If
"ADVERTISEMENT REQUEST"
Set TempRs = Nothing
'productPrice =
Case "O" CDbl(txtPacket(1).Text)

'0 - OLD TRANSACTION, If myDirective = "I" Then


'SEARCH DATABASE FOR
THE LATEST TRANSACTION OF Set Rs = New
THE CARTID AND GET ADODB.Recordset
'TOTAL AMOUNT TO SEND
Rs.Open "Select * From
'totalAmount = tblProducts Where ItemNo='" &
CDbl(txtPacket(2).Text) Trim$(myBarCode) & "'", Adoconn, 1, 2

'Compute Total Amount If Rs.RecordCount > 0 Then


Set Rs = New
ADODB.Recordset productName = Rs("Code")

Rs.Open "Select Sum(Amount) If Rs("PromoStats") =


as TotalAmt From tblTransactions "Yes" Then
Where CartNo='" & sCartNo & "'",
Adoconn, 1, 2 'productPrice =
CDbl(Rs("PromoPrice"))
If Rs.RecordCount > 0 Then productPrice =
CDbl(Rs("Price"))
TotalAmount =
Rs("TotalAmt") replyPacket = String$(10
Set Rs = Nothing - Len(productName), Chr(32)) &
CStr(productName) & _
End If String$(10 -
Len(FormatNumber(productPrice, 2, , ,
replyPacket = "INIT" & vbFalse)), Chr(32)) &
String$(10 - FormatNumber(productPrice, 2, , ,
Len(FormatNumber(TotalAmount, 2, , , vbFalse)
vbFalse)), Chr(32)) &
FormatNumber(TotalAmount, 2, , , replyPacket =
vbFalse) replyPacket & "P"

Case "I", "P" Else

'I - Item Price Inquiry, Regular productPrice =


Price CDbl(Rs("Price"))
'P - Item Price Inquiry, Promo
Price replyPacket = String$(10
- Len(productName), Chr(32)) &
'productName = CStr(productName) & _
txtPacket(0).Text
String$(10 - End If
Len(FormatNumber(productPrice, 2, , ,
vbFalse)), Chr(32)) & End If
FormatNumber(productPrice, 2, , ,
vbFalse) Set Rs = Nothing

replyPacket = End If
replyPacket & "X"
Case "T" ' Transmit Promo Details
End If
'replyPacket =
End If CStr(txtPacket(3).Text) & String$(80 -
Len(txtPacket(3).Text), Chr(32))
Set Rs = Nothing
Set Rs = New
ElseIf myDirective = "P" Then ADODB.Recordset

Set Rs = New Rs.Open "Select * From


ADODB.Recordset tblProducts Where ItemNo='" &
Trim$(myBarCode) & "'", Adoconn, 1, 2
Rs.Open "Select * From
tblProducts Where ItemNo='" & If Rs.RecordCount > 0 Then
Trim$(myBarCode) & "'", Adoconn, 1, 2

If Rs.RecordCount > 0 Then replyPacket =


CStr(Rs("Promo")) & String$(80 -
productName = Rs("Code") Len(Rs("Promo")), Chr(32))

If Rs("PromoStats") = End If
"Yes" Then
Set Rs = Nothing
productPrice =
CDbl(Rs("PromoPrice")) Case "A", "B" ' A-Add Regular
Price , B-Add Promo Price
replyPacket = String$(10
- Len(productName), Chr(32)) & 'TotalAmount =
CStr(productName) & _ CDbl(txtPacket(2).Text)
String$(10 -
Len(FormatNumber(productPrice, 2, , , 'productName =
vbFalse)), Chr(32)) & txtPacket(0).Text
FormatNumber(productPrice, 2, , ,
vbFalse) 'productPrice =
CDbl(txtPacket(1).Text)
replyPacket =
replyPacket & "P" If myDirective = "A" Then ' Add
Regular Price
'TempRs("ItemNo") =
Set Rs = New Val(sItemNo)
ADODB.Recordset 'TempRs("Qty") = "1"
'TempRs("Amount") =
Rs.Open "Select * From Val(Price) * 1
tblProducts Where ItemNo='" & 'TempRs("Price") =
sItemNo & "'", Adoconn, 1, 2 Val(Price)
'TempRs("Status") =
If Rs.RecordCount > 0 Then "New"
'TotalAmount =
Price = Rs("Price") TempRs("Amount")

productName = Rs("Code") 'TempRs.Update


productPrice =
CDbl(Rs("Price")) Else

Set Rs = Nothing 'Call GetProdDetails

End If TempRs.AddNew

Set TempRs = New TempRs("CartNo") =


ADODB.Recordset sCartNo
TempRs("ItemNo") =
TempRs.Open "Select * From Val(sItemNo)
tblTransactions Where CartNo='" & TempRs("Qty") = "1"
sCartNo & "' AND ItemNo='" & TempRs("Amount") =
Trim$(myBarCode) & "' AND Val(Price) * 1
Status='New'", Adoconn, 1, 2 TempRs("Price") =
'TempRs.Open "Select * Val(Price)
From tblTransactions", Adoconn, 1, 2 TempRs("Status") =
"New"
If TempRs.RecordCount > 0
Then TotalAmount =
TempRs("Amount")
'TempRs.AddNew
TempRs("Qty") = TempRs.Update
Val(TempRs("Qty") + 1)
TempRs("Amount") = End If
Val(TempRs("Amount")) + (Val(Price))
TotalAmount = ElseIf myDirective = "B" Then
TempRs("Amount") 'Add Promo Price
TempRs.Update
Set Rs = New
'TempRs.AddNew ADODB.Recordset
'TempRs("CartNo") =
sCartNo
Rs.Open "Select * From 'TempRs("Price") =
tblProducts Where ItemNo='" & Val(Price)
Trim$(myBarCode) & "'", Adoconn, 1, 2 'TempRs("Status") =
"New"
If Rs.RecordCount > 0 Then
'TotalAmount =
Price = Rs("PromoPrice") TempRs("Amount")

productName = Rs("Code") 'TempRs.Update


productPrice =
CDbl(Rs("PromoPrice")) Else

Set Rs = Nothing 'Call GetProdDetails

End If TempRs.AddNew
Set TempRs = New
ADODB.Recordset TempRs("CartNo") =
sCartNo
TempRs.Open "Select * From TempRs("ItemNo") =
tblTransactions Where CartNo='" & Val(Trim$(myBarCode))
sCartNo & "' AND ItemNo='" & TempRs("Qty") = "1"
Trim$(myBarCode) & "' AND TempRs("Amount") =
Status='New'", Adoconn, 1, 2 Val(Price) * 1
'TempRs.Open "Select * TempRs("Price") =
From tblTransactions", Adoconn, 1, 2 Val(Price)
TempRs("Status") =
If TempRs.RecordCount > 0 "New"
Then TotalAmount =
TempRs("Amount")
TempRs("Qty") =
Val(TempRs("Qty") + 1) TempRs.Update
TempRs("Amount") =
Val(TempRs("Amount")) + Val(Price) End If
TotalAmount =
TempRs("Amount") End If
TempRs.Update
'Compute Total Amount
'TempRs.AddNew Set Rs = New
ADODB.Recordset
'TempRs("CartNo") =
sCartNo Rs.Open "Select Sum(Amount)
'TempRs("ItemNo") = as TotalAmt From tblTransactions
Val(Trim$(myBarCode)) Where CartNo='" & sCartNo & "'",
'TempRs("Qty") = "1" Adoconn, 1, 2
'TempRs("Amount") =
Val(Price) * 1 If Rs.RecordCount > 0 Then
TotalAmount = productName = Rs("Code")
Rs("TotalAmt")
Set Rs = Nothing 'productPrice =
CDbl(Rs("Price"))
End If
Set Rs = Nothing
replyPacket = String$(10 -
Len(FormatNumber(TotalAmount, 2, , , End If
vbFalse)), Chr(32)) & Set TempRs = New
FormatNumber(TotalAmount, 2, , , ADODB.Recordset
vbFalse) & _
String$(10 - TempRs.Open "Select * From
Len(productName), Chr(32)) & tblTransactions Where CartNo='" &
CStr(productName) & _ sCartNo & "' AND ItemNo='" &
String$(10 - sItemNo & "' AND Status='New' AND
Len(FormatNumber(productPrice, 2, , , Amount > 0", Adoconn, 1, 2
vbFalse)), Chr(32)) &
FormatNumber(productPrice, 2, , , If TempRs.RecordCount > 0
vbFalse) Then

Case "M", "L" ' M-Minus Regular productPrice =


Price, L-Minus Promo Price CDbl(TempRs("Price"))

'TotalAmount = TempRs("Amount") =
CDbl(txtPacket(2).Text) Val(TempRs("Amount")) - Val(Price)
TempRs("Qty") =
'productName = Val(TempRs("Qty")) - 1
txtPacket(0).Text
TotalAmount =
'productPrice = TempRs("Amount")
CDbl(txtPacket(1).Text)
TempRs.Update
If myDirective = "M" Then '
Remove Regular price End If

Set Rs = New Set TempRs = Nothing


ADODB.Recordset
If Val(TotalAmount) = "0" Or
Rs.Open "Select * From Val(TotalAmount) < "1" Or
tblProducts Where ItemNo='" & Val(TotalAmount) < "0" Then
sItemNo & "'", Adoconn, 1, 2
Set TempRs = New
If Rs.RecordCount > 0 Then ADODB.Recordset

Price = Rs("Price")
TempRs.Open "Select * From sItemNo & "' AND Status='New' AND
tblTransactions Where CartNo='" & Amount > 0", Adoconn, 1, 2
sCartNo & "' AND ItemNo='" &
sItemNo & "' AND Status='New'", If TempRs.RecordCount > 0
Adoconn, 1, 2 Then

If TempRs.RecordCount > 0 productPrice =


Then CDbl(TempRs("Price"))

TempRs.Delete TempRs("Amount") =
Val(TempRs("Amount")) - Val(Price)
End If TempRs("Qty") =
Val(TempRs("Qty")) - 1
Set TempRs = Nothing
TotalAmount =
End If TempRs("Amount")

ElseIf myDirective = "L" Then TempRs.Update


'Remove Promo Price
End If
Set Rs = New
ADODB.Recordset Set TempRs = Nothing

Rs.Open "Select * From If Val(TotalAmount) = "0" Or


tblProducts Where ItemNo='" & Val(TotalAmount) < "1" Or
sItemNo & "'", Adoconn, 1, 2 Val(TotalAmount) < "0" Then

If Rs.RecordCount > 0 Then Set TempRs = New


Price = Rs("PromoPrice") ADODB.Recordset

productName = Rs("Code") TempRs.Open "Select * From


tblTransactions Where CartNo='" &
'productPrice = sCartNo & "' AND ItemNo='" &
CDbl(Rs("Price")) sItemNo & "' AND Status='New'",
Adoconn, 1, 2
Set Rs = Nothing
If TempRs.RecordCount > 0
End If Then

Set TempRs = New TempRs.Delete


ADODB.Recordset
End If
TempRs.Open "Select * From
tblTransactions Where CartNo='" & Set TempRs = Nothing
sCartNo & "' AND ItemNo='" &
End If
End If 'replyPacket =
CStr(txtPacket(4).Text) & String$(80 -
'Compute Total Amount Len(txtPacket(4).Text), Chr(32))
Set Rs = New
ADODB.Recordset Set Rs = New
ADODB.Recordset
Rs.Open "Select Sum(Amount)
as TotalAmt From tblTransactions Rs.Open "Select * from tblAds
Where CartNo='" & sCartNo & "'", Where ID=" & CInt(myBarCode) & "",
Adoconn, 1, 2 Adoconn, 1, 2

If Rs.RecordCount > 0 Then If Rs.RecordCount > 0 Then

If Rs("TotalAmt") <> "" replyPacket =


Then CStr(Rs("CartAds")) & String$(80 -
TotalAmount = Len(Rs("CartAds")), Chr(32))
Rs("TotalAmt")
End If End If
Set Rs = Nothing
If myBarCode > 5 Then
End If
myBarCode = 1
replyPacket = String$(10 - End If
Len(FormatNumber(TotalAmount, 2, , ,
vbFalse)), Chr(32)) & Set Rs = Nothing
FormatNumber(TotalAmount, 2, , ,
vbFalse) & _
String$(10 - End Select
Len(productName), Chr(32)) &
CStr(productName) & _ mscSerialComm.Output = replyPacket
String$(10 -
Len(FormatNumber(productPrice, 2, , , End Sub
vbFalse)), Chr(32)) & Private Function
FormatNumber(productPrice, 2, , , generateProdLocPackets(ByVal
vbFalse) packetPage As Integer) As String

Case "Y" ' Product Locator Request Dim ctr As Integer


Dim myTotalRecord As Integer
'replyPacket = Dim ictr As Integer
generateProdLocPackets(CInt(myBarCo
de)) 'Dim prodLocPackets(24) As String
replyPacket = 'Dim prodLocAisleNum(24) As String
generateProdLocPackets(myBarCode) Dim prodLocPackets() As String
Dim prodLocAisleNum() As String
Case "Z" ' Advertisement
Dim aisleCount As Integer '
Dim tobeTransmitPacket As String ' prodLocAisleNum(0) = Chr(1)
' prodLocAisleNum(1) = Chr(2)
Dim totalPages As Integer ' prodLocAisleNum(2) = Chr(3)
Dim firstItem As Integer ' prodLocAisleNum(3) = Chr(4)
Dim lastItem As Integer ' prodLocAisleNum(4) = Chr(5)
'this should be from the database ' prodLocAisleNum(5) = Chr(6)
' prodLocAisleNum(6) = Chr(7)
' prodLocPackets(0) = "Canned ' prodLocAisleNum(7) = Chr(8)
Goods" ' prodLocAisleNum(8) = Chr(9)
' prodLocPackets(1) = "Condiments" ' prodLocAisleNum(9) = Chr(10)
' prodLocPackets(2) = "Pasta" ' prodLocAisleNum(10) = Chr(11)
' prodLocPackets(3) = "Bread" ' prodLocAisleNum(11) = Chr(12)
' prodLocPackets(4) = "Frozen Foods" ' prodLocAisleNum(12) = Chr(13)
' prodLocPackets(5) = "Imported ' prodLocAisleNum(13) = Chr(14)
Goods" ' prodLocAisleNum(14) = Chr(15)
' prodLocPackets(6) = "Biscuits" ' prodLocAisleNum(15) = Chr(16)
' prodLocPackets(7) = ' prodLocAisleNum(16) = Chr(17)
"Juices/Beverage" ' prodLocAisleNum(17) = Chr(18)
' prodLocPackets(8) = ' prodLocAisleNum(18) = Chr(19)
"Soap/Shampoo" ' prodLocAisleNum(19) = Chr(20)
' prodLocPackets(9) = ' prodLocAisleNum(20) = Chr(21)
"GlassWR/TableWR" ' prodLocAisleNum(21) = Chr(22)
' prodLocPackets(10) = ' prodLocAisleNum(22) = Chr(23)
"TBrush/TPaste" ' prodLocAisleNum(23) = Chr(24)
' prodLocPackets(11) = "Cologne/ ' prodLocAisleNum(24) = Chr(25)
DEO"
' prodLocPackets(12) = "Face myTotalRecord = 0 ' Initialize Total
PWDR/SCRB" Record Counter
' prodLocPackets(13) = ictr = 0 'Initialize array element
"Cereals/BKFAST" counter
' prodLocPackets(14) = "Fresh
Meat/Fish" Set Rs = New ADODB.Recordset
' prodLocPackets(15) = "Rice"
' prodLocPackets(16) = Rs.Open "Select * from tblLocator",
"Fruits/Veggies" Adoconn, 1, 2
' prodLocPackets(17) = "Coffee/Tea"
' prodLocPackets(18) = "Detergents" If Rs.RecordCount > 0 Then
' prodLocPackets(19) = "Poultry"
' prodLocPackets(20) = "Chips" myTotalRecord = Rs.RecordCount
' prodLocPackets(21) = "Oil" 'Get Total Record
' prodLocPackets(22) =
"Candies/Mallows" End If
' prodLocPackets(23) = "Native
Snacks" Set Rs = Nothing
' prodLocPackets(24) = "Chocolates"
'Redimention array for record aisleCount = myTotalRecord '25 'rs
ReDim count
prodLocAisleNum(Val(myTotalRecord)
) As String 'get the tobeTransmitPacket. depende
ReDim sa packetPage(page number requested)
prodLocPackets(Val(myTotalRecord))
As String firstItem = (packetPage * 3) - 2
lastItem = firstItem + 2
Set Rs = New ADODB.Recordset
'for example,
Rs.Open "Select * from tblLocator 'PAGE REQUEST-----packetPage
Order By Category Asc", Adoconn, 1, 2 Value-----firstItem------------lastItem

' If Rs.RecordCount > 0 Then '1 1 (1 * 3)- 2 =


' 1 1+2=3
' Rs.MoveFirst '2 2 (2 * 3)- 2 =
' 4 4+2=6
' Do Until Rs.EOF '3 3 (3 * 3)- 2 =
' 7 7+2=9
' ': : :
' prodLocPackets(ictr) = ': : :
prodLocAisleNum(ictr) & ': : :
Rs("AisleNo")
' prodLocPackets(ictr) = Rs.MoveFirst
prodLocPackets(ictr) & Rs("CatCode")
& String$(15 - Len(Rs("CatCode")), For ctr = 1 To (firstItem - 1)
Chr(32))
' Rs.MoveNext
'
' ictr = ictr + 1 Next ctr
'
' For ctr = firstItem To lastItem
' Rs.MoveNext
' 'check firstItem's Value. MUST
' Loop NOT EXCEED aisleCount(number of
' records)
'
' End If If ctr <= aisleCount Then
'
' 'prodLocPackets(ictr) =
' Set Rs = Nothing prodLocAisleNum(ictr) &
Rs("AisleNo")
'replace this with total records from 'prodLocPackets(ictr) =
the aisle table prodLocPackets(ictr) & Rs("CatCode")
'i.e. rs.recordcount & String$(15 - Len(Rs("CatCode")),
Chr(32))
tobeTransmitPacket = PRODUCT
tobeTransmitPacket &
Chr(CInt(Rs("AisleNo"))) & Dim lstItem As ListItem
Rs("CatCode") & String$(15 - Private Sub cmdCancel_Click()
Len(Rs("CatCode")), Chr(32))
Call ClearText
Rs.MoveNext Call LockText
txtItemNo.Enabled = True
Else
End Sub
'end of list, padding necessary
Private Sub cmdDelete_Click()
tobeTransmitPacket =
tobeTransmitPacket & String$(48 - If txtItemNo.Text <> "" Then
Len(tobeTransmitPacket), Chr(254))
Set Rs = New ADODB.Recordset
End If Rs.Open "Select * From tblProducts
Where ItemNo='" & txtItemNo.Text &
Next "'", Adoconn, 1, 2

Rs.Close If Rs.RecordCount > 0 Then

'divide aisleCount by 3 to get If MsgBox("Delete This


totalPages, dahil 3 aisle locations per Item/Products?", vbYesNo +
page, vbQuestion, "WARNING!.Remove") =
'make sure walang remainder. kapag vbYes Then
meron, plus 1 agad
Rs.Delete
If aisleCount Mod 3 > 0 Then
End If
totalPages = (aisleCount / 3) + 1
Else
Else
MsgBox "Item Not found!",
totalPages = aisleCount / 3 vbCritical, "Unable To Delete!"

End If End If

'finalize packet to transmit Set Rs = Nothing


Call ClearText
generateProdLocPackets = txtItemNo.Enabled = True
tobeTransmitPacket & Chr(totalPages) Call PopulateDatalist

End Function End If

End Sub
Rs("Description") =
Private Sub cmdExit_Click() UCase(txtDescription.Text)
Rs("Code") = UCase(txtCode.Text)
Unload Me Rs("Price") = UCase(txtPrice.Text)
Rs("Category") =
End Sub UCase(cmboCategory.Text)

Private Sub ClearText() If txtPromo.Text <> "None" And


txtItemNo.Text = "" Val(txtPromoPrice.Text) > 0 Then
txtDescription.Text = ""
txtCode.Text = "" Rs("Promo") =
txtPrice.Text = "" UCase(txtPromo.Text)
txtPromo.Text = "" Rs("PromoStats") = "Yes"
txtPromoPrice.Text = "" Rs("PromoPrice") =
cmboCategory.Text = "" txtPromoPrice.Text

cmdSave.Enabled = False Else


cmdModify.Enabled = False
cmdDelete.Enabled = False Rs("Promo") = "None"
cmdNew.Enabled = True Rs("PromoStats") = "No"
Rs("PromoPrice") = "0"
End Sub
End If
Private Sub cmdModify_Click()
Rs.Update
If txtItemNo.Text <> "" Then
Else
cmdNew.Enabled = False
Call UnLockText MsgBox "Item No found!",
txtItemNo.Enabled = False vbExclamation, "Unable To Update!"
cmdDelete.Enabled = False
End If
txtDescription.SetFocus
Set Rs = Nothing
If MsgBox("Update/Modify Item?", Call ClearText
vbYesNo + vbQuestion, "Update txtItemNo.Enabled = True
Products") = vbYes Then Call PopulateDatalist

Set Rs = New ADODB.Recordset End If


Rs.Open "Select * From tblProducts
Where ItemNo='" & txtItemNo.Text & Else
"'", Adoconn, 1, 2
MsgBox "Unable To Save Empty
If Rs.RecordCount > 0 Then Data!", vbExclamation, "Null Value"

End If
If MsgBox("Add This New Item?",
End Sub vbYesNo + vbQuestion, "Save New
Item") = vbYes Then
Private Sub cmdNew_Click()
Set Rs = New ADODB.Recordset
Call ClearText Rs.Open "Select * From tblProducts",
Call UnLockText Adoconn, 1, 2

cmdSave.Enabled = True Rs.AddNew


cmdNew.Enabled = False
Rs("ItemNo") =
txtItemNo.SetFocus UCase(txtItemNo.Text)
Rs("Description") =
End Sub UCase(txtDescription.Text)
Rs("Code") = UCase(txtCode.Text)
Private Sub LockText() Rs("Price") = UCase(txtPrice.Text)
Rs("Category") =
'txtItemNo.Enabled = False UCase(cmboCategory.Text)
txtDescription.Enabled = False
txtCode.Enabled = False If txtPromo.Text <> "None" And
txtPrice.Enabled = False Val(txtPromoPrice.Text) > 0 Then
txtPromo.Enabled = False
cmboCategory.Enabled = False Rs("Promo") =
txtPromoPrice.Enabled = False UCase(txtPromo.Text)
Rs("PromoStats") = "Yes"
End Sub Rs("PromoPrice") =
Private Sub UnLockText() txtPromoPrice.Text

txtItemNo.Enabled = True Else


txtDescription.Enabled = True
txtCode.Enabled = True Rs("Promo") = "None"
txtPrice.Enabled = True Rs("PromoStats") = "No"
txtPromo.Enabled = True Rs("PromoPrice") = "0"
cmboCategory.Enabled = True
txtPromoPrice.Enabled = True End If

End Sub Rs.Update

Private Sub cmdSave_Click() End If

If txtItemNo.Text <> "" And Set Rs = Nothing


txtDescription.Text <> "" _
And txtCode.Text <> "" And Call ClearText
txtPrice.Text <> "" _ txtItemNo.Enabled = True
And cmboCategory.Text <> "" Then Call PopulateDatalist
Private Sub PopulateDatalist()
Else
lstDatalist.ListItems.Clear
MsgBox "Unable To Save Empty
Data!", vbExclamation, "Null Value" Set TempRs = New ADODB.Recordset
TempRs.Open "Select * From
End If tblProducts Order By ItemNo Asc",
Adoconn, 1, 2
End Sub
If TempRs.RecordCount > 0 Then
Private Sub Form_Load()
TempRs.MoveFirst
Call ConnectDatabase
Do Until TempRs.EOF
Call PopulateDatalist
Set lstItem =
Call LockText lstDatalist.ListItems.Add(, ,
TempRs("ItemNo"))
Call sLoadCategory
lstItem.SubItems(1) =
End Sub TempRs("Description")
Private Sub sLoadCategory() lstItem.SubItems(2) =
TempRs("Code")
cmboCategory.Clear lstItem.SubItems(3) =
TempRs("Category")
Set Rs = New ADODB.Recordset lstItem.SubItems(4) =
TempRs("Promo")
Rs.Open "Select Distinct(Category) lstItem.SubItems(5) =
From tblProducts Order By Category", Format(TempRs("Price"), "##.00")
Adoconn, 1, 2
TempRs.MoveNext
If Rs.RecordCount > 0 Then
Loop
Do Until Rs.EOF
lblTotalRecord.Caption = " " &
cmboCategory.AddItem Format(TempRs.RecordCount, "##.00")
Rs("Category")
Set lstItem = Nothing
Rs.MoveNext
Loop End If

End If End Sub

Set Rs = Nothing Private Sub lstDatalist_ItemClick(ByVal


Item As MSComctlLib.ListItem)
End Sub
txtItemNo.Text = Item.Text lstItem.SubItems(5) =
Format(TempRs("Price"), "##.00")
End Sub
TempRs.MoveNext
Private Sub txtCode_Change()
Loop
If Len(txtCode.Text) > 10 Then
lblTotalRecord.Caption = " " &
txtCode.Text = Mid$(txtCode.Text, 1, Format(TempRs.RecordCount, "##.00")
Len(txtCode.Text) - 1)
Set lstItem = Nothing
End If
End If
End Sub
Else
Private Sub txtItemName_Change()
lstDatalist.ListItems.Clear
If txtItemName.Text <> "" Then
Set TempRs = New
lstDatalist.ListItems.Clear ADODB.Recordset
TempRs.Open "Select * From
Set TempRs = New ADODB.Recordset tblProducts Order By ItemNo Asc",
TempRs.Open "Select * From Adoconn, 1, 2
tblProducts Where Description Like ('%"
& txtItemName.Text & "%') Order By If TempRs.RecordCount > 0 Then
Description Asc", Adoconn, 1, 2
TempRs.MoveFirst
If TempRs.RecordCount > 0 Then
Do Until TempRs.EOF
TempRs.MoveFirst
Set lstItem =
Do Until TempRs.EOF lstDatalist.ListItems.Add(, ,
TempRs("ItemNo"))
Set lstItem =
lstDatalist.ListItems.Add(, , lstItem.SubItems(1) =
TempRs("ItemNo")) TempRs("Description")
lstItem.SubItems(2) =
lstItem.SubItems(1) = TempRs("Code")
TempRs("Description") lstItem.SubItems(3) =
lstItem.SubItems(2) = TempRs("Category")
TempRs("Code") lstItem.SubItems(4) =
lstItem.SubItems(3) = TempRs("Promo")
TempRs("Category") lstItem.SubItems(5) =
lstItem.SubItems(4) = Format(TempRs("Price"), "##.00")
TempRs("Promo")
TempRs.MoveNext
cmdModify.Enabled = True
Loop cmdDelete.Enabled = True

lblTotalRecord.Caption = " " & Else


Format(TempRs.RecordCount, "##.00")
Set lstItem = Nothing txtDescription.Text = ""
txtCode.Text = ""
End If txtPrice.Text = ""
txtPromo.Text = ""
End If txtPromoPrice.Text = ""
End Sub cmboCategory.Text = ""
cmdModify.Enabled = False
Private Sub txtItemNo_Change()
End If
If txtItemNo <> "" Then End If

Set Rs = New ADODB.Recordset Set Rs = Nothing

Rs.Open "Select * From tblProducts End Sub


Where ItemNo Like('" & txtItemNo &
"%')", Adoconn, 1, 2 Private Sub txtPrice_Change()

If Rs.RecordCount > 0 Then If IsNumeric(txtPrice.Text) = True Then

txtDescription.Text = Else
UCase(Rs("Description"))
txtCode.Text = UCase(Rs("Code")) On Error Resume Next
txtPrice.Text = UCase(Rs("Price")) txtPrice.Text = Mid(txtPrice.Text, 1,
cmboCategory.Text = Len(txtPrice.Text) - 1)
UCase(Rs("Category")) txtPrice.SetFocus

If Rs("PromoStats") = "Yes" Then End If

txtPromo.Text = End Sub


UCase(Rs("Promo"))
txtPromoPrice.Text = Private Sub txtPrice_KeyPress(KeyAscii
UCase(Rs("PromoPrice")) As Integer)
If KeyAscii = 13 Then
Else
txtPrice.Text = Format(txtPrice.Text,
txtPromo.Text = "None" "##.00")
txtPromoPrice.Text =
UCase(Rs("PromoPrice")) End If
End Sub
End If
Private Sub txtPromoPrice_Change()
If xID > mytotalrec Then
If IsNumeric(txtPromoPrice.Text) =
True Then xID = 1

Else End If

On Error Resume Next Call NagivateRecord(xID)


txtPromoPrice.Text =
Mid(txtPromoPrice.Text, 1, End Sub
Len(txtPromoPrice.Text) - 1)
txtPromoPrice.SetFocus Private Sub cmdPrevious_Click()

End If xID = xID - 1

End Sub If xID < 1 Then

xID = 1
LOCATOR
End If
Dim xID As Integer
Dim mytotalrec As Integer Call NagivateRecord(xID)

Private Sub cmdCancel_Click() End Sub


Call PopulateDatalist
End Sub Private Sub cmdSave_Click()

Private Sub cmdExit_Click() If txtCatName.Text <> "" And


Unload Me txtCatCode.Text <> "" And
txtAisleNo.Text <> "" Then
End Sub
Set Rs = New ADODB.Recordset
Private Sub cmdNew_Click()
Rs.Open "Select * from tblLocator
Call PopulateDatalist Where ID=" & txtID.Text & "",
Adoconn, 1, 2
txtID.Text = ""
txtCatName.Text = "" If Rs.RecordCount > 0 Then
txtCatCode.Text = ""
txtAisleNo.Text = "" If MsgBox("Category Already
Exist! Update Record?", vbYesNo +
End Sub vbQuestion, "UPDATE") = vbYes Then

Private Sub cmdNext_Click() Rs("CatCode") = txtCatCode.Text


Rs("Category") =
xID = xID + 1 txtCatName.Text
Rs("AisleNo") = txtAisleNo.Text
mytotalrec = TempRs.RecordCount
Rs.Update
End If
End If

Else End Sub


Private Sub PopulateDatalist()
If MsgBox("Add This New
Category?", vbYesNo + vbQuestion, On Error Resume Next
"SAVE") = vbYes Then lstDatalist.ListItems.Clear

Rs.AddNew Set TempRs = New ADODB.Recordset


TempRs.Open "Select * From
Rs("CatCode") = txtCatCode.Text tblLocator Order By Category Asc",
Rs("Category") = Adoconn, 1, 2
txtCatName.Text
Rs("AisleNo") = txtAisleNo.Text If TempRs.RecordCount > 0 Then

Rs.Update TempRs.MoveFirst

End If Do Until TempRs.EOF

End If Set lstItem =


lstDatalist.ListItems.Add(, ,
Else TempRs("ID"))

MsgBox "Fill Up Fields!", lstItem.SubItems(1) =


vbExclamation, "NULL" TempRs("AisleNo")
lstItem.SubItems(2) =
End If TempRs("Category")
lstItem.SubItems(3) =
End Sub TempRs("CatCode")

Private Sub Form_Load() TempRs.MoveNext

x=0 Loop
Call ConnectDatabase
lblTotalRecord.Caption = "Total
Call PopulateDatalist Records:" &
Format(TempRs.RecordCount)
Set TempRs = New ADODB.Recordset
TempRs.Open "Select * From Set lstItem = Nothing
tblLocator", Adoconn, 1, 2
End If
If TempRs.RecordCount > 0 Then
End Sub
txtCatName.Text & "%') Order By
Private Sub NagivateRecord(ByVal Category Asc", Adoconn, 1, 2
myID As Integer) '
'If TempRs.RecordCount > 0 Then
On Error Resume Next '
Set Rs = New ADODB.Recordset ' txtID.Text = TempRs("ID")
' txtCatCode.Text =
Rs.Open "Select * From tblLocator TempRs("CatCode")
Where ID=" & myID & "", Adoconn, 1, ' txtAisleNo.Text =
2 TempRs("AisleNo")
'
If Rs.RecordCount > 0 Then ' TempRs.MoveFirst
'
txtID.Text = Rs("ID") ' Do Until TempRs.EOF
txtCatName.Text = Rs("Category") '
txtCatCode.Text = Rs("CatCode") ' Set lstItem =
txtAisleNo.Text = Rs("AisleNo") lstDatalist.ListItems.Add(, ,
TempRs("ID"))
Else '
' lstItem.SubItems(1) =
txtCatName.Text = "" TempRs("AisleNo")
txtCatCode.Text = "" ' lstItem.SubItems(2) =
txtAisleNo.Text = "" TempRs("Category")
' lstItem.SubItems(3) =
End If TempRs("CatCode")
'
Set Rs = Nothing ' TempRs.MoveNext
'
End Sub '
' Loop
Private Sub lstDatalist_ItemClick(ByVal '
Item As MSComctlLib.ListItem) ' lblTotalRecord.Caption = "Total
Records:" &
txtID.Text = Item.Text Format(TempRs.RecordCount)
'
End Sub '
' Set lstItem = Nothing
Private Sub txtCatName_Change() '
'End If
'On Error Resume Next '
'lstDatalist.ListItems.Clear '
' End Sub
'Set TempRs = New ADODB.Recordset
'TempRs.Open "Select * From Private Sub txtID_Change()
tblLocator Where Category Like ('" &
If txtID.Text <> "" And
IsNumeric(txtID.Text) = True Then End Sub
Public Sub Wait(dwDuration As Long)
NagivateRecord (txtID.Text) 'Delay Execution between routine or
command line
Else Dim dblStart As Double, dblEnd As
Double, dblNow As Double
txtCatName.Text = ""
txtCatCode.Text = "" dblStart = Timer
txtAisleNo.Text = "" dblEnd = Timer + (dwDuration /
1000)
End If Do
dblNow = Timer
End Sub DoEvents
Loop Until dblNow < dblStart Or
dblNow > dblEnd
DATABASE CONNECTION End Sub

Global Adoconn As Public Function CreateTRNo() As String


ADODB.Connection Dim a, b, c, d, e As Integer
Global Rs As ADODB.Recordset
Global TempRs As ADODB.Recordset a = CInt(Rnd * 10)
Global strComNo As Integer b = CInt(Rnd * 10)
Global TRNo, sItemNo, sCartNo As c = CInt(Rnd * 10)
String d = CInt(Rnd * 10)
Global Qty As String e = CInt(Rnd * 10)
Global Amount As String
Global Status As String CreateTRNo = a & b & c & d & e
Global Price As String
Global sFlagPromo As Boolean End Function
Global sPromoPrice As String
'Global TotalAmount As String

Public Sub ConnectDatabase()

Set Adoconn = New


ADODB.Connection

Adoconn.Open
"Provider=Microsoft.Jet.OLEDB.4.0;Da
ta Source=" & App.Path &
"\Database\SmartCart.mdb;Persist
Security Info=False"

'Com Port No.


strComNo = 32
Microcontroller Program

Device 16F877A
Declare Xtal 20
Declare Watchdog = OFF
Declare FSR_CONTEXT_SAVE = On
Declare All_Digital True
Remarks On

Declare LCD_DTPin PORTA.0


Declare LCD_ENPin PORTB.3
Declare LCD_RSPin PORTA.4
Declare LCD_Interface 4
Declare LCD_Lines 4

Declare Serial_Data 8

Symbol myBuzz = PORTD.7


Symbol kpRow1 = PORTB.7
Symbol kpRow2 = PORTB.6
Symbol kpRow3 = PORTB.5
Symbol kpRow4 = PORTB.4
Symbol kpCol1 = PORTB.2
Symbol kpCol2 = PORTB.1
Symbol kpCol3 = PORTB.0

Symbol BarcodeToggle = PORTC.0


Symbol BarcodeData = PORTC.1

Dim cartID As Word


Dim priceSTR[11] As Byte,totalSTR[11] As Byte,pNameSTR[11] As Byte
Dim prodLoc1[17] As Byte,prodLoc2[17] As Byte,prodLoc3[17] As Byte,aisleCtr As
Byte,aisleLim As Byte
Dim myAction As Byte
Dim promoID As Byte
Dim dpType As Byte, iTypes As Byte
Dim keytemp As Byte
Dim gCtr As Byte
Dim gc1 As Byte, gc2 As Byte

Dim kpCtr As Byte


Dim BarCodeRaw[33] As Byte, bcrIdx As Byte
Dim BarCodeProc[14] As Byte, bcpIdx As Byte
Dim compareCtr As Byte, cConvert As Byte
Dim temp_binary[10] As Byte, key_match As Byte
Dim dumbTimer As Word, dtOn As Byte
Dim myValTemp As Dword
Dim myBudgetF As Float, myTotalF As Float
Dim inputTmp[5] As Byte
Dim inputTmp2[11] As Byte
Dim bIdx As Byte, bIdx2 As Byte

TRISA = $C0
TRISB = $F8
TRISC = $03
TRISD = $02
TRISE = $07

DelayMS 500

myBuzz = 1
cartID = 1

For gCtr = 0 To 9

priceSTR[gCtr] = 32
totalSTR[gCtr] = 32
pNameSTR[gCtr] = 32

Next gCtr

priceSTR[10] = 0
totalSTR[10] = 0
pNameSTR[10] = 0

StrN priceSTR = "0.00"

Cls
Print At 1,1, "BARCODE SYSTEM "
Print At 2,1, "PRESS <*> TO START."

While 1 = 1

GoSub myNumKeypad

If keytemp = "*" Then

Break

EndIf
Wend

GoSub initCart

GoSub subs_EncodeBudget

While 1 = 1

startIdle:
GoSub showIdle

While 1 = 1

GoSub myNumKeypad

Select Case keytemp

Case "1"
Cls
Print At 1,1,"YOU MAY NOW SCAN"
Print At 2,1,"THE ITEM.."

'SerIn PORTD.7,84, [Wait("B"),Str barcodeproc\13]

GoSub subs_ReadBCode

GoTo exitIdle

Case "2"

aisleCtr = 1
While 1 = 1
startPI:

iTypes = "Y"
GoSub itemInquiry

Cls

If prodLoc1[1] <> 254 Then

Print At 1,4,Str prodLoc1\15


Print At 1,1,Dec3 prodLoc1[0],32
EndIf

If prodLoc2[1] <> 254 Then

Print At 2,4,Str prodLoc2\15


Print At 2,1,Dec3 prodLoc2[0],32

EndIf

If prodLoc3[1] <> 254 Then

Print At 3,4,Str prodLoc3\15


Print At 3,1,Dec3 prodLoc3[0],32

EndIf
Print At 4,1, " *-DN | 0-BK | #-UP "
While 1 = 1

GoSub myNumKeypad

Select Case keytemp

Case "*"

If aisleCtr < aisleLim Then

Inc aisleCtr

Else

aisleCtr = 1

EndIf
GoTo startPI
Case "0"

GoTo startIdle

Case "#"

If aisleCtr > 1 Then

Dec aisleCtr

Else
aisleCtr = aisleLim

EndIf
GoTo startPI
EndSelect

Wend

Wend

Wend

EndSelect

Wend

exitIdle:

iTypes = "I"
GoSub itemInquiry

mainT:

dpType = 1

GoSub getAction

If myAction = "*" Then

'ADD Product
SerOut PORTD.0, 84,["A"]
SerOut PORTD.0, 84,[Str BarCodeProc\13,Dec8 cartID]
SerIn PORTD.1, 84,[Str totalSTR\10, Str pNameSTR\10, Str priceSTR\10]

ElseIf myAction = "#" Then

'MINUS Product

SerOut PORTD.0, 84,["M"]


SerOut PORTD.0, 84,[Str BarCodeProc\13,Dec8 cartID]
SerIn PORTD.1, 84,[Str totalSTR\10, Str pNameSTR\10, Str priceSTR\10]

ElseIf myAction = "0" Then

'cancel action
For gCtr = 0 To 9

priceSTR[gCtr] = 32
pNameSTR[gCtr] = 32

Next gCtr

priceSTR[10] = 0
pNameSTR[10] = 0

EndIf

Wend

initCart:

Cls
Print At 1,1, "1. START NEW"
Print At 2,1, "2. RETAIN PREVIOUS"

While 1 = 1

GoSub myNumKeypad

If keytemp = "1" Or keytemp = "2" Then

Break

EndIf

Wend

Cls
Print At 1,1,"SENDING REQUEST"
Print At 2,1,"PLEASE WAIT.."

If keytemp = "1" Then

SerOut PORTD.0, 84,["N"]

Else

SerOut PORTD.0, 84,["O"]

EndIf
SerOut PORTD.0, 84,["XXXXXXXXXXXXX",Dec8 cartID]

SerIn PORTD.1, 84,[Wait("INIT"),Str totalSTR\10]

Print At 4,1,"DEVICE IS READY"

DelayMS 3000

Return

showIdle:

GoSub subs_CheckBGT

Cls
Print At 1,1,"TOTAL: ",Str totalSTR\10
Print At 2,1,"<1> SCAN ITEM"
Print At 3,1,"<2> PRODUCT LOCATOR"

If myBudgetF < myTotalF Then

Print At 4,1, "BUDGET EXCEEDED!"

EndIf

Return

subs_CheckBGT:

For bIdx = 0 To 9

inputTmp2[bIdx] = 32

Next bIdx

inputTmp2[10] = 0

For bIdx = 0 To 9

If totalSTR[bIdx] <> "." Then

inputTmp2[bIdx] = totalSTR[bIdx]

Else
Break

EndIf

Next bIdx

inputTmp2[bIdx] = 0

myValTemp = Val inputTmp2, Dec

myTotalF = myValTemp * 100

If bIdx < 9 Then

Inc bIdx

EndIf

For bIdx2 = 0 To 9

inputTmp2[bIdx2] = 32

Next bIdx2

inputTmp2[10] = 0

bIdx2 = 0

For bIdx = bIdx To 9

inputTmp2[bIdx2] = totalSTR[bIdx]
Inc bIdx2

Next bIdx

inputTmp2[bIdx2 + 1] = 0

myValTemp = Val inputTmp2, Dec

myTotalF = myTotalF + myValTemp

myTotalF = myTotalF / 100

Return

getAction:
Cls
Print At 1,1,"PNAME: ", Str pNameSTR\10
Print At 2,1,"PRICE: ", Str priceSTR\10

Select Case dpType

Case 1

Print At 3,1, "<*> +ITEM <0> CANCEL"


Print At 4,1, "<#> -ITEM"

While 1 = 1

GoSub myNumKeypad
If keytemp = "*" Or keytemp = "#" Or keytemp = "0" Then

myAction = keytemp
Break

EndIf

Wend

Case 2

Print At 3,1, "<*> READ PROMO"


Print At 4,1, "<#> IGNORE PROMO"

While 1 = 1

GoSub myNumKeypad
If keytemp = "*" Or keytemp = "#" Then

myAction = keytemp
Break

EndIf

Wend

EndSelect

Return

itemInquiry:
Select Case iTypes

Case "I"

'Serout PORTD.0, 84,["I","1234567890111",Dec8 cartID]


SerOut PORTD.0, 84,["I",Str BarCodeProc\13,Dec8 cartID]
SerIn PORTD.1, 84,[Str pNameSTR\10,Str priceSTR\10, promoID]

Case "Y"

prodLoc1[16] = 0
prodLoc2[16] = 0
prodLoc3[16] = 0
SerOut PORTD.0, 84,["Y","0000000000",Dec3 aisleCtr,Dec8 cartID]
SerIn PORTD.1, 84,[Str prodLoc1\16,Str prodLoc2\16,Str
prodLoc3\16,aisleLim]

EndSelect

Return

myNumKeypad:

While 1 = 1

For kpCtr = 0 To 3

Select Case kpCtr

Case 0

kpCol1 = 0
kpCol2 = 1
kpCol3 = 1

Case 1

kpCol1 = 1
kpCol2 = 0
kpCol3 = 1

Case 2

kpCol1 = 1
kpCol2 = 1
kpCol3 = 0

EndSelect

If kpRow1 = 0 Then

DelayMS 50 : myBuzz = 0

While kpRow1 = 0 : Wend

DelayMS 50 : myBuzz = 1

keytemp = LookUpL kpCtr,["1","2","3"]

GoTo sj_kp_end

ElseIf kpRow2 = 0 Then

DelayMS 50 : myBuzz = 0

While kpRow2 = 0 : Wend

DelayMS 50 : myBuzz = 1

keytemp = LookUpL kpCtr,["4","5","6"]

GoTo sj_kp_end

ElseIf kpRow3 = 0 Then

DelayMS 50 : myBuzz = 0

While kpRow3 = 0 : Wend

DelayMS 50 : myBuzz = 1

keytemp = LookUpL kpCtr,["7","8","9"]

GoTo sj_kp_end

ElseIf kpRow4 = 0 Then

DelayMS 50 : myBuzz = 0

While kpRow4 = 0: Wend


DelayMS 50 : myBuzz = 1

keytemp = LookUpL kpCtr,["*","0","#"]

GoTo sj_kp_end

EndIf

Next kpCtr

Wend

sj_kp_end:

Return

subs_ReadBCode:

dtOn = 0
dumbTimer = 0

For bcpIdx = 0 To 12 : BarCodeProc[bcpIdx] = 32 : Next bcpIdx


BarCodeProc[13] = 0
bcpIdx = 0

sj_ReadChar:

For bcrIdx = 0 To 32 : BarCodeRaw[bcrIdx] = 0 : Next bcrIdx

bcrIdx = 0
dumbTimer = 0

While bcrIdx < 33 And dumbTimer < 2000

If BarcodeToggle = 0 Then

If BarcodeData = 0 Then

BarCodeRaw[bcrIdx] = "0"

Else

BarCodeRaw[bcrIdx] = "1"

EndIf
While BarcodeToggle = 0 : Wend

'DelayUS 10

Inc bcrIdx

EndIf

If dtOn = 1 Then Inc dumbTimer

Wend

GoSub subs_GetKey

If dumbTimer < 2000 Then

dtOn = 1
Inc bcpIdx
GoTo sj_ReadChar

EndIf

sj_ReadCharComplete:

Return

subs_VerifyBuf:
'---- compare key code from buffer ---------
key_match = 0

For compareCtr = 0 To 8

If temp_binary[compareCtr] <> BarCodeRaw[compareCtr + 1] Then

GoTo sj_VBComplete

EndIf

Next compareCtr

key_match = 1

sj_VBComplete:

Return
subs_GetKey:

For cConvert = "0" To "9"

Select Case cConvert

Case "0" : Str temp_binary = "101000100"


Case "1" : Str temp_binary = "011010000"
Case "2" : Str temp_binary = "011110001"
Case "3" : Str temp_binary = "011001000"
Case "4" : Str temp_binary = "101001000"
Case "5" : Str temp_binary = "011101001"
Case "6" : Str temp_binary = "011011001"
Case "7" : Str temp_binary = "101111000"
Case "8" : Str temp_binary = "011111000"
Case "9" : Str temp_binary = "011000100"
Case ":" : Str temp_binary = "101001010"

EndSelect

GoSub subs_VerifyBuf

If key_match = 1 Then

BarCodeProc[bcpIdx] = cConvert

GoTo sj_GKComplete

EndIf

Next cConvert

sj_GKComplete:

Return

subs_EncodeBudget:

sj_SEBStart:

For gCtr = 0 To 3

inputTmp[gCtr] = "0"

Next gCtr
inputTmp[4] = 0

gCtr = 0

sj_SEB_encode:

Cls
Print At 1,1,"ENTER YOUR BUDGET:"
Print At 2,1,"Php ", Str inputTmp\4

Print $FE, $0F

While 1 = 1

Print At 2, gCtr + 5

keytemp = 0

GoSub myNumKeypad

If keytemp = "#" Then

If gCtr < 3 Then

Inc gCtr

Else

Break

EndIf

ElseIf keytemp = "*" Then

If gCtr > 0 Then

Dec gCtr

EndIf

Else

inputTmp[gCtr] = keytemp

EndIf
Print At 2, gCtr + 5, inputTmp[gCtr]

Wend

sj_SEB_confirm:

Print $FE, $0C


Print At 2,20,127

Print At 4,1,"# - OK | * - CANCEL"

While 1 = 1

keytemp = 0

GoSub myNumKeypad

If keytemp = "#" Then

Break

ElseIf keytemp = "*" Then

gCtr = 3
GoTo sj_SEB_encode

EndIf

Wend

myValTemp = Val inputTmp, Dec

myBudgetF = myValTemp

Cls
Print At 1,1,"BUDGET DATA"
Print At 2,1,"SAVED."

DelayMS 3000

sj_SEB_End:

Return

End
APPENDIX B
Pin Diagram of PIC16F877A
APPENDIX C
APPENDIX D
Reinier Mariano Feraer
#48 Tambo Malaki
Indang, Cavite
Mobile/Tel. No.: +639154262329
E-mail: feraerreinier@yahoo.com

OBJECTIVE

 To obtain a job position in order to work and gain experience about the
Information Technology field.

SKILLS & TRAITS

 Taking up a degree in Bachelor of Science in Information Technology


 Operating System: Windows 2000, XP, Vista, 7; Ubuntu
 Proficient in Microsoft Office
 Basic Knowledge in C++, Java, and Assembly Programming Language
 Basic knowledge and experience in using SAP Business One
 Knowledgeable in Computer Networking Fundamentals, Routing Protocols and
Concepts, and the use and operation of the Cisco Packet Tracer Software
 Knowledgeable and experience in using Database Management System: IBM
DB2 Express-C, MySQL, MSSQL and Oracle database
 Basic knowledge about information security and experience using information
security tools: Metasploit, Nmap, Cain and Abel, BackTrack 5 R2, ollydbg
 Willing to learn
 Team Player

EDUCATIONAL BACKGROUND
Tertiary: University of Santo Tomas (UST) 2009-present
España, Manila

Secondary: Cavite State University- 2005-2009


Science High School (CVSU-SHS), Indang, Cavite

PROFESSIONAL EXPERIENCE
Sybase Inc.
25/F Prestige Tower, Emerald Avenue, Ortigas, Pasig City
Telephone Number: (02) 914-2548

PROJECT:
1. Assigned to Professional Services(PS) Department
- La Salle Greenhills Tablet Deployment
SEMINARS ATTENDED

 Microsoft Silverlight. University of Santo Tomas, España, Manila. June 17, 2011
 A Lap around Expression Blend and Visual Studio 2010. University of Santo
Tomas, España, Manila. June 17, 2011
 Android-IT-FY: A Seminar on Android Mobile Development. University of
Santo Tomas, España, Manila. July 18, 2011
 Introduction to CCNA and Network Enterprise. University of Santo Tomas,
España, Manila. August 3, 2011
 Introduction to Voice Network and Network Security. University of Santo
Tomas, España, Manila. August 3, 2011
 Network+ and Security+. University of Santo Tomas, España, Manila. August 3,
2011
 ASP.Net and C#.Net. University of Santo Tomas, España, Manila. August 3,
2011
 Digital Forensics, Security and Law. University of Santo Tomas, España,
Manila. September 2, 2011
 Gambas Linux Programming. University of Santo Tomas, España, Manila.
September 6, 2011
 Know Better, Perform Better: System Management of Web-based
Applications & Career Path Orientation. University of Santo Tomas, España,
Manila. September 19, 2011

REFERENCE

 Christian Talusig
Consultant
Exakt Inc.
25/F Prestige Tower, Emerald Avenue, Ortigas, Pasig City
+639175223446
ctalusig@exakt.com.ph

 Jasper Villafranca
System Analyst
Exakt Inc.
25/F Prestige Tower, Emerald Avenue, Ortigas, Pasig City
+639278098564
jvillafranca@exakt.com.ph
Darren Joseph Real M. Madrid II

140 Kaginhawahan St. Karangalan Village,


Manggahan, Pasig City
Mobile/Tel. No.: +639155602320/ (02) 748-28-22
E-mail: darren_madrid@yahoo.com
madridarren@gmail.com

OBJECTIVE

 To obtain a working job position in the field of Information Technology and


harmonize with a team of experienced professionals for my individual as well as
corporate development

SKILLS

 Taking up a degree in Bachelor of Science in Information Technology


 Operating System: Windows 2000, XP, Vista, 7; Linux Ubuntu
 Proficient in Microsoft Office 2003 and 2007
 Knowledgeable in C++, Java, and Assembly Programming Language
 Basic knowledge and experience in using SAP Business One
 Knowledgeable in Computer Networking Fundamentals, Routing Protocols and
Concepts, and the use and operation of the Cisco Packet Tracer Software
 Knowledgeable and experience in using Database Management System: IBM
DB2 Express-C, MySQL, Sybase
 Team Player

EDUCATIONAL BACKGROUND
Tertiary: University of Santo Tomas (UST) 2009-present
España, Manila

Secondary: Lorenzo Ruiz de Manila School (LRMS) 2005-2009


Phase 1 Vista Verde Executive Village, Cainta, Rizal

Elementary: Faith Christian School (FCS) 2003-2005


Phase 7 Vista Verde Executive Village, Cainta, Rizal

Alice in Wonderland School (AWS) 1999-2003


Bern St., Pasig Greenpark Village, Pasig City
PROFESSIONAL EXPERIENCE
Sybase Inc.
25/F Prestige Tower, Emerald Avenue, Ortigas, Pasig City
Telephone Number: (02) 914-2548

PROJECT:
2. Assigned to Professional Services(PS) Department
- Adaptive Server Enterprise (ASE) Training
- La Salle Greenhills Tablet Deployment

SEMINARS ATTENDED

 Microsoft Silverlight. University of Santo Tomas, España, Manila. June 17, 2011
 A Lap around Expression Blend and Visual Studio 2010. University of Santo
Tomas, España, Manila. June 17, 2011
 Android-IT-FY: A Seminar on Android Mobile Development. University of
Santo Tomas, España, Manila. July 18, 2011
 Introduction to CCNA and Network Enterprise. University of Santo Tomas,
España, Manila. August 3, 2011
 Introduction to Voice Network and Network Security. University of Santo
Tomas, España, Manila. August 3, 2011
 Network+ and Security+. University of Santo Tomas, España, Manila. August 3,
2011
 ASP.Net and C#.Net. University of Santo Tomas, España, Manila. August 3,
2011
 Digital Forensics, Security and Law. University of Santo Tomas, España,
Manila. September 2, 2011
 Gambas Linux Programming. University of Santo Tomas, España, Manila.
September 6, 2011
 Know Better, Perform Better: System Management of Web-based
Applications & Career Path Orientation. University of Santo Tomas, España,
Manila. September 19, 2011

CERTIFICATIONS AND TRAININGS


 IBM Certified Academic Associate, DB2 Database and Application Fundamentals

REFERENCE
 Franz Wesley D. Porras
Consultant
Sybase Solutions Inc.
25/F Prestige Tower, Emerald Avenue, Ortigas, Pasig City
+639213698895
fporras@exakt.com.ph
 Christian Talusig
Consultant
Exakt Inc.
25/F Prestige Tower, Emerald Avenue, Ortigas, Pasig City
+639175223446
ctalusig@exakt.com.ph

 Jasper Villafranca
Analyst
Exakt Inc.
25/F Prestige Tower, Emerald Avenue, Ortigas, Pasig City
+639278098564
jvillafranca@exakt.com.ph
Adrian Gene J. Reyes
#8253 Spazio Bernardo Condominium
Sauyo Road, Quezon City
Mobile No: +63 926 736 3307
E-mail: geneebiz@yahoo.com

OBJECTIVE

 To obtain OJT position in the field of Information Technology and harmonize with a
team of experienced professionals for my individual as well as corporate development

SKILLS

 Taking up a degree in Bachelor of Science in Information Technology


 Operating System: Windows 2000, XP, Vista, 7; Linux Ubuntu
 Proficient in Microsoft Office 2003 and 2007
 Knowledgeable in C++, Java, and Assembly Programming Language
 Knowledgeable in Logic Circuits and Digital Circuit Design
 Experience of using SAP Business One
 Basic knowledge in Microsoft Visual Studio and other computer applications
 Knowledgeable in Computer Networking Fundamentals and the use and operation of the
Cisco Packet Tracer Software
 Knowledgeable and experience in IBM DB2 Express-C and Microsoft MsSQL Database
Management System Software

EDUCATIONAL BACKGROUND
Tertiary: University of Santo Tomas (UST) 2009-present
España, Manila

Secondary: St.Mary’s Academy of Sto.Niño (SMASN) 2005-2009


Meycauayan Camalig, City of Meycauayan

Elementary: St.Mary’s Academy of Sto.Niño (SMASN) 2003-2005


Meycauayan Camalig, City of Meycauayan

Trinitas School 1999-2003


Pantoc, City of Meycauayan
SEMINARS ATTENDED
 Microsoft Silverlight. University of Santo Tomas, España, Manila. June 17, 2011
 A Lap around Expression Blend and Visual Studio 2010. University of Santo Tomas,
España, Manila. June 17, 2011
 Android-IT-FY: A Seminar on Android Mobile Development. University of Santo
Tomas, España, Manila. July 18, 2011
 Introduction to CCNA and Network Enterprise. University of Santo Tomas, España,
Manila. August 3, 2011
 Introduction to Voice Network and Network Security. University of Santo Tomas,
España, Manila. August 3, 2011
 Network+ and Security+. University of Santo Tomas, España, Manila. August 3, 2011
 ASP.Net and C#.Net. University of Santo Tomas, España, Manila. August 3, 2011
 Digital Forensics, Security and Law. University of Santo Tomas, España, Manila.
September 2, 2011
 Gambas Linux Programming. University of Santo Tomas, España, Manila. September
6, 2011
 Know Better, Perform Better: System Management of Web-based Applications &
Career Path Orientation. University of Santo Tomas, España, Manila. September 19,
2011

REFERENCE

 Engr. Eugenia Ramirez


Information Systems Department Faculty
Faculty of Engineering – Information and Computer Studies Department
University of Santo Tomas
+639275100840
henie_abe@yahoo.com

 Prof. Alma Perol


Information Systems Department Faculty
Faculty of Engineering – Information and Computer Studies Department
University of Santo Tomas
+69063487729
verana27@yahoo.com

 Prof. Maricel Afurong


Information Technology Department Faculty
Faculty of Engineering – Information and Computer Studies Department
+639228178008/ +639178581108
University of Santo Tomas
maricelmafurong@gmail.com
Jervin V. Reyes
#3455 Delos Santos St. Bo. Obrero,
Tondo, Manila
Contact Number: +639156060513
Email: reyes.jervin.21@gmail.com

OBJECTIVE

 To obtain job position in the field of Information Technology, to further enhance and
widen my knowledge and gain experience in software developing and debugging

SKILLS

 Taking up a degree in Bachelor of Science in Information Technology


 Operating System: Windows 2000, XP, Vista, 7; Linux Ubuntu
 Proficient in Microsoft Office 2003 and 2007
 Knowledgeable in C++, Java, .NET and Assembly Programming Language
 Knowledgeable in Logic Circuits and Digital Circuit Design
 Experience of using SAP Business One
 Basic knowledge in Microsoft Visual Studio/Basic, Adobe Dream Weaver, Adobe
Photoshop, and other computer applications
 Knowledgeable in Computer Networking Fundamentals and the use and operation of the
Cisco Packet Tracer Software
 Knowledgeable and experience in IBM DB2 Express-C and Microsoft MsSQL Database
Management System Software
 Internship at Affiliated Computer Services, A Xerox Company.

EDUCATIONAL BACKGROUND

Tertiary: University of Santo Tomas (UST) 2009-present


España, Manila

Secondary: Manila Cathedral School 2005-2009


287 Tayuman St., Tondo Manila, Metro Manila

Elementary: Barrio Obrero Elementary School 1999-2005


Narra Extension Street, Barangay 186, Tondo, Manila
SEMINARS ATTENDED

 Microsoft Silverlight. University of Santo Tomas, España, Manila. June 17, 2011
 A Lap around Expression Blend and Visual Studio 2010. University of Santo Tomas,
España, Manila. June 17, 2011
 Android-IT-FY: A Seminar on Android Mobile Development. University of Santo
Tomas, España, Manila. July 18, 2011
 Introduction to CCNA and Network Enterprise. University of Santo Tomas, España,
Manila. August 3, 2011
 Introduction to Voice Network and Network Security. University of Santo Tomas,
España, Manila. August 3, 2011
 Network+ and Security+. University of Santo Tomas, España, Manila. August 3, 2011
 ASP.Net and C#.Net. University of Santo Tomas, España, Manila. August 3, 2011
 Digital Forensics, Security and Law. University of Santo Tomas, España, Manila.
September 2, 2011
 Gambas Linux Programming. University of Santo Tomas, España, Manila. September
6, 2011
 Know Better, Perform Better: System Management of Web-based Applications &
Career Path Orientation. University of Santo Tomas, España, Manila. September 19,
2011

REFERENCE

Prof. Alma Perol


Information Systems Department Faculty
Faculty of Engineering – Information and Computer Studies Department
University of Santo Tomas
+69063487729
verana27@yahoo.com

Prof. Maricel Afurong


Information Technology Department Faculty
Faculty of Engineering – Information and Computer Studies Department
+639228178008/ +639178581108
University of Santo Tomas
maricelmafurong@gmail.com

Engr. Eugenia Ramirez


Information Systems Department Faculty
Faculty of Engineering – Information and Computer Studies Department
University of Santo Tomas
+639275100840
henie_abe@yahoo.com

Potrebbero piacerti anche