Supervisor: Dr. Cheng Reynold
Cheng Man Fung Kevin 3035042423
Fung Chin Pan 3035044641
Lau Hiu Tsun 3035042423
Tso Hei Lok 3035043738
Agenda
Background & Related Work
Objectives
How to Achieve
Development Platform
About Our Application
Other Technologies Utilized
Demo
Conclusion
Background
Difficulties:
Manually Paper Work Process
Time-consuming & costly
Onsite Interview Site Problem
Bad Network Connection Problem
Decision Making
How to select a right candidate
Develop an All-in-one Application
Related Work
Existing System
Management of the applicants’ information
Improvement on user interface & presentation of data
Face-to-face Interview
No functionality on Video Conferencing & Recording
Related Work
Existing Product
Some may include
Video conferencing function
Analysis on the effectiveness and consistency across interviewers
Excellent interfaces on managing applicants’ information
Combined them all together, we get a Portable and Intelligent Interview System !!
Objective
Diversity
Functionalities to manage information
Portability
Handling of bad network connection problem
Intelligence
Analysis on interviewee
How to Achieve
Diversity
All-in-one System
Text processing, video conferencing, recording & etc.
A Server allowing access from around the world
Keeping information inside confidential
How to Achieve
Portability
Online System
Offline System
To handle bad network environment
Simple to use
How to Achieve
Intelligence
Statistical Analysis
Presentation of pass data in Charts
Comparison among different years of data
Data-mining
Text Mining
Naïve Bayes Classifier
Development Platform
LAMP
Ubuntu, Apache Server, MySQL, PHP5
Developed for a long time
Free & Open-source software
Development Platform
MVC Model
Model
View
Controller
CodeIgniter
Build-in libraries
Developed for years
IntelliJ IDEA over Eclipse IDE
Smarter auto-completion
Class name / method signatures / variables
IntelliJ IDEA over Eclipse IDE
Optimized Default Controls for Keyboard
Refactoring, error fixing, generation of code
Key Binding:
Alt-Insert
Key Binding:
None (Manual
Configuration needed)
Business Flow
Preparation phase
System admin
(root) create new round
Add staff
(helpers / reviewers) to new round
Accept student applicants
Business Flow
Pre-interview phase
Helpers provide summary to student applicants (helper’s comment)
Reviewers have a chat by conferencing with the student applicants of interest
Staff add new students manually if necessary
Business Flow
On-site interview phase
Student
Applicants’ information prepared
Conduct interview and record with video functionality
/ camcorder
Manage comments and interview videos
(Optional, for offline module only)
Upload comments and interview videos
Business Flow
Post on-site interview
Review student’s full record
Automated analysis (on-site comment analysis, map analysis, chart analysis)
Sundry Item
Email Functionality
Special Feature
Video Conferencing
Impossible to arrange interviews for all the applicants
Video Recording
Difficult for some of the reviewers to participate the onsite interview
Special Feature
Secure Socket Layer (SSL)
application layer confidentiality
symmetric key encryption
protection against network packet capturing software
Special Feature
Analysis
Map analysis
Distribution of the location of university of current year applicants
Comment Analysis
Suggestion of whether the student applicants should be accepted or not
Chart analysis
Statistical information of current round for better planning and coordination in future
No-Network Capability
Endure the unstable, low bandwidth or even no network situation
Develop offline module
Manage onsite comments and interview videos
Upload the managed comment with one click when network is stable
Minor items
Student list filtering
Student view application
View application
System Architecture
(fyp14003s1.cs.hku.hk)
Online Module @ HKUCS
Database
Web Server
+
WebRTC
Node JS server
Interne t
Interview round management
User account management
Comments and video management
Analysis
Email functionality
Offline
Module
Geolocation with
Unstable/NO
Internet Access
Manage student applicants’ onsite interview comment and video
View student applicants’ information
Bring back
Bring into
Database Design
Model View Controller (MVC) pattern
Passive view model
Controller: communicating component
View component: presentation of data
Model: logical evaluation
Views further organized
Advantage: separation of code
Decorator Pattern
Helps filtering of student applicants list
Reduces number of subclasses by decorator chaining
Improves code quality
What is WebRTC?
Free
open source
Real-Time Communications (RTC)
Why WebRTC?
No plug-in
open source
free
Standardized
efficient
WebRTC work on?
Chrome
Opera
Firefox
WebRTC applications do
Get streaming
Audio
Video
Other data
WebRTC applications do
Get network information
IP address
Ports
Coordinate signaling communication
Exchange information about media
Communicate streaming
WebRTC implements APIs
MediaStream
Audio
Video
RTCPeerConnection
establish communication channel
RTCDataChannel
prepare for signaling
MediaStream
synchronized streams of media
Signaling
not specified by WebRTC standardize
Choose by WebRTC app developer
Session Initiation Protocol (SIP)
Extensible Messaging and Presence Protocol (XMPP)
XMLHttpRequest (XHR)
(We use Socket.io running on a Node server)
Signaling
Exchange three types of information
Session control messages
Network configuration
Media capabilities
RTCPeerConnection
Make the communication of streaming data between peers.
Stable
efficient
Something about the system
Socket.io running on a Node server
currently support 1 to 1 conferencing
RecordRTC
JavaScript-based media-recording library
A recording solution
Security
Problems
Man in middle
Data access right issue
Malware or viruses might be installed
WebRTC’s Security
secure protocols
Datagram Transport Layer Security (DTLS)
The Secure Real-time Transport Protocol (SRTP)
Encryption is mandatory
Not a plug-in
Media access must be granted explicitly
Reviewers’ comment analysis
Naïve Bayes Classification
Efficient
Tutorials from the internet
Data preparation
Classified comments into positive and negative
Extract words
Calculating Conditional Probabilities
Find the largest value to determine the class
Reviewers’ comment analysis
Testing
75% training data, 25% testing data
24 testing comments (21 positive, 3 negative)
Accruacy 90%
19 positive, 5 negative
21 positive comments, 19 of them are classified as positive
3 negative comments, all of them are classified as negative
Google map geolocation
Send a request to google server
Short form or full name also accepted
HKU and The University of Hong Kong
Receive response
Put a marker on the map
Google Chart API
Show Statistical data
Loading some Google Chart Library
Input data
Select options
Create chart object
Showed on javascript
Apache HTTPClient
Construction of HTTP GET and POST messages
GSON
JSON parsed into and from java object
Guava
Creation of structured constant maps by collection builder.
Progress- completed
Online System
E-mail system
Video conferencing
Onsite and pre-interview video uploading
Search form of students
Managing accounts
Managing rounds
Analysis on reviewers’ comment
Reading and modifying comments
WebRTC recording in Firefox
Progress- completed
Offline system
Synchronization with online system
Video saving
Viewing student information
Modifying reviewers’ comments
Progress- under development
Google map analysis
Cross-year analysis
UI design
Statistical analysis
Progress- to be implemented
Beta version for professor testing
Smoke test has done
Need further testing for its robustness
We are glad to receive feedbacks for improvement
Study WEKA for data mining
Video recording in Google Chrome
“walk-in” student support
Pre-interview conferencing
Future Development
WEKA
a collection of machine learning algorithms
applied directly to a dataset
Java code
data pre-processing, classification, regression, clustering, association rules, and visualization
Cross year analysis
Provide more statistical information
Future Development
“Walkin” student support
Student who did not register
Offline system support
Pre-interview conferencing
No way to invite a student to start a conferencing
Solution
A dialog box to accept the conferencing
Possible Difficulties
Reviewers comment analysis
Accuracy
<100 student information
75% training data, 25% testing data
Large variance
Need more data from next few years
Possible Difficulties
Consistency
RecordRTC
Firefox
Record video and audio in one file
Chrome
Record video and audio in one file separately
Solution
FFmpeg
An application can merge media file
Support most of the file type
Webm
Wav
Reference
SSL how to import cert to Java Keystore: http://letmehelpyougeeks.blogspot.hk/2009/07/adding-servers-certificate-tojavas.html
XAMPP: SSL Encrypt the Transmission of Passwords with https: http://robsnotebook.com/xampp-ssl-encrypt-passwords
How To Create a SSL Certificate on Apache for Ubuntu 14.04: https://www.digitalocean.com/community/tutorials/how-to-create-a-ssl-certificateon-apache-for-ubuntu-14-04
Apache HTTP Client: http://hc.apache.org/httpcomponents-client-ga/index.html
Google GSON: https://code.google.com/p/google-gson/
Google Guava: https://code.google.com/p/guava-libraries/
Decorator Pattern: http://en.wikipedia.org/wiki/Decorator_pattern
IntelliJ IDEA: https://www.jetbrains.com/idea/