Input specification - Senior Design

advertisement
Job Fair Pervasive Computing
System
Design Report
Project Team: Dec0912
Client:
Iowa State University
Faculty Adviser:
Daji Qiao, PhD
Course Coordinator:
Jason Boyd
Team Members:
Adam Lee
Kartik Subbu
Nicholas Oakman
Gabriel Semonis
REPORT DISCLAIMER NOTICE
DISCLAIMER: This document was developed as a part of the requirements of an electrical and computer engineering course at Iowa
State University, Ames, Iowa. This document does not constitute a professional engineering design or a professional land surveying
document. Although the information is intended to be accurate, the associated students, faculty, and Iowa
State University make no claims, promises, or guarantees about the accuracy, completeness, quality, or adequacy of the information.
The user of this document shall ensure that any such use does not violate any laws with regard to professional licensing and certification
requirements. This use includes any work resulting from this student-prepared document that is required to be under the responsible
charge of a licensed engineer or surveyor. This document is copyrighted by the students who produced this document and the associated
faculty advisors. No part may be reproduced without the written permission of the senior design course coordinator.
Job Fair Pervasive Computing System Design Report
Page 1
Contents
List of Tables ................................................................................................................................... 5
List of Figures ................................................................................................................................. 5
Definitions ....................................................................................................................................... 6
Introduction ..................................................................................................................................... 7
Executive Summary .................................................................................................................... 7
Acknowledgement ....................................................................................................................... 7
Problem Statement ...................................................................................................................... 7
Operating Environment ............................................................................................................... 8
Intended User(s) .......................................................................................................................... 8
Students ................................................................................................................................................. 8
Employers .............................................................................................................................................. 8
Administrators ....................................................................................................................................... 8
Intended Use(s)............................................................................................................................ 9
First use ................................................................................................................................................. 9
Second use ............................................................................................................................................. 9
Third use ................................................................................................................................................ 9
Assumptions ................................................................................................................................ 9
Limitations................................................................................................................................... 9
Expected End Product ............................................................................................................... 10
Overall System Design .................................................................................................................. 10
PRE-CAREER FAIR REGISTRATION .................................................................................. 11
STUDENT ............................................................................................................................................ 11
EMPLOYER ......................................................................................................................................... 11
MAIN ENTRANCE CHECK-IN .............................................................................................. 12
EMPLOYER BOOTHS ............................................................................................................ 12
TEXT-MESSAGING SYSTEM ............................................................................................... 13
TERMINALS ............................................................................................................................ 14
CENTRAL SERVER ................................................................................................................ 14
Design Specifications .................................................................................................................... 15
Touch-a-tag ................................................................................................................................... 15
Job Fair Pervasive Computing System Design Report
Page 2
Functional Requirements ........................................................................................................... 15
Input specification ..................................................................................................................... 16
Output specification .................................................................................................................. 16
Hardware specifications ............................................................................................................ 16
Architectural Overview ............................................................................................................. 16
Application Correlation Service (ACS)................................................................................................ 17
ACS Data Repository ........................................................................................................................... 17
ACS TagID Dispatcher ........................................................................................................................ 17
ACS Block System ................................................................................................................................ 17
User interface ............................................................................................................................ 18
Touchatag basic fixed reader operation.................................................................................... 19
Project-Specific touch-a-tag utility: .......................................................................................... 20
Student Registration .................................................................................................................. 20
Functional Requirements ..................................................................................................................... 20
Input specification ............................................................................................................................... 21
Output specification ............................................................................................................................. 21
User interface specification ................................................................................................................. 21
Hardware or software specifications ................................................................................................... 22
Test plan .............................................................................................................................................. 22
Prototyping .......................................................................................................................................... 23
Employer Registration ............................................................................................................... 23
Functional Requirements ..................................................................................................................... 23
Input specification ............................................................................................................................... 23
Output specification ............................................................................................................................. 24
User interface specification ................................................................................................................. 24
Hardware or software specifications ................................................................................................... 24
Test plan .............................................................................................................................................. 24
Prototyping .......................................................................................................................................... 25
Entrance Check-In ..................................................................................................................... 25
Functional Requirements ..................................................................................................................... 26
Input specification ............................................................................................................................... 26
Output specification ............................................................................................................................. 26
User interface specification ................................................................................................................. 26
Hardware or software specifications ................................................................................................... 26
Employer Booth ........................................................................................................................ 27
Functional Requirements ..................................................................................................................... 28
Input specification ............................................................................................................................... 28
Output specification ............................................................................................................................. 28
User interface specification ................................................................................................................. 28
Hardware or software specifications ................................................................................................... 28
Job Fair Pervasive Computing System Design Report
Page 3
Test plan .............................................................................................................................................. 28
Prototyping .......................................................................................................................................... 28
Terminals ................................................................................................................................... 29
Functional Requirements ..................................................................................................................... 29
Non-functional Requirements .............................................................................................................. 30
Input specification ............................................................................................................................... 30
Output specification ............................................................................................................................. 30
User interface specification ................................................................................................................. 31
Hardware or software specifications ................................................................................................... 31
Test plan .............................................................................................................................................. 31
Prototyping .......................................................................................................................................... 31
Resources....................................................................................................................................... 31
Material ..................................................................................................................................... 31
Revised Resource Requirements .......................................................................................................... 31
Original Resource Requirements ......................................................................................................... 32
Time............................................................................................... Error! Bookmark not defined.
Revised Personal Effort Requirements .................................................... Error! Bookmark not defined.
Original Personal Effort Requirements ............................................................................................... 32
Conclusion ..................................................................................................................................... 33
References ..................................................................................................................................... 33
Appendix ....................................................................................................................................... 34
Database Table Diagram ........................................................................................................... 34
Student Registration Sequence Diagram ................................................................................... 34
Employer Registration Sequence Diagram................................................................................ 35
PHP Code for Prototype Registration System ........................................................................... 35
index.php: ............................................................................................................................................ 35
confirm.php: ........................................................................................................................................ 36
register.php: ........................................................................................................................................ 38
Pseudo code for Next Visit Algorithm ....................................................................................... 39
Job Fair Pervasive Computing System Design Report
Page 4
List of Tables
Table 1 - Definitions........................................................................................................................ 6
Table 2 - Touchatag Requirements................................................................................................ 15
Table 3 - Student Registration Requirements ............................................................................... 20
Table 4 - Employer Registration Requirements............................................................................. 23
Table 5 - Entrance Check-In Requirements ................................................................................... 26
Table 6 - Employer Booth Requirements ...................................................................................... 28
Table 7 - Terminal Requirements .................................................................................................. 30
Table 8 - Revised Resource Requirements .................................................................................... 31
Table 9 - Original Resource Requirements .................................................................................... 32
List of Figures
Figure 1 Pre-career fair registration for students. Students enter details on a web-site to receive a
password that will be utilized at the entrance check-in ................................................................. 11
Figure 2 Touch-a-tag ..................................................................................................................... 12
Figure 3 Touch-a-Tag Reader ....................................................................................................... 13
Figure 4 - Schematic of System Components in an actual layout of the Coliseum where the Career
Fair is held ..................................................................................................................................... 14
Figure 5: Touchatag end-to-end architecture [2]............................................................................. 17
Figure 6: Touchatag Dashboard user interface .............................................................................. 19
Figure 7: Touchatag basic fixed reader operation ......................................................................... 19
Figure 8 - Student Registration Web Interface.............................................................................. 22
Figure 9 - Employer Registration Web Submission Interface ........................................................ 24
Figure 10 - Entrance Check-In Process Diagram ............................................................................ 25
Figure 11 - Employer Booth Setup................................................................................................. 27
Figure 12 - Employer Action Sequence Diagram ........................................................................... 27
Figure 13 - Terminal Query Sequence Diagram ............................................................................ 29
Job Fair Pervasive Computing System Design Report
Page 5
Definitions
Table 1 - Definitions
Term
Touchatag
Definition
The name of the company which makes the
RFID reader and tags.
Algorithm
Sequence of finite instructions used for
calculations and data processing
CprE 489
Communication Networking Class at Iowa
State University
Filter
A method by which unwanted elements are
removed from the selection process
Greedy algorithm
Algorithm that makes the locally optimum
choice at each stage
GUI
Graphical User Interface
ISU Card
Iowa State University Student Card
RFID
Radio Frequency Identification Device
USB
Universal Serial Bus
ACS
Application Correlation Service
API
Application Programming Interface
NFC
Near Field Communication
Job Fair Pervasive Computing System Design Report
Page 6
Introduction
Executive Summary
Organizing a career fair is an important task for any university to provide opportunities for
students to seek employment opportunities and also for the employers to recruit employees with
right skill sets. The Iowa State University (ISU) Engineering Career Fair is the second largest
career fair in the entire country. Given the magnitude of the event, ensuring that the event serves
its purpose, for both employers and students, is of utmost importance. The career fair process
becomes complex especially when the number of students and employers is very large and
students should be able to meet with the right set of employers, and vice-versa.
A system which co-ordinates the career fair in a more organized, time-efficient manner will
enrich the experiences of both the employers and the students involved. Students will be able to
meet maximum number of best-suited employers in a limited time based on employer and
personal requirements. Such an experience involves not having to waste precious time in waiting
in long queues to meet potential employers and matching employers to most suitable students.
Using the system being designed by the senior design team, queues will not be as long as before
and the number of most suitable employers-potential employees matches based on preferences
will increase substantially. Such a system will only lead to increased co-ordination and efficiency
of the career fair.
Acknowledgement
The Dec09-12 senior design team would like to thank Iowa State University for providing a
positive learning community. The team also is thankful to the Computer Support Services (CSG)
for having provided us the necessary resources for our project. The team would like to thank
Dr.Qiao for having advised and guided us with a lot of patience throughout the entire duration of
the project. Professor Daji has helped us along the way and inspired us to look at multiple
approaches in realizing our end-goal. He was the one who suggested using the Touchatag system
for our project, and also gave invaluable tips on how to make our system more pervasive. The
team would also like to acknowledge Jason Boyd and Dr. Kamal for their help during this project.
Problem Statement
The Dec0912 project team will develop a pervasive computing system composed of embedded
systems/software and wireless networking components. The proof-of-concept system will be
designed to solve complex problems with multiple constraints (e.g., real-time deadline,
connectivity).
The team will develop a prototype demonstration application for solving the career-fair
coordination problem. Organizing the career fair is an important task for the university to provide
Job Fair Pervasive Computing System Design Report
Page 7
opportunities for students to seek employment opportunities and also for the employers to recruit
employees with right skill sets. The career fair process becomes complex, especially when the
number of students and employers is very large; if poorly managed, it would result in students
being unable to meet with the right set of employers, and employers not able to meet with the
right set of students.
The goal is to design a pervasive computing system that can improve the efficiency of the career
fair process, with the following objectives: (i) maximize the chances of students meeting as many
suitable employers as possible; (ii) maximize the chances of employers meeting as many suitable
students as possible.
Operating Environment
The new pervasive computing system will be installed in Hilton Coliseum and Scheman Building,
locations where the Engineering Career fairs are held every year at Iowa State University in
Ames, IA. The centralized server’s database will be handling information of over 2000 students
and over 250 employers. There will be a high-speed wireless internet network all across the
coliseum, where each laptop has access to the internet and access to normal AC power sources.
The Operating environment can be further defined as indoors at normal room temperature, 65-75
degrees Fahrenheit. All laptops/ computers will have USB capability to connect the touch-a-tag
reader.
Intended User(s)
Three types of users will primarily utilize the system.
Students
The first type includes students. These users will be provided with adequate information
regarding the system components like touch-a-tag among others for them to be able to use the
system effectively. Students will utilize the system by submitting their information detailed in the
student registration section.
Employers
The second types of users are the employers who come to ISU to recruit prospective employees.
For these types of users, information can be made available if needed.
Administrators
The third types of users are the administrators of the servers and other people with special access
to the data. These users can modify the settings and the functionalities of the system. These users
will be individuals with highly-specialized skill sets and a working knowledge of the Linux OS,
MySQL, PHP scripting, and TCP/IP and http protocols.
There are no other intended foreseeable user(s) as far as this system goes.
Job Fair Pervasive Computing System Design Report
Page 8
Intended Use(s)
Each type of user can use the system in a variety of ways. The varied uses also depend on what
the team defines as the scope of the project. Under the current vision, these three users will have
the following uses of the system:
First use
 Queue a student into an employer’s booth by either swiping an RFID tag or manually
entering their ID.
 Dequeue a student out of an employer’s booth by either swiping an RFID tag, manually
checking out, querying a terminal or checking into another booth.
 Receive text messages as to which employer to visit next
 Query a terminal as to which employer to visit next
 Enter their respective information into the database for storage and decision making.
Second use
 Manually dequeue a student user from the employer’s booth queue.
 Query the system to find out how many potential employees have visited them.
 Receive an emailed version of the resume of a student that queues into the company’s
booth.
Third use
 Troubleshoot non-performance and system efficiency issues.
 Oversee functioning of the system during and before the career fair.
 Resolve issues involving the touch-a-tag interface and provide a smooth platform for
student and employer registration at the career fair.
Assumptions
Mentioned below are some of the assumptions incorporated in designing the system





Wireless Internet connectivity will be provided throughout the career fair.
Iowa State University will provide adequate laptops for employers and terminals.
Laptops provided must have an open, useable USB slot.
Laptops must have Windows XP or higher to utilize our system.
All students will get their ISU cards/remember their Student ID numbers and password
provided during pre-career fair registration.
Students and employers have a fair understanding of the system based on the user manual
guide of the system provided.
Limitations
The system has some limitations which must be considered when designing it.
 The system must implement most, if not all features as mentioned in the problem
statement.
 The user interface (front end) needs to be compact and easy to use.
 The system must allow for different functionalities for the different types of users.
 The centralized server must have a back-up if it crashes or malfunctions at all.
Job Fair Pervasive Computing System Design Report
Page 9
Expected End Product
The deliverables for the project will be a functional prototype of the pervasive system which is on
a small scale as compared to the magnitude of the final project. So instead of 300 employers, the
team will experiment with 2-4 employers and 2 students to simulate the prototype system.
The other deliverables include developer-friendly programming code snippets and a highly useful
and systematic user manual for all kinds of users of the system.
Overall System Design
Figure 0 - System Layout and Design
Job Fair Pervasive Computing System Design Report
Page 10
The pervasive computing system can be broken down into few major modules. It includes the
pre-career fair registration module, the main entrance check-in module, employer booth modules,
terminal modules and a common centralized system database. All the modules are connected to
the centralized database using an Ethernet connection.
PRE-CAREER FAIR REGISTRATION
STUDENT
The pre-career fair registration module involves the student registering his/her details (viz. Name,
Year, Major, Area of Interest, Company Preferences (for e.g. Rockwell Collins), Position Desired,
subscription to the text messaging system etc.) on a web interface before the career fair; thereby
receiving a unique password. The details entered are stored in the centralized system database.
The details, thus entered are used as parameters for the algorithm(*see appendix) in the system
which matches employers with the most suitable students and vice-versa. The students can now
enter the career fair with this password and their student ID card with them.
Figure 1 Pre-career fair registration for students. Students enter details on a web-site to receive a
password that will be utilized at the entrance check-in
EMPLOYER
The pre-career fair registration module also includes registering the employer to the system.
Association is required for the employers too since the central server needs to identify which
employer it is that has a certain number of students in line. The team decided on identifying
employers based on the Internet Protocol (IP) address, a unique 32-bit address of the machine on
the Ethernet network. Tying the specific IP address to the employer before the career fair will
primarily be the registration for the employer. Also, the web interface that the team intends to use
also needs to be explained to employers. A user manual will serve the purpose.
Job Fair Pervasive Computing System Design Report
Page 11
MAIN ENTRANCE CHECK-IN
The main entrance check-in module refers to the main entrance of the career fair where students
swipe their ISU cards to get their name tags. The student enters the unique password received
during pre-career fair registration to receive a unique low-range RFID tag (touch-a-tag) as shown
in Figure 2
Figure 2 Touch-a-tag
The tag is associated to the student at this stage by using the touch-a-tag server and our system
server. This association helps the system understand which person is in which employer queue or
at which terminal during the career fair since the tag uniquely identifies the student. The student
receives a print-out of a list of next suitable employers to go based on the matching algorithm the
team has designed. To better explain the system, in case students have any sort of difficulties,
there will be a student user manual available at the main entrance check-in that student can
choose to read, and also online.
EMPLOYER BOOTHS
Once inside the career fair, the students are free to go to any employer of their choice or follow
the list given out to them at the main entrance check-in. To queue oneself at any employer booth
the students must swipe their tags over a touch-a-tag reader (one reader provided for each
employer) as shown in Figure 3
Job Fair Pervasive Computing System Design Report
Page 12
Figure 3 Touch-a-Tag Reader
Swiping the tag causes the queue length field in the database for that employer to increase by one;
thereby maintain real-time status. This not only reflects real-time queue lengths at employer
booths but also helps in the implementation of the matching algorithm the system uses to print out
the list of next best-suited employers for other students.
This swiping action also notifies the database of who is standing in line (based on the main
entrance association) and sends the student’s resume to the employer’s laptop for the employer’s
convenience. The action the employer takes with these resumes is entirely his/her discretion. This
is a service intended primarily for students but by adding these functionalities, the team intends to
increase overall utility for all users of the system. After interaction with the employer, the student
can swipe the tag again over the reader to log out of the line. Alternatively, the employer can also
log the student out from the web interface on his laptop (provided by the university) If none of the
above two actions are performed, the system will automatically log out the student after a
substantial time of inactivity and perform simultaneous log out (at previous employer) and log in
(at new employer) if the student stands in queue for another employer.
TEXT-MESSAGING SYSTEM
A text-messaging system is also in place to update students real-time about which employers they
should go to next based on the algorithm. This algorithm takes into account factors like present
queue length at an employer, employer preferences, employers already visited, etc. to come up
with an updated list of employers to go to next. To maintain the non-disruptiveness of the system,
the text-messaging system sends a text to a student with the list of employers only when they
show up on the system as not being in the queue for any employer to ensure no disturbances
during employer-student interaction. The text messages are sent as an e-mail by the central server
through a Short Messaging Service (SMS) gateway. Students may/may not subscribe for this
service since they will have to pay for the incoming texts to their cell phone.
Job Fair Pervasive Computing System Design Report
Page 13
Figure 4 - Schematic of System Components in an actual layout of the Coliseum where the Career Fair
is held
TERMINALS
An alternative to the text messaging service are the terminals. These terminals will be
strategically located and evenly distributed throughout the coliseum to ensure maximum and
efficient usage by students. These terminals are desktops/laptops equipped with the touch-a-tag
reader. By swiping the card over the reader, the web interface will show the list of employers on
the screen. This list can be printed off, since a printer will be attached with the terminal module.
There is also another option to obtain information from the terminals. A student can enter their
student ID number at the terminals using a numeric keypad to get the list of employers.
CENTRAL SERVER
The central server is at the heart of the system. It is connected to each component of the system
via Ethernet. The central server will host the database (MySQL) and connect the web-interface to
the database using PHP scripts. The algorithm will be implemented using PHP scripts as well.
The database will hold information about all employers, students and terminals. Some of the
information includes resumes of students, employer laptop Internet Protocol (IP) addresses used
to uniquely identify them at the server, employer queue tables in the database among many things.
Job Fair Pervasive Computing System Design Report
Page 14
Design Specifications
Touch-a-tag
The Touchatag service is the team’s online Near Field Communication (NFC) Radio Frequency
Identification (RFID) device. The RFID tag and reader connect to the central server using the
Touchatag server. This service makes it possible for the creation of applications that enable the
launch of online applications with a simple touch of an RFID enabled device such as a tag. Items
tagged with an RFID chip provide users with one touch, fast and easy access to on-line
information and registration. In this project’s context, the tag once swiped on the reader connects
to a web-page and updates, retrieves and modifies the contents of it which in turn, reflect on the
central server. All this is implemented using PHP scripts and the rich Application programming
interface (API) provided to a Touchatag user and developer.
Functional Requirements
Table 2 - Touchatag Requirements
Requirement
Statement
Touchatag Functional Requirement 1
The Touchatag service must be able to
uniquely identify each student and
employer based on their already registered
associations.
Touchatag Functional Requirement 2
The Touchatag service must be able to
access the database to create entries in the
Job Fair Pervasive Computing System Design Report
Page 15
database tables to maintain the current
system state real-time.
Touchatag Functional Requirement 3
The Touchatag service must be able to
access the database to update and modify
entries in the database tables to maintain
the current system state real-time.
Touchatag Functional Requirement 4
The Touchatag service must be able to
perform all these functions mentioned in
the shortest time possible to ensure the
real-time nature of the system.
Input specification
The input for the Touchatag application is the action of swiping the associated tag over a reader.
Since this is an NFC RFID, the detection range for these tags is small – about 4 centimeters or 1.6
inches [2]. Hence to make sure the input is detected, the user has to make sure that the tag is closer
than the detection range mentioned above for it to work.
Output specification
The output for this device can be any action, ranging from checking the student into a line to
printing out the next list of employers to go to. The output primarily depends on what web-site is
associated with that tag and what the PHP script for that web-page instructs the central server to
do.
Hardware specifications
Touchatag hardware consists of a small interrogator or reader (roughly the size of a deck of cards,
but half the thickness) that connects to a computer through a USB port, and small adhesive
passive tags that comply with the 13.56 MHz and ISO 14443 air-interface standards, as well as
the Near Field Communications (NFC) protocol, an RFID platform designed for short-range
secure wireless transmissions. A Touchatag can also be read by placing it very close to an NFCenabled cell phone [1].
Apart from the reader and the tag, there is no real hardware components involved in this
technology.
Architectural Overview
Job Fair Pervasive Computing System Design Report
Page 16
Figure 5: Touchatag
end-to-end architecture [2]
Application Correlation Service (ACS)
The Touchatag Application Correlation Service (ACS) is a Web service that comprises the core
of Touchatag, storing the association between unique tag IDs and actions to execute.
The Touchatag ACS listens to Touchatag RFID readers. When a tag event is registered, the ACS
performs logic to determine the appropriate action for the tag, and responds accordingly.
The ACS has several internal components that enable its overall functionality.
ACS Data Repository
The ACS maintains a repository of correlation data, which includes actions for associating to tags,
as well as tag, reader and user IDs and their associations to actions.
ACS TagID Dispatcher
When the ACS receives a tag read event, it uses the TagID Dispatcher to lookup the incoming tag
ID in the Repository, and then return the correct corresponding action to the client. Currently the
dispatcher component handles only tag IDs. Additional functionality will later enable the
dispatcher also to handle reader ID, user ID, client type, and various types of metadata for
dispatching events.
ACS Block System
The Block System provides the ACS with modular functionality for different types of
Applications. Each of the different Applications available in the Touchatag dashboard uses one or
more corresponding blocks on the server.
Job Fair Pervasive Computing System Design Report
Page 17
The Touchatag engineering team uses the Block System as a modular way to extend Touchatag’s
base functionality. One way that third party application developers can create new functionality is
by assembling the existing ACS blocks in new configurations using Touchatag Configurator API.
[2]
User interface
Any user can create their own applications using the Touchatag interface also known as the
dashboard.
By following these steps, one can create one’s own application1.
2.
3.
4.
Log on to www.Touchatag.com using your account (register for no charge).
Go to the Touchatag dashboard (www.Touchatag.com/dashboard).
Click the Configure an Application button. This opens the Touchatag “configurator”.
In the configurator, you choose the URL that you want the tag to connect to once it is
swiped.
5. You then customize the selected application, giving it a name and, optionally, a
description, and specifying any other fields as required. When ready, click the Use this
App button to continue.
6. This choice prompts you to put a tag on your Touchatag USB reader. When the tag is
detected, the wizard displays the tag ID and asks you to confirm. Click Choose this Tag
to confirm the association and continue.
7. In configurator Step 4 you verify the configuration by clicking Make this Tag. This is the
final step in associating an action to a tag, so the configurator closes.
8. After the association is created, it appears in your list of associated tags in the dashboard.
From then on, using the physical tag on any Touchatag reader will trigger the actions
defined in the Touchatag application.
Job Fair Pervasive Computing System Design Report
Page 18
Figure 6: Touchatag Dashboard user interface
Touchatag basic fixed reader operation
Figure 7: Touchatag
1.
basic fixed reader operation
A tagged object is detected by the fixed Touchatag USB reader.
Job Fair Pervasive Computing System Design Report
Page 19
2. The reader communicates relevant information, such as the tag ID, to the Touchatag
software client.
3. The Touchatag software client contacts to the Touchatag Action Correlation Service,
relaying the tag ID, the reader ID, the event type, the user’s account name, and other information.
4. The Touchatag Action Correlation Service registers the event information, and uses the
correlation data repository to determine what actions to execute.
5. The Touchatag service executes any appropriate server-side actions, and then instructs the
Touchatag software client to launch any appropriate actions on its host computer.
6.
The Touchatag client executes actions as instructed by the service.
Project-Specific touch-a-tag utility:
Given the brief architectural framework and the operation information, the team intends to use the
Touchatag service in the following way:
A tag that a student possesses has a built-in ID number. When swiped, the ID number gets
relayed to the Touchatag server, which in turn directs the communication flow to the web-site that
was associated with the tag.
Once the site is reached, PHP scripts on the web-site will perform certain functions that will
update the database and bring up an output dependent on the kind of query. This output could be
a list of employers or might just be an update in the database of the central server.
The functionality of the Touchatag service is dependent on the API’s and the PHP code that we
program. Hence, the communication back and forth from the central server to the various
modules of the system is facilitated through the Touchatag interface.
Student Registration
Functional Requirements
Table 3 - Student Registration Requirements
Requirement
Statement
Student Registration Requirement 1
The registration system shall display a
registration form to the user, in which relevant
Job Fair Pervasive Computing System Design Report
Page 20
information can be entered.
Student Registration Requirement 2
The system shall interpret the submitted
information via a PHP script.
Student Registration Requirement 3
The system shall store the data into the
appropriate table on the database.
Student Registration Requirement 4
The system shall notify the user if there is a
failed submission.
Student Registration Requirement 5
The system shall return a unique pass code to
the user, which they will need in order to log in
at the career fair.
Input specification
 Username
 Major
 Year
 Seeking Internship/Co-op/Full-time
Output specification
 Confirmation and unique pass code if the registration was successful.
 Error message if there was a problem during submission.
User interface specification
The interface consists of an HTML form with several input fields, including text fields, check
boxes, radio buttons, and combo boxes. A short caption preceding each input will instruct the
user which information is to be entered in a particular text field.
Job Fair Pervasive Computing System Design Report
Page 21
Figure 8 - Student Registration Web Interface
Hardware or software specifications
Hardware and software requirements are minimal. The registration system can be accessed from
any computer connected to the internet and capable of viewing web pages.
Test plan
Testing the registration system will be simple. Although the information entered will vary from
student to student, there are basically only two ways which the information can affect the
functionality of this system. Either there were no errors during the processing of the information,
in which case the information will be stored into the database, or there was a problem, and no the
database remains unchanged. If this is the case, the user must be notified of the problem that
occurred.
Creating a few fake registration accounts to make sure the information is being properly stored
into the database, as well as testing the responses when erroneous data is entered, should be
sufficient for testing this part of the system. Some parts will have to be temporarily disabled
during testing, such as checking that the ISU username is valid, since test information will not
consist of that of real users.
Job Fair Pervasive Computing System Design Report
Page 22
Prototyping
Currently, a small scale version of the registration system has already been implemented, which
allows the registration of a random username and password. These two fields are stored into a
database table, which can be viewed either by using the Linux Mysql command, or by running a
PHP script to pull the information off the MySQL server.
See the Appendix section for the code of this prototype.
Employer Registration
Functional Requirements
Table 4 - Employer Registration Requirements
Requirement
Statement
Employer Registration Requirement 1
The registration system shall display a
registration form to the user, in which relevant
information can be entered.
Employer Registration Requirement 2
The system shall interpret the submitted
information via a PHP script.
Employer Registration Requirement 3
The PHP script shall also obtain the IP address
of the computer which submitted the form, in
order to make an association between that
computer and the company name entered in the
form.
Employer Registration Requirement 4
The system shall store the data into the
appropriate table on the database.
Employer Registration Requirement 5
The system shall not store any information in
the database if there is a problem or error with
any of the information entered by the user. The
user will be notified what went wrong during
the submission.
Input specification
 Company name

Major(s) which qualify for the job position(s)

Minimum year of student

Offering Internship/Co-op/Full-time employment
Job Fair Pervasive Computing System Design Report
Page 23
Obtaining the IP address will be handled by the PHP script, the employer does not need to enter it.
Output specification
 Confirmation message if the registration was successful.

Appropriate error message if there was a problem with the submission.
User interface specification
The interface will be an HTML form very similar to the student registration form, with the same
type of input fields.
Figure 9 - Employer Registration Web Submission Interface
Hardware or software specifications
Hardware and software requirements are minimal. If the employer’s laptop is connected to the
internet, they will be able to access the registration form.
Test plan
Testing will follow the same procedure as testing the student registration. It will be necessary to
ensure information is being properly entered into the database, and that errors in the data entered
are caught by the PHP script.
Job Fair Pervasive Computing System Design Report
Page 24
Prototyping
Since the basic functionality of the two registration systems are the same, the student registration
prototype should be adequate as far as prototyping of the registration system. For testing
purposes, the current registration prototype stores the IP address of the computer which registered
with the system, even though an IP is not needed for the student registration, but it ensures that
this will be possible when it comes to the final implementation.
Entrance Check-In
Get Tag
Swipe Tag
Entrance Check-In
Process
Link
username
with tag ID
Valid
Determine Tag
is unassociated
Enter Username
and Password
Check
Username
Password
Against
Database
Not Valid
Figure 10 - Entrance Check-In Process Diagram
The entrance check-in stage is after the student registration phase. It is when the student first
arrives at the career fair and wishes to obtain a tag for use in the system. The pre-registered
student will pick up a random tag, swipe it over the entrance check-in station’s RFID reader, and
then enter his or her username and password.
Job Fair Pervasive Computing System Design Report
Page 25
Functional Requirements
Table 5 - Entrance Check-In Requirements
Requirement
Description
Entrance Check-In Functional Requirement
1
The entrance check-in system shall give each
student a random Touchatag RFID tag.
Entrance Check-In Functional Requirement
2
The entrance check-in system shall perform the
association between student and tag based on
student registration username, password, and
tag id.
Entrance Check-In Functional Requirement
3
The entrance shall inform user of the success or
failure of his/her association.
Input specification
 Touchatag RFID tags
 Pre-Registered Student with username and password
 Touchatag RFID reader
 Desktop Computer with Desk
 Wireless Internet
 Server-side script
 Server Database
Output specification
 A Touchatag tag that has been associated with a corresponding student and his/her
information.
 User database has made the association between user and his/her tag.
User interface specification
The student will be given a random Touchatag tag. The tag, when swiped or placed on
the Touchatag scanner, will connect to the database and realize that the tag has not yet
been associated. This will trigger an action to send the browser to a “sign-in” screen
where the student will enter his/her username. After entering user information, the ID
will be associated with that particular user.
Hardware or software specifications
 Laptops must be able to connect to power source.
 Laptops must be connected to the wireless internet.
 Laptops must be running Windows XP or Vista.
 Laptops must have a working browser.
Job Fair Pervasive Computing System Design Report
Page 26
Employer Booth
Employer
Wireless Internet
Touchatag Reader
Tag
Student
Figure 11 - Employer Booth Setup
Figure 12 - Employer Action Sequence Diagram
Job Fair Pervasive Computing System Design Report
Page 27
Functional Requirements
Table 6 - Employer Booth Requirements
Requirement
Statement
Employer Booth Functional Requirement 1
The employer booth shall check in a student to
the booth he/she has just swiped at if he/she is
not already checked in to this particular booth.
Employer Booth Functional Requirement 2
The employer booth will update the database
with the student’s username, the employer that
the student visited, and time of check-in.
Employer Booth Functional Requirement 3
The employer station shall check out a student
if he/she is already checked in.
Input specification
 Touchatag RFID tag
 Employer entity
 Student entity
 Time
Output specification
 An updated database.
 In the case of checkout, a text message to the student if student has previously entered
SMS gateway information in the student pre-fair registration.
User interface specification
 No user interface besides the reader and tag.
Hardware or software specifications
 Laptops must be able to connect to power source.
 Laptops must be connected to the wireless internet.
 Laptops must be running Windows XP or Vista.
 Laptops must have a working browser.
Test plan
 Unit Testing of PHP scripts
 Boundary testing of PHP script inputs
 Stress testing the server to simulate multiple accesses to the database.
Prototyping
 Set up two employer laptops to simulate employer booths. Testing a tag that has already
been associated and swipe it at prototype employer booth and test to make sure that that
Job Fair Pervasive Computing System Design Report
Page 28
user has been entered into the system with appropriate values. Check that check-out
procedures work.
Terminals
Terminal Query
Terminal Computer
Touchatag Server
Server Script
Server Database
User logs in
Touchatag card id sent
Parameter returned
Connect to server with parameters from
Touchatag server
Connect to Server
Return connection Status
Connect to Database
Return DB Connection status
Query Database for info.
Return Status Info
List Appears on Screen
User initiates printing
Initiate time out
counter
User requests text
Request sent to server script
Connect to Server
SMPT Server
Return connection Status
Connect to Database
Return DB Connection status
Query Database for info.
Return Status Info
Request to send text message via email
Text sent to uer
Close connection after time out or user logs out
Figure 13 - Terminal Query Sequence Diagram
Functional Requirements
Job Fair Pervasive Computing System Design Report
Page 29
Table 7 - Terminal Requirements
Terminal Functional Requirement 1
Once a user authenticates, a terminal shall
initiate a connection to the server/database.
Terminal Functional Requirement 2
A terminal shall display on its monitor a list of
employers sorted by queue length, shortest
queue first.
Terminal Functional Requirement 3
A terminal shall allow for printing the list on a
printer
Terminal Functional Requirement 4
A terminal shall allow for instructing the server
to send a text message to the user’s cell phone
as to which employer to visit next.
Non-functional Requirements
Terminal Non-functional Requirement 1
Terminal Non-functional Requirement 2
A terminal shall not allow another user to
authenticate while a user is already using and
authenticated on the machine.
A terminal shall not accept input from a
touchatag reader if a user is already
authenticated on a machine until that user is
done.
Input specification
The input to a terminal shall be in one of two forms, swiping a Touchatag card over an attached
Touchatag reader, or entering user id via the terminals’ keyboard. Authentication can be made by
either input method; however, choosing the options of printing a list of employers and receiving a
text message must be made via the keyboard.
Output specification
The main output of a terminal shall be the list of employers, sorted by queue length and
applicable to the user, via the terminals monitor. The terminal shall also, upon user request, print
the list on a printer and/or instruct the server to send the user’s cell phone a text message as to
which employer to visit next.
Job Fair Pervasive Computing System Design Report
Page 30
User interface specification
By default the terminals monitor shall display a user sign in screen with one text entry box. Once
a user authenticates, by either manually entering his user id into the box, or swiping his
Touchatag card, the terminal shall display a form with the list of employers, a check box for
whether to send a text message to the user, a check box for printing the list and a done button.
When pressed, the done button returns the terminal to the login screen and optionally initiates
sending the text and printing the list.
Hardware or software specifications
Terminals shall be connected to a Touchatag reader, a printer, and a monitor. The terminal itself
shall be a PC running a version of Windows that is capable of interacting with the Touchatag
reader. The terminal shall also have a wireless networking card.
Test plan
Once a prototype has been built, all requirements of the terminal shall be tested. Testers shall test
the terminals functional requirements by attempting to authenticate themselves with a random
mix of valid and invalid user IDs by both the Touchatag reader, and the keyboard, both while a
user is already authenticated, and when the terminal is free. Testers shall also randomly request
printouts and texts. Testers shall ascertain while testing that a connection is established with the
server/database, the list displays on the Terminals monitor, that a printed copy of the list
displayed on the monitor is printed if requested to do so, and that a text message is sent if
requested. Testers shall ascertain that a terminal does not let a user log in while another user is
logged in. Testers shall ascertain that a terminal does not accept any input from the Touchatag
reader that is not initiated by the current user’s Touchatag card.
Prototyping
The prototype for the terminals shall be a fully functional terminal, capable of interacting with the
server/ database and printing the list of employers.
Resources
Material
Revised Resource Requirements
Table 8 - Revised Resource Requirements
Item
Number of Items
Cost
Poster
1
$40
Touchatag Readers (incl. tags)
3
$120
Job Fair Pervasive Computing System Design Report
Page 31
Terminal Computers
4
borrowing
Server Computer
1
free
Employer Laptops
2
borrowing
Totals
11
$160
Number of Items
Cost
Original Resource Requirements
Table 9 - Original Resource Requirements
Item
RFID Scanners
$80 ea.
Magnetic Card Readers
$70 ea.
$0.50 ea.
RFID Tags
Server Computer
1
$500
Terminal Computers
4
$500 ea.
Totals
5
$2650++
Labor
Original Personal Effort Requirements
Name
Total Hours
Costs (10$/hr)
Lee, Adam
200
$2000
Oakman, Nick
200
$2000
Subbu, Kartik
200
$2000
Semonis, Gabriel
200
$2000
800
$8000
Totals
Job Fair Pervasive Computing System Design Report
Page 32
Conclusion
By bringing together a large group of employers and students in one place, the job fair provides
valuable assistance to students looking for jobs and employers looking for employees; however,
these same large numbers can lead to inefficiency in students visiting employers. Students may
end up waiting in a long line to visit one employer while there is another employer with no wait
at all, or students could bypass an employer altogether because he didn’t know the employer
was recruiting for his major. By sending students to eligible employers with the shortest line, the
system will maximize the number of prospective employers the students visit, thereby
maximizing their chances of getting a job, and maximizing the number of eligible students that
employers meet.
References
[1] "RFID Journal"
Tikitag Becomes Touchatag, Adds Business Apps. 23 April 2009
<http://www.rfidjournal.com/article/articleview/4632/1/1/>.
[2] "touchatag" touchatag: Technical Overview. 23 April 2009
<http://www.touchatag.com/technical-whitepaper>.
Job Fair Pervasive Computing System Design Report
Page 33
Appendix
Database Table Diagram
Student Registration Sequence Diagram
Job Fair Pervasive Computing System Design Report
Page 34
Employer Registration Sequence Diagram
PHP Code for Prototype Registration System
Below is the PHP code for a prototype registration system which we have already developed.
Currently, it is just a simple username and password registration to demonstrate how to store data
into a MySQL database, and read the data back later. Obviously, the actual registration system
will incorporate more input fields. This also contains the tag identification and username
association, which will probably not change much in the final design.
index.php:
<html><body><h1>
<?php
$con = mysql_connect("localhost","sd",[password removed]);
if(!$con)
{
die('Error: Could not connect to database.');
}
mysql_select_db("seniord", $con);
$tagid = $_GET["id"];
$result = mysql_query("SELECT * FROM Associations
WHERE TagID=$tagid");
if ($_GET["id"] < 1000 || $_GET["id"] >= 2000)
{
echo "Tag ID " . $_GET["id"] . " is not between 1000 and 1999.";
echo "</h1>";
Job Fair Pervasive Computing System Design Report
Page 35
}
else
{
if($row = mysql_fetch_array($result))
{
echo $row['TagID'] . " is already registered to " . $row['Username'];
}
else
{
echo "</body><body OnLoad=\"document.f.name.focus();\">";
echo "Tag ID " . $_GET["id"] . " is currently unregistered.";
echo "<form name=\"f\" action=\"confirm.php?id=" . $_GET["id"] . "\"
method=\"post\">";
echo "</h1><br>Enter username: ";
echo "<input type=\"text\" name=\"name\" />";
echo "<br>Enter password: ";
echo "<input type=\"text\" name=\"pass\" />";
echo "<input type=\"submit\" value=\"Submit\" />";
echo "</form>";
}
}
mysql_close($con);
?>
</body></html>
confirm.php:
<html><body><h1>
<?php
$tagid = $_GET["id"];
$username = $_POST["name"];
$password = $_POST["pass"];
if($tagid < 1000 || $tagid >= 2000)
{
die('Error: ID must be between 1000 and 1999.');
}
if(!$username)
{
die('An error has occurred');
}
if(!$password)
{
die('An error has occurred');
}
$con = mysql_connect("localhost","sd",[password removed]);
if(!$con)
{
die('Error: Could not connect to database.');
}
mysql_select_db("seniord", $con);
Job Fair Pervasive Computing System Design Report
Page 36
$result = mysql_query("SELECT * FROM Register
ORDER BY Username ASC");
$result1 = mysql_query("SELECT * FROM Associations
ORDER BY TagID ASC");
$exists = 0;
$exists1 = 0;
while($row = mysql_fetch_array($result))
{
if($row['Username'] == $username)
{
$exists = 1;
$userpass = $row['Password'];
}
}
if($exists == 0)
{
echo "Username " . $username . " does not exist. Did you register?";
}
else
{
while($row1 = mysql_fetch_array($result1))
{
if($row1['Username'] == $username)
{
$exists1 = 1;
$tagid1 = $row1['TagID'];
}
}
if($userpass == $password)
{
if($exists1 == 1)
{
echo "Username " . $username . " is already ";
echo "associated with tag " . $tagid1 . ".";
}
else
{
mysql_query("INSERT INTO Associations (TagID, Username)
VALUES ('$tagid', '$username')");
mysql_close($con);
echo "Associated ";
echo $_GET["id"];
echo " with ";
echo $_POST["name"] . ".";
}
}
else
{
Job Fair Pervasive Computing System Design Report
Page 37
echo "Incorrect password for " . $username . ".";
}
}
?>
</h1></body></html>
register.php:
<html><h1>
<?php
$username = $_POST["username"];
$password = $_POST["password"];
$ip = $_SERVER['REMOTE_ADDR'];
if(!$username || !$password)
{
echo "<body OnLoad=\"document.f.username.focus();\">";
echo "Registration<br><br>";
echo "</h1>";
if($username)
{
echo "<font color=\"red\">";
echo "* Error: You did not enter a password.<br><br><br>";
echo "</font>";
}
else if($password)
{
echo "<font color=\"red\">";
echo "* Error: You did not enter a username.<br><br><br>";
echo "</font>";
}
echo "<form name=\"f\" action=\"register.php\" method=\"post\">";
echo "Enter desired username: ";
echo "<input type=\"text\" name=\"username\">";
echo "<br>Enter desired password: ";
echo "<input type=\"text\" name=\"password\">";
echo "<input type=\"submit\" value=\"Submit\">";
echo "</form>";
}
else
{
$con = mysql_connect("localhost","sd",[password removed]);
if(!$con)
{
die('Error: Could not connect to database.');
}
mysql_select_db("seniord", $con);
$result = mysql_query("SELECT * FROM Register
ORDER BY Username ASC");
$taken = 0;
while($row = mysql_fetch_array($result))
{
if($row['Username'] == $username)
Job Fair Pervasive Computing System Design Report
Page 38
{
$taken = 1;
}
}
echo "<body>";
if($taken == 1)
{
echo "Username " . $username . " is already taken.";
echo "</h1>";
}
else
{
mysql_query("INSERT INTO Register
VALUES ('$username', '$password', '$ip')");
echo "Registration completed normally.";
echo "</h1>";
echo "Username: " . $username;
echo "<br>Password: " . $password;
}
}
?>
</body></html>
Pseudo code for Next Visit Algorithm
student = current student
employers = array of employers from database (already ordered by queue
length)
function getNextEmployer
for all employers
if student.major is in employer.eligibleMajors and
student.classification is in
employer.eligibleClassifications and
student.jobTypeSeeking is in employer.jobTypesOffering and
student.visited(employer) == false
return employer
else
repeat for next employer
Job Fair Pervasive Computing System Design Report
Page 39
Download