Final Report - Senior Design

advertisement
Job Fair Pervasive Computing
System
Final 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 ...................................................................................................................... 8
Operating Environment ............................................................................................................... 8
Intended User(s) .......................................................................................................................... 8
Students.................................................................................................................................................. 8
Employers .............................................................................................................................................. 8
Administrators ....................................................................................................................................... 9
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 REGISTRATION ................................................................................................................ 11
EMPLOYER REGISTRATION ............................................................................................................. 12
MAIN ENTRANCE CHECK-IN .............................................................................................. 13
EMPLOYER BOOTHS ............................................................................................................ 14
TEXT-MESSAGING SYSTEM ............................................................................................... 15
TERMINALS ............................................................................................................................ 15
CENTRAL SERVER ................................................................................................................ 16
Design Specifications .................................................................................................................... 17
Touchatag™ .................................................................................................................................. 17
Job Fair Pervasive Computing System Design Report
Page 2
Functional Requirements ........................................................................................................... 17
Input specification ..................................................................................................................... 18
Output specification .................................................................................................................. 18
Hardware specifications ............................................................................................................ 18
Architectural Overview ............................................................................................................. 18
Application Correlation Service (ACS)................................................................................................ 19
ACS Data Repository ........................................................................................................................... 19
ACS TagID Dispatcher ........................................................................................................................ 19
ACS Block System ................................................................................................................................ 19
User interface ............................................................................................................................ 20
Touchatag™ basic fixed reader operation ................................................................................. 21
Project-Specific Touchatag™ utility: ........................................................................................ 22
Student Registration & Association .......................................................................................... 22
Functional Requirements ..................................................................................................................... 22
Input specification ............................................................................................................................... 23
Output specification ............................................................................................................................. 23
User interface specification ................................................................................................................. 23
Hardware or software specifications ................................................................................................... 23
Test plan .............................................................................................................................................. 23
Prototyping .......................................................................................................................................... 24
Employer Registration & Association ....................................................................................... 24
Functional Requirements ..................................................................................................................... 24
Input specification ............................................................................................................................... 24
Output specification ............................................................................................................................. 25
User interface specification ................................................................................................................. 25
Hardware or software specifications ................................................................................................... 25
Test plan .............................................................................................................................................. 25
Prototyping .......................................................................................................................................... 25
Entrance Check-In ..................................................................................................................... 26
Functional Requirements ..................................................................................................................... 26
Input specification ............................................................................................................................... 27
Output specification ............................................................................................................................. 27
User interface specification ................................................................................................................. 27
Hardware or software specifications ................................................................................................... 27
Employer Booth ........................................................................................................................ 28
Functional Requirements ..................................................................................................................... 29
Input specification ............................................................................................................................... 29
Output specification ............................................................................................................................. 29
User interface specification ................................................................................................................. 29
Hardware or software specifications ................................................................................................... 29
Job Fair Pervasive Computing System Design Report
Page 3
Test plan .............................................................................................................................................. 29
Prototyping .......................................................................................................................................... 29
Terminals ................................................................................................................................... 30
Functional Requirements ..................................................................................................................... 30
Non-functional Requirements .............................................................................................................. 31
Input specification ............................................................................................................................... 31
Output specification ............................................................................................................................. 31
User interface specification ................................................................................................................. 31
Hardware or software specifications ................................................................................................... 32
Test plan .............................................................................................................................................. 32
Prototyping .......................................................................................................................................... 32
Implementation ............................................................................................................................. 32
Registration ............................................................................................................................... 32
Student Registration ............................................................................................................................ 32
Employer Registration.......................................................................................................................... 33
Association ................................................................................................................................ 35
Employer Stations...................................................................................................................... 36
Terminals ................................................................................................................................... 36
Career Fair Console ....................................................................................................................... 38
Database .................................................................................................................................... 40
Student and Employer Registration Tables .......................................................................................... 41
Student and Employer Association Tables ........................................................................................... 41
Employer Queue Length Table ............................................................................................................ 41
Employers Visited Table ...................................................................................................................... 41
Student-Employer Table ...................................................................................................................... 42
Database Technical Details ................................................................................................................. 42
Logging into MySQL............................................................................................................................ 42
Viewing and Deleting Data.................................................................................................................. 42
Algorithm .................................................................................................................................. 43
Matching Algorithm ............................................................................................................................. 43
Testing ........................................................................................................................................... 44
Results ........................................................................................................................................... 44
Requirements ............................................................................................................................. 44
Conclusions ............................................................................................................................... 44
Demo .................................................................................................................................................... 44
Considerations ..................................................................................................................................... 44
Resources....................................................................................................................................... 45
Material ..................................................................................................................................... 45
Job Fair Pervasive Computing System Design Report
Page 4
Revised Resource Requirements .......................................................................................................... 45
Labor ......................................................................................................................................... 45
Personal Effort Data............................................................................................................................ 45
Conclusion ..................................................................................................................................... 46
References ..................................................................................................................................... 46
Appendix ....................................................................................................................................... 47
Database Table Diagram ........................................................................................................... 47
Student Registration Sequence Diagram ................................................................................... 47
Employer Registration Sequence Diagram................................................................................ 48
Old PHP Code for Prototype Registration System .................................................................... 48
index.php: ............................................................................................................................................ 48
confirm.php: ........................................................................................................................................ 49
register.php: ........................................................................................................................................ 51
Pseudo code for Next Visit Algorithm ....................................................................................... 52
List of Tables
Table 1 - Definitions........................................................................................................................ 6
Table 2 - Touchatag™ Requirements ............................................................................................. 17
Table 3 - Student Registration Requirements ............................................................................... 22
Table 4 - Employer Registration Requirements............................................................................. 24
Table 5 - Entrance Check-In Requirements ................................................................................... 26
Table 6 - Employer Booth Requirements ...................................................................................... 29
Table 7 - Terminal Requirements .................................................................................................. 31
Table 8 - Revised Resource Requirements .................................................................................... 45
List of Figures
Figure 1 Student Registration ........................................................................................................ 12
Figure 2 - Employer Registration ................................................................................................... 13
Figure 3 Touchatag™ .................................................................................................................... 14
Figure 4 Touchatag™ Reader........................................................................................................ 14
Figure 5 - Output from Terminal ................................................................................................... 16
Figure 6: Touchatag™ end-to-end architecture [2]......................................................................... 19
Figure 7: Touchatag™ Dashboard user interface .......................................................................... 21
Figure 8: Touchatag™ basic fixed reader operation ..................................................................... 21
Job Fair Pervasive Computing System Design Report
Page 5
Figure 9 - Entrance Check-In Process Diagram ............................................................................ 26
Figure 10 - Employer Booth Setup................................................................................................ 28
Figure 11 - Employer Action Sequence Diagram ......................................................................... 28
Figure 12 - Terminal Query Sequence Diagram ........................................................................... 30
Figure 13- Student Registration..................................................................................................... 34
Figure 14 - Employer Registration ................................................................................................ 35
Figure 15 - Tag Association .......................................................................................................... 36
Figure 16 - Employer Station Representation ............................................................................... 36
Figure 17 - Terminal Screenshot with Desktop ............................................................................. 37
Figure 18-Terminal Input Form..................................................................................................... 37
Figure 19-Terminal Result Form (incorrect information) ............................................................. 38
Figure 20 - Career Fair Console .................................................................................................... 39
Figure 21 - Database Diagram ....................................................................................................... 40
Figure 22 - Hours Worked Distribution ........................................................................................ 46
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
Job Fair Pervasive Computing System Design Report
Page 6
API
Application Programming Interface
NFC
Near Field Communication
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
ensuring students meet with the right set of employers, and vice-versa becomes essential.
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.
Job Fair Pervasive Computing System Design Report
Page 7
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
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 Touchatag™
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 Touchatag™ 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 such as resume of students and the number of students
visited so far to the booth will be made available
Job Fair Pervasive Computing System Design Report
Page 8
Administrators
The third types of users are the administrators of the servers and other people with special access
to the transactional data. These users can modify the settings and the functionalities of the system.
These users will be individuals with highly-specialized skill sets and have a fully functional
knowledge of the Linux OS, MySQL, PHP scripting, and TCP/IP and HTTP protocols.
Intended Use(s)
Each type of user can use the system in a variety of ways. The three intended 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.
 Dequeue a student out of an employer’s booth by either swiping an RFID tag, 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
 Query the system to find out how many potential employees have visited them.
 Query the system to retrieve a list of resumes of potential employees who visited.
Third use
 Troubleshoot non-performance and system efficiency issues.
 Oversee functioning of the system during, before and after the career fair.
 Resolve issues involving the Touchatag™ 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.
Job Fair Pervasive Computing System Design Report
Page 9




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.
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 REGISTRATION
The student can register for the career fair in the convenience of his/her home. By going to the
“Student
Registration
Page”
at
http://dec0912.ece.iastate.edu/jobfairsystem/studentregistration.html, the student can register by entering details like username, password,
classification, major, job-type, phone number and carrier(optional), and also attach a resume for
the employer to see. (see figure 1 under “Screenshots”)
Usernames must be unique, there are no restrictions on passwords, classification includes
freshman up to graduate student; majors supported include:











Chemical Engineering
Computer Engineering
Software Engineering
Electrical Engineering
Industrial Engineering
Mechanical Engineering
Aerospace Engineering
Civil Engineering
Construction Engineering
Agricultural Engineering
Biosystems Engineering
After a student has registered, he/she may change his/her information by using his/her username
and
password
on
the
“Update
Student
Information
Page”
http://dec0912.ece.iastate.edu/jobfairsystem/student_login.html.
There is a link to this page at the bottom of the “Student Registration Page”.
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.
Job Fair Pervasive Computing System Design Report
Page 11
Figure 1 Student Registration
EMPLOYER REGISTRATION
Employers
can
register
before
the
career
fair
by
going
to
http://dec0912.ece.iastate.edu/jobfairsystem/employer-registration.html and inputting their name,
password, and hiring criteria and positions. Employers may not re-register or change their
information after registration. (See figure 2 under “Screenshots”)
The employers are identified based on the Internet Protocol (IP) address, a unique 32-bit address
of the machine on the Ethernet network. Associating the specific IP address to the employer
before the career fair will primarily be performed once the employers are registered.
Job Fair Pervasive Computing System Design Report
Page 12
Figure 2 - Employer Registration
MAIN ENTRANCE CHECK-IN
The main entrance check-in module refers to the main entrance of the career fair where students
usually swipe their ISU cards to get their name tags. At the main entrance check-in, the student
enters the unique password received during pre-career fair registration to receive a unique lowrange RFID tag (Touchatag™) as shown in Figure
Job Fair Pervasive Computing System Design Report
Page 13
Figure 3 Touchatag™
The tag is associated to the student at this stage by using the Touchatag™ 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 once they receive a text message update. To queue oneself at any
employer booth the students must swipe their tags over a Touchatag™ reader (one reader
provided for each employer) as shown in Figure 3
Figure 4 Touchatag™ 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.
Job Fair Pervasive Computing System Design Report
Page 14
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 types 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. The system will 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.
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 Touchatag™
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.
Job Fair Pervasive Computing System Design Report
Page 15
Figure 5 - Output from Terminal
CENTRAL SERVER
The central server is 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 16
Design Specifications
Touchatag™
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
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
Job Fair Pervasive Computing System Design Report
Page 17
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
NFC-enabled 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 18
Figure 6: 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 19
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 20
Figure 7: Touchatag™ Dashboard user interface
Touchatag™ basic fixed reader operation
Figure 8: Touchatag™ basic fixed reader operation
1.
A tagged object is detected by the fixed Touchatag™ USB reader.
Job Fair Pervasive Computing System Design Report
Page 21
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 Touchatag™ 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 & Association
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 22
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
 Password
 Classification
 Major
 Seeking Internship/Co-op/Full-time
 Cell Phone Number and Carrier
 Resume
Output specification
 Confirmation and 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.
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
Job Fair Pervasive Computing System Design Report
Page 23
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.
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 & Association
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
Job Fair Pervasive Computing System Design Report
Page 24

Major(s) which qualify for the job position(s)

Minimum year of student

Offering Internship/Co-op/Full-time employment
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.
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.
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.
Job Fair Pervasive Computing System Design Report
Page 25
Entrance Check-In
Get Tag
Swipe Tag
Entrance Check-In
Process
Link
username
with tag ID
Determine Tag
is unassociated
Enter Username
and Password
Check
Username
Password
Against
Database
Valid
Not Valid
Figure 9 - 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.
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
Job Fair Pervasive Computing System Design Report
Page 26
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 27
Employer Booth
Employer
Wireless Internet
Touchatag Reader
Tag
Student
Figure 10 - Employer Booth Setup
Figure 11 - Employer Action Sequence Diagram
Job Fair Pervasive Computing System Design Report
Page 28
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 29
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 12 - Terminal Query Sequence Diagram
Functional Requirements
Job Fair Pervasive Computing System Design Report
Page 30
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
A terminal shall not allow another user to
authenticate while a user is already using and
authenticated on the machine.
Input specification
The input to a terminal shall be in form of 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.
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 manually entering his user id into the box, 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.
Job Fair Pervasive Computing System Design Report
Page 31
Hardware or software specifications
Terminals shall be connected to a printer, and a monitor. The terminal shall also have a wireless
networking card for access to the internet.
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 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.
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.
Implementation
Registration
Student Registration
The student can register for the career fair in the convenience of his/her home. By going to the
“Student Registration Page” at http://dec0912.ece.iastate.edu/jobfairsystem/studentregistration.html, the student can register by imputing username, password, classification, major,
job-type, phone number and carrier(optional), and also attach a resume for the employer to see.
(see figure 1 under “Screenshots”)
Usernames must be unique, there are no restrictions on passwords, classification includes
freshman up to graduate student; majors supported include:











Chemical Engineering
Computer Engineering
Software Engineering
Electrical Engineering
Industrial Engineering
Mechanical Engineering
Aerospace Engineering
Civil Engineering
Construction Engineering
Agricultural Engineering
Biosystems Engineering
Job Fair Pervasive Computing System Design Report
Page 32
After a student has registered, he/she may change his/her information by using his/her username
and password on the “Update Student Information Page”
http://dec0912.ece.iastate.edu/jobfairsystem/student_login.html.
There is a link to this page at the bottom of the “Student Registration Page”. It will be used by
students who have:

Selected a wrong major

Need to update their uploaded resume

Need to change or add their telephone number
Employer Registration
Employers can register before the career fair by going to
http://dec0912.ece.iastate.edu/jobfairsystem/employer-registration.html and inputting their name,
password, and hiring criteria and positions. Employers may not re-register or change their
information after registration. (See figure 2 under “Screenshots”)
Job Fair Pervasive Computing System Design Report
Page 33
Figure 13- Student Registration
Job Fair Pervasive Computing System Design Report
Page 34
Figure 14 - Employer Registration
Association
Association describes the stage in which students can link their tag ID to their profiles and
information submitted during the registration phase. Drawing from a random pile of tags which
each have their own ID in our system, they will swipe the tag over the “Association Terminal”
RFID scanner and, knowing that this station is not associated with an employer; our PHP script
directs users to input their username and password.
Job Fair Pervasive Computing System Design Report
Page 35
Figure 15 - Tag Association
Employer Stations
Employer stations were implemented to provide functionality to our system, spatially placed
according to employer locations – these stations are not owned by the employer but by our system.
The figure below represents roughly how this will look.
Figure 16 - Employer Station Representation
Terminals
Terminals are used for students to check an updated list of which employers to visit next. Notice
the figure below and the lack of explorer, giving users only the option of using the machine for its
intended functionality. Terminals in our system are used by job-seeking students to get an
updated list of who to visit next. They can be either desktops or laptops, and do not require an
RFID reader to function. In order to decrease the chance that someone will use these terminals for
other reasons than it was intended for, terminals will have their “explorer” process killed – giving
them no access to functions such as the start menu, web browsers, etc.
The terminal program is itself a program that directs an internal web browser to a specified site
and only the specified site.
Job Fair Pervasive Computing System Design Report
Page 36
Figure 17 - Terminal Screenshot with Desktop
Realizing there might be some mischievous characters at the career fair we removed the controls
on this main form, resulting in the figure below.
Figure 18-Terminal Input Form
Job Fair Pervasive Computing System Design Report
Page 37
After users enter their username and password, provided the information entered is correct they
will be directed to a new form which includes their next-to-visit information. If the users enter the
wrong password they will be shown a screen indicating so. If at any time a user closes the result
form by clicking the X button at the top-right, the original prompt for username and password
will re-appear. For the code, please see the appendix.
Figure 19-Terminal Result Form (incorrect information)
Career Fair Console
The career fair console program is used to monitor some of the databases used in our project for
debugging purposes. Please not that in a real implementation a different method would be used to
store passwords in our databases then the way used now – which is easier for testing as we must
input a variety of users where passwords can get confusing if we want variety.
Job Fair Pervasive Computing System Design Report
Page 38
Figure 20 - Career Fair Console
Job Fair Pervasive Computing System Design Report
Page 39
Database
Figure 21 - Database Diagram
The database is used for permanent storage of any information needed by the system. It is split
into seven tables which are described below. MySQL was used for the database since it is free
Job Fair Pervasive Computing System Design Report
Page 40
software and is easily accessed by PHP scripts. For security reasons, the database runs on the
same computer as the HTTP server, and is only locally accessible.
Student and Employer Registration Tables
These two tables are used for storing pre-fair registration information. The columns correspond
to the types of information collected on the registration forms. For both tables there are columns
for a username (or company name), password, class, major, and position. The username and
password are used to verify the user during the association phase, and the other columns are used
by the matching algorithm to find which employer(s) a student should visit next. Additionally, the
student registration table contains other information including a phone number and provider, for
text messaging service, and also a resume filename.
Student and Employer Association Tables
These two tables contain the data stored during the association phase. For students, this consists
of the username and tag ID. For employers: the company name, IP address, and booth number.
When a student swipes their tag at an employer booth, the student association table is used to find
the username which corresponds to that specific tag. Likewise, with the employer association
table, the corresponding company can be found using the IP address of the computer which has
accessed the system. Finally, the booth number is entered simply for the convenience of the
students, to make it easier to locate a certain company.
Employer Queue Length Table
This table is used to keep track of the current queue length of each company. The PHP script
containing the matching algorithm takes this information in ascending order of queue length, to
ensure that student-employer matches are returned lowest queue length first. This table also
stores the total number of visits to each company. This information is not used during the career
fair, but may be useful afterwards to assess whether the system has accomplished its purpose of
allowing students to visit more employers, and employers to talk with more students. Ideally, the
difference in the number of visits between companies should be small.
Employers Visited Table
The main purpose of this table is to prevent the matching algorithm from returning the name of a
company which the student has already visited. The first column contains the username of
students. The second column is blank at the start of the fair, and each time a student visits an
employer, the company name is appended to this column.
Job Fair Pervasive Computing System Design Report
Page 41
Student-Employer Table
The difference between this table and the previous one is that in this table, the second column
only holds the name of the company that the student is currently visiting, or enqueued to visit.
After checking out of a booth, the company name is removed and the column is blank. An extra
feature of this system is the ability for employers to obtain the names of students currently
waiting in line, and download their résumé if they uploaded one. Searching this table for
columns equal to the name of a certain company will determine the names of students waiting in
line at that company.
Database Technical Details
Before the start of the career fair, the database should be returned to its initial state, in which all
tables contain zero rows. The PHP scripts take care of adding any entries to the database. For
instance, after a successful submission of the registration form, a new row is added to either the
student or employer registration table containing the submitted information. When a student
associates their username with a tag, a new row is added to the student association table, and
additionally, to the employers visited and student-employer tables. Likewise, when an employer
associates their company name with their IP address, information is added to the employer
association table as well as the employer queue table with the initial values of zero for queue
length and total visits.
Under normal circumstances, manual intervention of the database is not needed nor
recommended, as undesirable behavior of the system may result. However, if a situation should
arise where this is necessary, for instance to clear the tables before starting the registration phase,
some basic information about modifying the database is described in the following subsections.
Logging into MySQL
First, it is necessary to be logged into the server which is running the MySQL daemon. From a
terminal, issue the command:
mysql –user=[username] –pass=[password]
Where [username] and [password] are replaced with the correct values. At this point, a “mysql>”
prompt should be displayed. Before viewing or modifying tables, the desired database must be
selected first using the command “use [database name]”. If the name of the database is not
known, the command “show databases;” will display a list of all databases currently installed. So,
if the name of the database is “jobfairsystem,” then the command will be “use jobfairsystem”.
Viewing and Deleting Data
Once the database has been selected, the command “shows tables;” will display all tables
contained within the current database. To view the columns and any entries within a specific
table, issue the command:
SELECT * FROM [table name];
If the table is not empty, then all rows and columns in the table will be displayed.
If it is desirable to clear the database:
DELETE FROM [table name];
should be issued for every table in the database. Additionally, the “WHERE” clause can be used
to delete only rows which match a certain value. For instance:
Job Fair Pervasive Computing System Design Report
Page 42
DELETE FROM [table name] WHERE [column]=[value];
There are many other commands that can be used to modify the database tables, and describing
all of them is beyond the scope of this document. Any SQL reference should be useful for this.
However, as stated earlier, it should normally not be necessary to manually modify the database
in any way. Also it is very important that nothing is deleted or changed in the database while the
career fair is currently taking place.
Algorithm
Matching Algorithm
Purpose
Given the username of a student, the matching algorithm searches all companies for at least one
match in three different variables. These variables are classification, major, and job type. So for
instance, a junior in Computer Engineering searching for an internship will be matched with
companies offering internships for Computer Engineers who are junior classification or lower.
The top three matches are returned in lowest-queue-length-first order to the student, either
through a terminal, or by text messaging. A particular company name will not be returned if the
student has already visited the booth for that company. The matching algorithm is the main part
of solving the job fair coordination problem. Returning a suggested list of employers to visit next
helps eliminate wasted time waiting in lines and/or walking around trying to determine which
employer to talk to next.
Implementation
The algorithm is defined within a function called getNextEmployer. Since the function is needed
by more than one section of the system, it is defined in its own PHP file and included wherever
necessary using the PHP include function. The function takes two parameters, the first one being
the username of the student. The second determines whether to send a text message. A value of 0
denotes no text message, and 1 denotes send a text message. Text messages are sent when
checking out of an employer booth, unless a student has chosen not to enter their phone number
when registering. Also, a student can choose whether or not to receive a text message when
viewing next employer results at a terminal.
Values for classification, major, and job type are taken from the registration tables. These string
values are then converted to numerical values in powers of two. The reason for this is that
matching can be done simply by performing a bitwise AND operation, which is more efficient
than doing several string comparisons.
The company queue length table is used to check the current queue length of a company. In
MySQL, it is possible to retrieve data in ascending or descending order of the value in some
column. In this case, the table is fetched in ascending order of queue length. This way, any
matches are automatically in the correct order of lowest-queue-length first.
Finally, a single string check in the second column of the employers-visited table can determine
whether the student has already visited the company in question. If they have, then the company
Job Fair Pervasive Computing System Design Report
Page 43
is not returned and the algorithm continues until three matches are found or the end of the
employer list is reached.
Testing
Most of our testing was done in the design phase, such as input validity testing and boundary
testing. We checked out quite a number of laptops to test a number of systems using our system at
the same time with multiple users.
Results
The team successfully presented a fully functional demo of the system to the Industry Review
Panel (IRP) on Dec 10, 2009. All the components of the system worked well in unison to give the
panelists an effective, error-free and unique experience while using it as prospective students.
The team provided a prototype demonstration of which the requirements and results/conclusions
are provided as under-
Requirements
6 laptops (wirelessly connected to the Internet and Touchatag™ software installed on all of them)
3 Employer booths
1 Pre-career fair registration booth,
1 Terminal,
1 Main Entrance Check-in
1 Database Tables Snapshot Display Screen
The team borrowed the required laptops from the advisor, Professor Qiao – Ph.D.
Conclusions
Demo
The team successfully hosted 42 visitors in total to the three employer booths (with 15 unique
visitors) to their system without any technical glitches. The discrepancy is explained by users
testing the system multiple times. All users had a good experience when questioned at the end
about our project. All the components of the system as mentioned in the requirements survived
stress testing, responded appropriately to invalid inputs and helped the visitors throughout their
experience via the text messaging system or the use of the terminals.
Considerations
The same team that demoed our system also provided useful feedback as to the improvements we
could make. They include:

Integrate customer feedback into the system
Job Fair Pervasive Computing System Design Report
Page 44

Allow for users to define preferences for employers besides key requirements/criteria

Privacy issues, such as users being able to see who was at the employer before them,
should be addressed

The question of large scale implementation and real-case testing came up in the IRP
presentation
Resources
Material
Revised Resource Requirements
Table 8 - Revised Resource Requirements
Item
Number of Items
Cost
Poster
1
$0
Touchatag™ Readers (incl. tags)
3
$120
Terminal Computers
4
borrowing
Server Computer
1
free
Employer Laptops
2
borrowing
Totals
11
$160
Labor
Personal Effort Data
Job Fair Pervasive Computing System Design Report
Page 45
Figure 22 - Hours Worked Distribution
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 46
Appendix
Database Table Diagram
Student Registration Sequence Diagram
Job Fair Pervasive Computing System Design Report
Page 47
Employer Registration Sequence Diagram
Old 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 48
}
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 49
$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 50
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 51
{
$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 52
Download