A Portable & Intelligence Interview System 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 & Related Work
Background Difficulties: Develop an All-in-one Application 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
Objective Diversity Portability Intelligence Functionalities to manage information Portability Handling of bad network connection problem Intelligence Analysis on interviewee
How to Achieve
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 Data-mining Presentation of pass data in Charts Comparison among different years of data Data-mining Text Mining Naïve Bayes Classifier
Development Platform
Development Platform LAMP Ubuntu, Apache Server, MySQL, PHP5 Developed for a long time Free & Open-source software
Development Platform MVC Model CodeIgniter Model View Controller 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: None (Manual Configuration needed) Key Binding: Alt-Insert
About Our Application
Business Flow Preparation phase System admin (root) create new round Add staff (helpers / reviewers) to new round Accept student applicants Business Flow Preparation phase
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 On-site interview phase
Business Flow Post on-site interview Sundry Item Email Functionality Review student’s full record Automated analysis (on-site comment analysis, map analysis, chart analysis) Email Functionality
Special Feature Video Conferencing Video Recording 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 Comment Analysis Chart 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 Email Student view application
Geolocation with Unstable/NO System Architecture (fyp14003s1.cs.hku.hk) Online Module @ HKUCS Database Web Server + WebRTC Node JS server Internet Geolocation with Unstable/NO Internet Access HTTPS HTTPS Interview round management User account management Comments and video management Analysis Email functionality Sync Student Applicant Info. / Upload Onsite Comment and Video Manage student applicants’ onsite interview comment and video View student applicants’ information Offline Module 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
Other Technologies Utilized
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 Encryption is mandatory 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
Technologies Utilized 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.
Demo
Conclusion
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 Cross year analysis 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 Pre-interview conferencing 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
FAQ Section
Reference SSL how to import cert to Java Keystore: http://letmehelpyougeeks.blogspot.hk/2009/07/adding-servers-certificate-to- javas.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-certificate- on-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/
Thank you!