We want to cut down the role of middleman as well as helpthe bottom and middle level students because we think that companies and ITstudents are a community and being in a community is t
Trang 1VIETNAM NATIONAL UNIVERSITY HOCHIMINH CITY
UNIVERSITY OF INFORMATION TECHNOLOGY
ADVANCED PROGRAM IN INFORMATION SYSTEMS
TRAN ANH TUẦN - 16521386
TAT QUANG VU - 16521459
A JOB MATCHING SYSTEM FOR
INTERNSHIP MANAGEMENT
BACHELOR OF ENGINEERING IN INFORMATION SYSTEMS
HO CHI MINH CITY, 2020
Trang 2NATIONAL UNIVERSITY HOCHIMINH CITY
UNIVERSITY OF INFORMATION TECHNOLOGY
ADVANCED PROGRAM IN INFORMATION SYSTEMS
TRAN ANH TUẦN - 16521386
PH.D Nguyén Thanh Binh
HO CHI MINH CITY, 2020
Trang 3ASSESSMENT COMMITTEE
The Assessment Committee is established under the Decision „ date
"—— - by Rector of the University of Information Technology
1 Assoc Prof Dr Nguyen Dinh Thuan - Chairman
2 Dr Cao Thi Nhan - Secretary
3 _ Dr Ngo Duc Thanh - Member
Trang 4First of all, we would like to express our grateful attitude to the entire InformationSystem faculty staffs for helping us since we set our foot in this school During thetime since my first year up to now, we have received a lot of help, not only fromteachers but also from the infrastructure staff
In particular, we would like to express my thanks to Dr Nguyen Thanh Binh who
helped us a lot with our graduation thesis Thanks to the suggestions and corrections
he gave us, we can overcome our own drawbacks and errors for a better outcome ofgraduation thesis
Besides, we would like to say thanks to our families, friends, others teacher foralways cheer us up and willing to give us a hand whenever we are in needed
During the process of research and implementation, we encountered a lot of difficultproblems, but thanks fully, Mr Binh and other faculty teachers always there to listenand give us advices Without the help of Mr Binh and other teachers, we think we
did not make it this far
Once again, we sincerely thank you!
Trang 5TABLE OF CONTENTS
csoACKNOWLEDGMENTS sesscssssssscssssesscssssssscsssseccsnsesscessecsssnssesecsnneesscsnseessssneeesess i
IV )02/9)0209)/0/00)05055555 14 ii
LIST OF FIGURES cccscssssssssssssssssessssesscsssscsscsesscsssesscsessesnssessssesssensseensenesenes viii
LIST OF á0.)20500157 5 xLIST OF ABBREVIATIONG ccsssssssssssssssssesesesssssessessssssssssssesesassesesssseserseseees xiABSTRACCTT 5-5 5< S420 101040403 0101800301000010140401004044010104040850 xii
Chapter 1 : THESIS OVERVIEYW SH HH 01010300301080808006 1
1.2.2.1 Monster.com -ccscceeeeesererrerrrrrrrre1.2.2.2 Jobscentral.com.sg ¿5-55 5escssterrkerkerxerrrrkerserce O
1.2.3, Comment
1.3 Objective and Scope cà TH re 7
1.3.1 ObjeCLVe Tà HH HH HH He D1.3.2 `)
1⁄4 Report outline
Trang 6Chapter 2 : KNOWLEDGE BASE scsssssssssssssssssesssecnsescsscnsescnsenseeensensesenseeeaees 10
2.1 Technical background 5 ¿55+ 5++ 2+ £E2xeExexxerrkerkerkrrrrrre 10
2.1.1 Programming languages - ees e5csssrsseerersererrreeee.e TÔ,
2.1.1.1 Ruby
2.1.1.2 ÏaVASCTIPV Ăn II2.1.1.3 HTMLS
2.1.2 Software frameworks c-55cccseeeesesererrrrrrrrrre T4
2.1.2.2 Bootstrap 4 Ă s21 192.1.2.3 MySQL relational database management system 20
2.2 Theoretical background and our propoOSes ‹ 5:c5cs5csccsc.-+ 2Í
2.2.1 Required attrIDU(€S 5566 S*S*2k2E£EEEkEkEESEEkkerrkrkrrrree 21
2.2.1.1 Campaigns attributes -¿-c+cc+ccsceceerereseeeeeeeeee 212.2.1.2 Students attributes
2.2.2 Matching algorithm - - eesessessesessessessestssessessesesstssessssnesees 22
2.2.2.1 Matching algorithm ÍÏOW ceseseseseeseseseesesesesseseseeenes 232.2.2.2 Checking conditions insigh - - -s«sscscceveeeeeseev.e.ve 22.2.2.3 Algorithm insight flowchart -5-ccccsexeeereeeeerreeeervev 27
Chapter 3 : SYSTEM ANALYSIS AND DESIGN -. -< ec<ceses 28
Trang 73.2 Use case DiagraIms - ¿cà tthheegteeercerecce 2
3.3 Main Activity diagram s+ +22 2 1212111212111 36
Company add and edit campaign
Company view list matched student and contact student 41Company update profile cee eeeeeeeseesessessesteseeseesesteseesesneseeens AD
Admin and Super Admin manage cafegOries -. -:5-+ 4
Database system design -5- 555cc 443.3.10RRelational diagram - ¿5c AA3.3.11 Relational diagram Aescription - - - + 5c5ccceseexeeeeeeer TỔ
3.3.11.1 Table “users” -.- sec TỔ3.3.11.2 Table “companie§” - «csceeeeeeeeererrrree TỔ3.3.11.3 Table “studenfs” cty 463.3.11.4 Table “languags” -cscccctthntHtHHHe 473.3.11.5 Table “certifications” -cceeeererreeoe 73.3.11.6 Table “category tech skills” -c-cece.- 483.3.11.7 Table “tech skills” -5c-cceeseeerrree 48,
iv
Trang 83.3.11.8 Table “languages sfudenS” - - 55c 5ccc+rcrkerkerrkerkerk3.3.11.9 Table “certifications students”.
3.3.11.10 Table “tech skills_students” -c-c<+c<ccccccee3.3.11.11 Table “job campaigns”
3.3.11.12 Table “certifications _campaigns” -. -c c-scccccee
3.3.11.13 Table “languages_campaigns”
3.3.11.14 Table “tech_skills _campaigns” -c-+c-ccc++
Chapter 4 : SYSTEM INSTALJLA TION -<s55e<5secssesesessssessessrs
4.1 Install and deploy the syst€m ¿2-5 ++x+E‡krkeEEErkerketerrrrrke
4.1.1 System requirement cccccsessecesesseeseeseescsecsessesneseseesesesseeseesesneeeesess
4.1.2 Development environment and system deployment
4.1.2.1 Development environmment ¿-5+©5¿5s+5<+s+>s+s+esxecse4.1.2.2 Production environImn€II -¿- - +5 +‡++££k+xererkrkererrkeee
4.2 Implemented Ụ ¿- - 52-5252 +tSE++EEkeEEEEEkErkErkrkrkerkrrrrrrrke
4.2.1 Loglnte 0////7772 ch ghe ra
mm 4.2.3 User Edit account informatiOn -s¿©5+555sccxscxvcxrerersrrrree4.2.4 Student Edit CV ^ 4.2.5 Student view matched Job ccecseeesesessessesessesesesessessestesessesneeneeene
4.2.6 Student profile preview ccccecsesessesseeeeeseeseesesnsseseessessseeseesesnseeseess
4.2.7 Company edit DFOfiÍ€ - + Street rườt4.2.8 Company profile DFCVICW - ¿St k1 1111111 1111k
4.2.9 Company view CaInpạgn ‹ ¿- 55c scsx+ctsterkerekerkerkerrrirrrke
50
52
5252
535353
54
5556558
59
Trang 94.2.10Company Add and Edit Campaign - OL
4.2.11Company view student of a campaign ¿ - essences Ô2
4.2.12Job preview
4.2.13 Admin add USer cccscecsecssesecseessessecseseseesecsseseesssseesessssssesseessessecsesseesees OF
4.2.14Super admin add User ccscccessecsesesseeseeseeseseeseesesnsseseeseessseeseesesneeeeseess 64
4.2.15 Admin and Super Admin manage uSeT ¿-‹ 5 55s+cc©<+ + OD
4.2.16Admin and Super Admin add new Skill Category
4.2.17 Admin and Super Admin add new Skill -5 +©5+©52 66
4.2.18Admin and Super Admin manage skill cat€gOTy -. -.« O68
4.2.19 Admin and Super Admin manage skill -¿ c-5-5+55+552 67
4.2.20Admin and Super admin add and edit ceT( . -s: «+ c-+ OF
4.2.21 Admin and Super admin manage cert -. - - 55¿©55s+s++se>s2 68
4.2.22 Admin and Super admin add and edit language .-. -‹ 084.2.23 Admin and Super admin manage language . ‹ -.- OD)
4.2.24Main Page ceccssecessesessessecseeseseeseesesneseseeseesesesseesesnssesecssensseeseeseaneaneneess 69
Chapter 5 : CONCLUSION AND DEVELOPMENT PLAN 70
Mi
Trang 10vii
Trang 11LIST OE EIGURES
cae
Figure 1-1 Vietnamwork user iTIGTÍACC eeesseseesessesseesestesesnesesteaesneenessens 2Figure 1-2 ITviec user iTTÍAC€ - esesseseeseesessesseseesessessssssstsessstesessesnesesseaes OFigure 1-3 Monster user i(€TÍAC€ - -ssssxstseereeeeeterreerrerrrrrreerreeeree AFigure 1-4 Jobscentral user interface
Figure 2-1 Rails MVC archit€CtUITG -5- <5 tk ng giờ 15
Figure 2-2 Algorithm ÏOW ¿+ - St 2k2 TT H100 121010121 0 giờ 23
Figure 2-3 An entry in campaigns model - 2 5 se +++x++cezxsrsersexeesercee 2Figure 2-4 An entry in students model -¿- +52 5ses+sesesesreeeseeereeseee-cee 24Figure 2-5 Algorithm flow insight ccccecsccssessessesessessssseseesesssssesessessssssssesscseeseses 27
Figure 3-1 Overview use case diagram cecceccesessecsessecesseesesssseeseeseeseeecseeseeseseseeses 29Figure 3-2 Students manage CV use case diagTaim - ¿+5 s< server 30
Figure 3-3 Admins manage users use case diagram
Figure 3-4 Admins manage categories use case diagram - 3ÍFigure 3-5 Detail of admins manage skills category use case điagram 32Figure 3-6 View and contact partners use case diagTaim - - 5+ scs+sxcxsxee 32
Figure 3-7 Admins manage job campaigns use case diagram - 33
Figure 3-8 Companies manage job campaigns use case diagram - 3SFigure 3-9 Register activity điagram - -55-csscsctersrrsrererrrrrrrrrrerer OOFigure 3-10 Login activity diagTam ¿5-55 c+stsstererterererrrrrrrrrrrrre ODFigure 3-11 Students view jobs and contact a company activity diagram
Figure 3-12 Students update CV activity diagram -+©s+©scsceccerxer 39
Figure 3-13 Companies add and edit campaign activity diagram 4ÖFigure 3-14 Companies view matched students activity diagram ALFigure 3-15 Companies update profiles activity diagram -. ‹ - 42
Figure 3-16 Admins manage categories activity diagram -. .-.-.-‹.‹ 3Figure 3-17 Relational diagram cccccccscsssessesseseeseeseeseseseeseesesnsseeseesssssseeseessseeseeses 44
Trang 12Figure 4-1 Login ÍOTI - ¿5£ 5£ 2S S*Ek‡k#E#ESEk#kE E1 111 ri OO
Figure 4-2 Register ÍOTI 2-52 2 SSSk‡ E2 E12 1 11111111 ODFigure 4-3 Edit account ÝOTIN - - «5c St tetsekekerereketerrererrerrrrrrrrrrerree 4Figure 4-4 Students edit CV form - 5-5522 2t x2 221211121111 55
Figure 4-5 Students matched job page
Figure 4-6 Students profile preview page sccccsecsecesessteseeseesseeseesestssteseesseeseeseeses OD
Figure 4-7 Companies edit profile page -¿- ¿5° 5 <+cecxexsrerkererrrrreerce D8Figure 4-8 A company profile preview page cscecsessesseseeeseseesesseeeseseeseeseseeseeees OD
Figure 4-9 Companies view campaign seCfiOn - 5555 5+5+2ccxrerrreerree 60Figure 4-10 Companies add and edit campaigns section -.-. . . - OLFigure 4-11 Companies view matched student section cccccceseses eee O2
Figure 4-12 A job preview S€CtÏOI1 555cc ODFigure 4-13 Admins add users form
Figure 4-14 Super admins add users ŸOrm ¿+ 5 25+ ++++++s+z+vx++s++xex 64Figure 4-15 Admins and Super admins manage users sectIon .- OSFigure 4-16 Admins and Super admins add new skills category form 65
Figure 4-17 Admin and Super admins add new skills form - 06Figure 4-18 Admins and Super admins manage skill category section ĐÓ
Figure 4-19 Admins and Super admins manage skills section .- Ø7Figure 4-20 Admins and Supers admin add and edit certs form - - 67Figure 4-21 Admins and Super admins manage certs section
Figure 4-22 Admins and Super admins add and edit languages form 68Figure 4-23 Admins and Super admins manage languages section - 69Figure 4-24 Main page - + + TT HT TH HH dường 69
ix
Trang 13LIST OE TABLES
cae
Table 2-1 Campaigns’ required attributes table - c©«5«+c+sxecxeevexeeeeece 22Table 2-2 Students’ required attributes table ¿- 55c ©c+se+ceseseeeveeeeeeecev 22Table 2-3 Campaigns model description table -«s<s-=exsxexesxeceeveeexe-xe 24Table 2-4 Students model description table
Table 2-5 Point table ¿55-52522222 2 E22 121321111111111.11.1111 1111 re 25
Table 3-1 Stakeholder tablG ¿525 E2 SE SkEkE*2EEk2kE T110 01 1 r1 ườn 34
Table 3-2 List of use cases table 52-5 5c‡S++£zketkerkekrrerrrrrrrrrrrrrrre TỔTable 3-3 Users table description ccccesesesesessesessessesseseesessessesessessessesssseeseseeseeses đỔTable 3-4 Companies table description -¿- 55c 5sess+ceccseseeeeseeereeee.- 46Table 3-5 Students table đ€SCTID(ÏOH eseeseseseeseneseseeeseseeseasseseeseaseeeneaeseaee 47
Table 3-6 Languages table €SCTID(IOI -¿- ¿5c 6 S2 S*‡E‡E£EEEEkekerkrkerrrkrkrkrree 47
Table 3-7 Certifications table description
Table 3-8 Category_tech_skills table description -2 +c-sc-c - 48Table 3-9 Tech_skills table description ¿- + ssceeceseeseeeeseer-e.-.- 48Table 3-10 Languages_students table desCrIptiOn - - «6+ s++x+cvzvrxrxexe 49
Table 3-11 Certifications_ students table descrIption -. ¿-‹+s+555s5s+5s+ 49
Table 3-12 Tech_skills_students table description -. -‹2 e-e -«-. ADTable 3-13 Job_campaigns table description ccesesseeeseseseesesseeneeeseeseeseseeseeees OOTable 3-14 Certifications_campaigns table description -‹ - OOTable 3-15 Languages_campaigns table description
Table 3-16 Tech_skills_campaigns table description -. -‹ -‹«-+-s++ 5
Trang 14Open graphic library
Object oriented programming
Java Server PageHypertext Markup Language
Model — View — Controller
Enterprise resource planning
xi
Trang 15Nowadays, Information Technology field is growing fast, in order to have a place inthe job market, students will have to study their best in order to compete with others.The IT field consists of many small branches such as information system, security,network and system With the wide range of choices, when students first set foot in an
IT school, usually they will have to choose which major to follow
Students in all IT majors have to find an internship in order to be qualified byschools The problem is only 5-10% students at the top can easily find an internship
Similarly, firms only want best students As a result, students in middle and bottom
level are having a hard time finding internship job Looking at schools’ perspective,schools want to solve the problem that is students cannot find internships Problemsabove caused by conflicts between companies, schools and students Firms aregreedy, they only want best student, so they may use job posting platforms, jobaffairs, single matchmaker Moreover, students want best companies but theknowledge among students is not equally distributed Lastly, schools want students to
be graduated but students have to ensure internship credits
By being aware of such issues We decided to build a web — based platform that helps
IT students to find jobs that fit them and companies to find the right candidateswithout paying money We want to cut down the role of middleman as well as helpthe bottom and middle level students because we think that companies and ITstudents are a community and being in a community is to help each other, everystudent should be able to find a suitable job and every company should be able to find
a potential candidate without paying By helping students find their suitable jobs, we
can reduce the number of students who could not find internships
In conclusion, we think this project will help students and companies a lot, not only
by helping with finding suitable partners but also by reducing the amount of moneyand time that they will have to spend
xii
Trang 16Chapter 1: THESIS OVERVIEW
1.1 The problem
This is a project that helps third and final year IT students who have a desire to find
an internship on the internet This project is critical and realistic because firms are
recruiting fresh IT staffs and IT students in middle and bottom level often have ahard time finding their suitable job
In recent years, the needs of human resources in information technology field in
Vietnam increases dramatically As a result, many students tried to get their foot inthe door In the IT field, we have a lot of small branch, such as software, network,web development, database and so on The majority of IT students tried to find the
suitable job on job platforms such as Vietnamworks, Itviec and Careerbuilder IT
students must find a place to do internships and must pass internship credit in order
to be graduated Top level students can find suitable companies, but students inmiddle level and students do not have good knowledge are having a hard timefinding a place to do internship and pass internship credits Moreover, companiesactually do not take internship too seriously, even if they care, they will only have alook on top students by using high demand Schools also having problems solving
internships for students
The problem is how to help schools with their problems, the needs of doinginternship of students as well as firms Many recruiting systems appear, job affairswere held However, all mentioned above can only response to the need of firms
and only top students have advantages As a result, the major problem is not yet
solved
By realizing the needs of matching suitable firms to students, we decided to build a
job matching platform using students’ attributes and job campaigns’ descriptions to
help students find a list of suitable jobs Using this system, firms and student willhave an easy time finding suitable partners For firms, they do not have to wait forstudents to apply anymore, after a day, the system will update and yield a list of
Trang 17students that matched firm requirement and the list of students will be randomize.Similarly, students do not have to find jobs by searching for each one on the internetanymore, the system will also yield a list of suitable internship campaigns forstudents.
Figure 1-1 Vietnamwork user interface
Vietnamworks is one of the most trusted sites for finding jobs in Vietnam
Consisting of many different types of jobs, with simple user interfaces, all functions
is optimized and with the main purpose is to help firms find appropriate candidates.Besides, Vietnamworks do offer well designed courses for those who want to
improve their skills
The website has the main function to search for jobs base on keywords such as jobtitle, company name and skills After input keywords, users will be navigated to alist of jobs that has attributes matched the keywords The user then can find out
Trang 18information about the job, for instances, requirement, salary, work location and so
on Vietnamworks also offer mobile based application.
Users can use website filtering tools based on criteria:
- Level.
- Salary range.
- Category.
Students and schools’ problem might not be solved yet, be cause the platform only
benefit companies and top students only Sometimes, when a student applies for a
job, he or she’s profile may not be processed In many cases, companies will have to pay more to find suitable candidates or in worst case, they have the candidate’s CV
but they discard it because they only want top students only.
Although Vietnamworks is a huge job posting platform, but it is lack of IT jobs for freshers and for students those who want to find an internship Firms have to pay to get their job posted.
YecuCOMAANK Inspire the Next 4 & y
Techcombank Hitachi Vantara DFO Global Performance
Figure 1-2 ITviec user interface
Trang 19Beside Vietnamworks, Itviec platform is also one of the most trusted sites for
recruiting in Vietnamese The site is specialized in IT job posting only Similarly, just like Vietnamworks’s main function, ITviec allows firms to pay and have their
jobs posted on the site The little different here is Itviec allows people to actually review and see others’ reviews about the company.
Itviec allows users to search for jobs base on skills, firm names, job titles and locations They offer a wide variety of IT jobs, including system, network, software, hardware and ERP Moreover, the site offers users to receive similar jobs through mails if users press the bell button in each job page.
Sadly, this site only allows people to search for job based on keyword and location User cannot search for salary range like Vietnamworks, but the main point here is this site is for IT jobs only.
Although it is one of the IT job platforms but it is lack of job for freshers and students those who want to find an internship for themselves Similarly, only firms and top students can benefit from it.
1.2.2 Related systems in worldwide
1.2.2.1 Monster.com
monster
Figure 1-3 Monster user interface
Trang 20Monster.com is a website that allows user to find a variety of jobs such as sales, IT, healthcare, and so on Firms using this site also have to pay for advertisement fees,
usually monthly fee in order to have their job posted.
People can use filtering tools on the site to filter jobs based on:
Despite the site is huge, but it has so little information for IT student who want to find
an internship for themselves IT students will not benefit from this system much because the jobs range is too wide and it is lack of internship for IT students.
Trang 21Popular iob searches
Figure 1-4 Jobscentral user interface
The website is similar to Monster, offering a wide variety of jobs It is located in Singapore and own by a Singaporean group so jobs will mainly be located in Singapore.
This site offers a section for fresh graduated student which is better than all sites we mentioned above, but there exists a drawback that they do not offer many internships for IT students.
Just like other sites, this site allows users to search and view jobs as they like but the limited is the users sometimes cannot see the salary range of a job title they are finding After input some keywords and search, the site will yield a list of suitable jobs for users and they can selectively view each one.
User can use the site’s filtering tools to filters:
- Job Nature.
- Qualification.
- Position Level.
Trang 221.2.3 Comment
Overall, websites mentioned above have the same function is to help users search for suitable job and firms find the right candidates, but only top students have advantages Those system only benefits firms most because they can pay money to find top students and middle level students are being disqualified Similarly, schools
do not benefit much from those system, they still have to deal with student internships problems.
After researching system mentioned above, we have decided to build a job matching platform to serve the need of finding internships of students, to help schools solve
internships problems and help firms find appropriate candidates.
1.3 Objective and Scope
1.3.1 Objective
To meet the needs of students and firms This thesis builds a matching system based
on students’ attributes and job campaigns’ attributes From that, we can cut down
the role of middleman, to be more specific, firms will not have to spend money to get their jobs posted and students will not have a hard time finding suitable job
because this system will automatically match students’ profile to suitable jobs, all
students have to do is select a job and contact firms or firms will contact them.
After doing some investigation and see some of the job posting platform, we decided to offer a way for this thesis:
- Building a website that have user-friendly interfaces Simultaneously, the
site will offer key functions such as: registration, login, account management, updating student CV, job campaign posting, admin manages categories (main categories including campaign and users), displaying jobs
to student, displaying students to firms.
Trang 23- Cutting down the role of middleman, firms and students will not be charged
any amount of fee when using this platform This platform will benefit students who are finding an internship most.
- Creating a job matching engine that runs daily to update firms’
requirements and student CV.
- Technologies used: HTMLS, Ruby on Rails, MySQL, Javascript,
The aim of this thesis is researching about Ruby on Rails and use Ruby on Rails to create a web-based job matching platform to help match students to job campaigns of companies.
- Deployment platform: Heroku.
- Database System: MySQL.
- Software: sublime text, Visual Code, MySQL WorkBench.
The site will mainly focus on display match partners to firms and students base on their attributes to cut down the role of middleman as well as help middle and bottom level student to find suitable jobs.
About matching engine: group has a self-developed a match algorithm base on point, importance of skills and entities attributes.
In the process of doing this thesis, group has used some tools to serve the needs of researching and building this project Tools include:
- Visual Code: A free source-code editor made by Microsoft for Windows,
Linux.
Trang 24- Visio 2016: A diagramming and vector graphics application and is part of
the Microsoft Office family.
- Git: Managing code.
All tools and software above were installed and used on Windows 10 — education and ubuntu 18.04 LTS
1.4 Report outline
Chapter 1: THESIS OVERVIEW
The section points out not only students’ problems when looking for a suitable job but also companies’ problems when finding suitable candidates Moreover, the
section also introduces the solution, goal of the thesis, some job platforms popular in Vietnam and around the world.
Chapter 2: KNOWLEDGE BASE
The section introduces knowledge about programing programs, languages, and the method that the thesis uses.
Chapter 3: SYSTEM ANALYSIS AND DESIGN
The section points out functional requirements, non-functional requirements, storage requirements, database, main use cases and actors that related to the project.
Chapter 4: SYSTEM INSTALLATION
The section illustrates how the matching process works, system requirements and the user interfaces of the website.
Chapter 5: CONCLUSION AND DEVELOPMENT PLAN
The section shows results, strong points and drawbacks of the website Moreover, the development plan for the project is also displayed in this section.
Trang 25Chapter 2: KNOWLEDGE BASE
Ruby follows the path of OOP languages such as Perl and use programming syntax as easy as C and Java for new programmer to learn It is actually open-source and people can use it freely on the web Moreover, Ruby is an interpreted programming
language.
In the old days when people were using JSP to embed Java into HTML page, now they can embed Ruby into HTML page too It is said that many people use Ruby because it supports most of the platform such as Windows, Linux and Mac, but that is not all, because of it clean and easy syntax, many new developers can get used to it very quickly.
Ruby has many features, including:
- Object Oriented: Every value in ruby is an object.
- Dynamic: All things in a program are built by the code when it runs.
- Metaprogramming: Everything in Ruby are objects, people can use them to
learn about them or even modify them while the program is running.
- Flexibility: Most operators of Ruby can be overloaded.
Advantages made Ruby language so popular:
- Ruby is a server-side scripting language just like Python and Perl.
- Ruby is now used for developing internet and intranet applications.
10
Trang 26- Because Ruby support many GUI tools such as OpenGL, it is endorsed by
many developers.
- Multiplatform is not an exception, Ruby can be installed on both Linux and
Windows operating system.
- It has an awesome testing infrastructure making it so popular among
programming languages market.
Ruby is also known for its wide range of libraries and its huge support communities.
2.1.1.2 Javascript
Javascript is a website programming language, because of its lightweight, it is the most popular part of a web page Javascript’s first name was LiveScript, but then Netscape changed its name to Javascript Because of its highly convenient, Javascript can be used in many different web browsers, popular example of this is Chrome, Firefox and Safari Besides, the language is developed and designed to be fully functional on web browsers of smartphones and tablets.
A Standardized Javascript version has certain main characteristics such as:
- Javascript is an interpreted programming language.
- Javascript is an open-source and a cross-platform programming language.
- Javascript can be integrated with HTML.
Javascript is also known for its usage at the client-side (Client-side Javascript) It was created in ten days by Brendan Eich, a staff of Netscape Its first name was Mocha, then Mona, Livescript and Javascript is the final name as we mentioned above Developers tend to use Javascript to trap user events such as button clicks, link
navigation, items hovers and so on.
11
Trang 27Javascript has a lot of benefits, but the following is widely known for making its bestquality:
Javascript is process at client-side, which means less servers interaction.Developers can validate user input before sending the page to servers As a
result, this saves traffics and reduce heavy workload of the servers
With Javascript, developers can generate feedback to visitors Guests do nothave to wait for pages to be reloaded to see if they forgot to input anything.Javascript’s syntax is similar to English making its easy to learn
Javascript is quite fast for the end users When the code is executed on end
users’ computer, it processes inputs and generate results so quickly that itdoes not need servers
Richer interfaces are also an important feature of Javascript Developers
create drag and drop as well as slider elements easier
Although it is widely use, Javascript also has some drawbacks Developers shouldknow that Javascript is sometimes limited in certain ways, such as:
2.1.1.3
Client-side Javascript does not allow the reading or writing of files due tosecurity reason
Javascript cannot be used for networking applications
Javascript does not have any multi-threading or multiprocessor capabilities
HTMLS
HTML stands for HyperText Markup Language which mainly known for its
capability to create a web page A normal website may contain many pages, and eachpage is a HTML document HTML was created by Tim Berners-Lee and published in1993
HTMLS5 was developed to serve the purpose of improving user experience ofuncompleted functions of the previous version HTMLS is now including audio,
12
Trang 28video, charts tag making it easiser to integrate multimedia and graphical content toweb pages without the needs of plugins like adobe which cause a lot of resources in
the previous version In 2020, HTML supports almost any web browser: Chrome,
Firefox, Opera, CocCoc, Edge
HTMLS has many improvements compared to its last version:
- More form-control such as day, time, mails
- Better performance
- Div tag can be replace with semantic elements
- HTML5 makes use of application cache and web SQL to store temporarydata
- HTMLS page can be fully loaded when offline - also known as offlinecache
HTMLS brings joy to developers by:
- Increasing the compatibility of mobile devices Developers will have an
easy time designing mobile web interface
- Eliminating the needs of creating cookies because it now has local storage
- Enabling developers to create sliders in an easy way
- Developers can modify Data Attributes With HTMLS custom data can be
added which increase the opportunities to create a better webpage
- HTML5S can minimized the needs of Javascript by making form validationnative to HTML
HTMLS can help end users:
- Having a better web surfing experience
- Eliminating Flash helps provide better experience for users
- Supporting audio and others multimedia elements, user will not need toload for heavy flash plugin like the old days anymore
13
Trang 29- Users can now use mobile device to surf the web with better experience.
2.1.2 Software frameworks
2.1.2.1 Rails
Rails is known as a web application development framework written in Ruby
programming languages The purpose of Rails is to make web development easier.Rails also enables developers to write less code but accomplish more than many other
frameworks
Rails was created by David Heinemeier Hansson in 2003 While David was working
for Basecamp Company, he extracted Ruby on Rails and released it as open-sourcecode in July 2004 Rails sticks to the following essential principles:
- Ruby programming language
- Model — View — Controller architecture
- Programmer happiness
Rails is said to be an opinionated software When developers are preparing to write an
application using Rails framework, developers have to perform three primary tasks:
- Describing and model the application’s domain
o The domain is the main universe of the application
- Specifing what can happen within this domain
o The domain is static, we have to make it dynamic by identifying all
possible scenarios or actions that elements of the chosen domain can
participate in
- Choosing and designing the publicly available views of the domain
o Views basically is a display page to user
14
Trang 30Based on three tasks above, Rails deals with a MVC framework:
Figure 2-1 Rails MVC architecture
- Model (ActiveRecord): Responsible for maintaining relationship between
objects and database as well as handling validation and transaction Model
is implemented in ActiveRecord library providing interface and bindingbetween Ruby code and database The names of Ruby method are generated
automatically from field names in database
15
Trang 31- View (ActionView): A presentation of formatted data, triggered bycontroller’s decision to present data View is implemented in ActionView
library which is also known as embedded Ruby (ERb) base system for
defining presentation templates for data presentation Any attempt toconnect to a Rails application results in the display of View
- Controller (ActionController): Controller is implemented in Actioncontroller Responsible for directing traffic and querying model for specificdata It sits between ActiveRecord and ActionView
So why developer endorsed Ruby on Rails so much? Simply because they can
develop a web application at least 10 times faster with Rails than developers could do
with a Java framework Also, because of its open-source characteristic and itsflexibility of configuring code with database schema, many new developers jump inand learn it Last but not least, it is also famous for its ability to skip compilation
phase
Rails is actually an “Full Stack Framework” because it includes everything needed tocreate a database-driven web application by using MVC model mentioned above.Because of its “Full Stack” characteristic, all layers are built to work seamlesslytogether with less code compared to other frameworks Rails also has a characteristiccalled “scaffolding”, when developing a website, people usually create temporarycode to get the website up and running to see how major components work together.Rails automatically create all those “scaffolding” for developers
There is nothing more to discuss about the strength of Rails, it is packed with featuresmaking people more productive, with many features building on one other Railsgives people three default environment:
- Development
- Testing
- Production
16
Trang 32Each of the environment above behaves slightly different making your softwaredevelopment life cycle easier and more flexible For instance, Rails generates a newcopy of the Test database for each Test run.
When talk about testing, we can mention Rails’s built-in testing function Rails notonly generates simple automated tests that people can extend but also providessupporting code called harnesses and fixtures making test cases easier to write and
run Rails prefer convention to configuration, most web development frameworks
such as NET or Java force you to writes pages of configuration code
RubyGems is a package manager for the Ruby programming languages that provides
a standard format for distributing Ruby programs and libraries
Inside gems are the following components:
Trang 33= freewill.gemspec
- Lib folder contains code for the gem
- Test or spec folder contain tests
- Rakefile is a file use to automate test, generate codes
Gemspec includes specifics information about a gem, for instance, name, version,description The following lines is a gemspec abstract:
s.description = ''I will choose Free
s.authors = [Nick Quaranto"]
s.homepage = 'http://example.com/freewill'
s.files = ["lib/freewill.rb"
end
To sum up, Rails has a lot of benefits making both developers and customers happy
The following is the main reason why Rails developed and endorsed by many people
so much:
18
Trang 34- Time - efficient: Because of many characteristics mentioned above, Railsframework tends to reduce amount of time needed to build an application
- Scalable: Just like other web development frameworks, Rails is scalable
- It is supported: Similar to many other web frameworks, Ruby also has its
own supported community forum where people can discuss and help others
2.1.2.2 Bootstrap 4
Bootstrap is a framework used to design a website user interface It allows developer
to create a responsive user interface quickly Bootstrap includes HTML documents,templates, CSS templates and Javascript templates to create basic elements like
typography, forms, buttons, tables, navigations, modals and so on Inside bootstrap,
there are many Javascript plugin helping developer to design a user interface moreresponsive and more quickly
Bootstrap was created at Twitter in mid-2010 by @mdo and @fat Bootstrap used to
be known as Twitter Blueprint It was originally released in 2011 and up to now, it
has over 20 releases The newest version of bootstrap now is 5 but in this thesis wewill use bootstrap 4
Characteristic of bootstrap:
- Easy to use: Many examples, guidelines were carried out on the officialwebsite
19
Trang 35- Responsive: With built in responsive CSS, developers can just call thename of the class making it easier and faster to develop a user interface.Moreover, developer can overwrite bootstrap’s CSS to fit their purpose.
- Compatible: Bootstrap is widely known for its compatibility It can run onany browser, ranging from the newest Edge to Chrome, but sadly, Internet
Explorer 9 or 8 and earlier version do not support it
2.1.2.3, MySQL relational database management system
MySQL is the most popular open-source relational management database system inthe world MySQL AB - a Swedish company created and developed MySQL.MySQL speed is fast, its stability is amazing Like many other play database systems,
it is easy to use, because of that, many firms endorsed MySQL a lot MySQL can run
smoothly on Windows, Linux and Mac operating system, providing many powerfulfunctions for users MySQL syntax and the way MySQL queries for data is the same
as SQL Server
Written in C and C++, MySQL main purpose is to handle large database, because ofthat it supports in-memory heap table and its module is designed to be independent of
others MySQL server works in client — server architecture or embedded systems
MySQL have so many advantages, but some important ones are:
- Cross — language: PHP, Java, Ruby
- The speed of processing data request is amazing
- Flexible just like other management systems
- Open — source
- Easy to manage
- Highly secure
20
Trang 362.2 Theoretical background and our proposes
After researching for solution for the problems, we have come to and idea that is tomatch students’ profile with companies’ campaigns by using students’ attributes andcampaigns’ attributes A student and a job campaign have similar attributes such as
salary, work_hour, gpa, certifications, languages, skill, skill level By using these
attributes, we can create a point based matching system for students’ profile andcompanies’ campaign
The system goal is to match students with companies’ campaigns as mentioned
above The matching system will run once per day at mid night As a result,
companies will get a list of randomized students based on matched student percampaign Similarly, each student will get a list of matched campaign
After being matched, companies and students can view each other profile; As a result,
they will be given a chance to contact each other By using randomized list of
students middle and bottom level students will have a chance to find suitable jobs
certifications_languages language_id
tech_skills_campaigns tech_skill_id
21
Trang 37Table 2-1 Campaigns’ required attributes table
for each day for each campaign As a result, middle level and bottom level students
will have a chance to find their suitable jobs
22
Trang 382.2.2.1 Matching algorithm flow
Figure 2-2 Algorithm flow
2.2.2.2 Checking conditions insight
The model of campaigns and students will be store in temporary memory asmentioned, the data format for each entry will be displayed as following:
Campaigns model entry:
[1, 10000000, 40, 7.0, "Ho Chi Minh", [7, 8], [1, 2], [2, 1, 3, 9, 12, 6, 4], [2, 3, 1, 3, 2, 3, 1], [1, 1, 1, 1, 1, 1, 1], "1"]
Figure 2-3 An entry in campaigns model
An entry in campaigns model is made of eleven elements, index starting from zero, asthe following:
23
Trang 39Index number | Meaning
5 Array of required certification
6 Array of required language
7 Array of required technical skills
8 Array of priority corresponding to element number 7
9 Array of level corresponding to element number 7
10 A flag indicates whether the job is open or not
Table 2-3 Campaigns model description table
Students model entry:
[1, 8000000, 40, 8.15, "Ho Chi Minh", [7, 8], [1, 2], [9, 12, 3, 2, 8, 11], [2, 2, 3, 3, 3, 3]]
Figure 2-4 An entry in students model
An entry in company model is made of nine elements, index starting from zero, as the
following:
Index number | Meaning
0 ID of a student
1 Expected Salary of a Student
2 Workable hour per week
3 Student’s GPA
4 Location of a student
5 Array of certifications student have
6 Array of languages student have
24
Trang 40Array of technical skills student haveArray of level corresponding to element number 7
Table 2-4 Students model description table
Point per attributes:
Attributes Condition Point
Student salary in [Campaign alary — 1 million; +1Salary ¬
Campaign salary + Imilllion]
Work_Hours | Student Work_Hours > Campaign Work Hour +1
Student GPA > Campaigns GPA + 0.75
GPA :
Student GPA > Campaigns GPA - 1 +05
Certification | Matched +1 per each
Language Matched + 0.75 per each
Skill Matched + 1 per each
Highly important + 1 per each