1. Trang chủ
  2. » Cao đẳng - Đại học

báo cáo thực tập lập trình WEBSITE VENJOB tìm kiếm việc làm bằng RUBY ON RAILS

24 14 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 24
Dung lượng 2,48 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

KHOA CÔNG NGHỆ PHẦN MỀM BÁO CÁO THỰC TẬP LẬP TRÌNH WEBSITE VENJOB TÌM KIẾM VIỆC LÀM BẰNG RUBY ON RAILS... Website VeNJOB giúp mọi người tìm kiếm công việc tại cả Việt Nam cũng như nước

Trang 1

KHOA CÔNG NGHỆ PHẦN MỀM

BÁO CÁO THỰC TẬP

LẬP TRÌNH WEBSITE VENJOB

TÌM KIẾM VIỆC LÀM BẰNG RUBY ON RAILS

Trang 2

LỜI MỞ ĐẦU

Ngày nay, các website dịch vụ là một thành phần không thể thiếu với đời sống con người Trong thời đại số 4.0, với sự phát triển chóng mặt của Internet cũng như ngành công nghệ phần mềm, các phương thức dịch vụ thông qua mạng Internet đang dần dần vượt mặt các phương thức thông thường Tìm kiếm việc làm cũng không ngoại lệ, phương thức tìm kiếm việc làm thông qua mạng Internet giúp con người tiết kiệm thời gian, tiết kiệm không gian, thoải mái hơn và tự chủ hơn trong việc tìm kiếm công việc Do đó, để đáp ứng nhu cầu của khách hàng tìm kiếm việc làm thông qua mạng Internet, VeNJOB có thể đáp ứng được nhu cầu của khách hàng

Với niềm đam mê với việc phát triển website, cũng như tìm kiếm cơ hội việc làm, em cảm thấy đây là cơ hội ở ZIGExN VeNtura là tốt nhất ở thời điểm này Thông qua việc học hỏi ngôn ngữ mới – Ruby – và framework Rails ở công ty, em đã học hỏi được nhiều kiến thức mới cũng như quy trình xây dựng một website, đặc biệt là ở một ngôn ngữ mới em chưa từng học trước đó

Website VeNJOB giúp mọi người tìm kiếm công việc tại cả Việt Nam cũng như nước ngoài, được dựa trên dữ liệu công việc từ website uy tín “careerbuilder.vn”, VeNJOB luôn cập nhật thông tin mới nhất về các việc làm mỗi ngày Tuy không phải là ý tưởng thiết kế website mới, nhưng trong quá trình xây dựng website, em đã học được nhiều kỹ thuật và công nghệ mới

Trang 3

đỡ em hoàn thành đợt thực tập này

Đặc biệt cảm ơn anh Lê Văn Hậu, đã training Git/Ruby/Ruby on Rails, hướng dẫn, giúp

đỡ cho em tận tình cả những khó khăn trong công việc, đến những khó khăn việc làm quen với môi trường mới

Cũng xin cảm ơn thầy cô trong khoa Công nghệ phần mềm đã nhiệt tình hỗ trợ, tạo điều kiện em làm bài báo cáo này

Nguyễn Ngọc Nghĩa

TP Hồ Chí Minh, ngày 17 tháng 07 năm 2020

Trang 4

NHẬN XÉT CỦA KHOA

Trang 5

Mục lục

Chương 1: Giới thiêu công ty thực tập 5

1 Giới thiệu công ty ZIGExN VeNtura 5

2 Sản phẩm của công ty 5

Chương 2: Nội dung thực tập 5

1 Tìm hiểu công ty và các kỹ năng cơ bản trong công ty 6

2 Nghiên cứu kỹ thuật 6

2.1 Nghiên cứu/ thực hành về Linux/Ubuntu 6

2.2 Nghiên cứu/thực hành về công cụ Git 6

2.3 Nghiên cứu/thực hành về Ruby 6

2.4 Nghiên cứu/thực hành về Ruby on Rails 7

3 Thực hiện project 8

4 Lịch làm việc 9

Chương 3: Chi tiết về project 13

1 Giới thiệu về VeNJOB 13

1.1 Các công nghệ đã sử dụng: 13

1.2 Dịch vụ chính: 13

2 Thực hiện 18

3 Quá trình thực hiện VeNJOB: 18

TÀI LIỆU THAM KHẢO 22

TỔNG KẾT 23

Trang 6

Chương 1: Giới thiêu công ty thực tập

1 Giới thiệu công ty ZIGExN VeNtura

ZIGExN VeNtura là công ty 100% vốn từ Nhật Bản Được biết đến như là một biểu tượng của sức trẻ và cộng đồng linh hoạt trong ngành Công nghệ thông tin hiện này, ZIGExN VeNtura phát triển công nghệ phần mềm và các dịch vụ Internet cho thị trường Nhật Bản Xuất hiện trong thị trường Việt Nam từ đầ unăm 2013, với bước đi đúng đắn của Ban giám đốc và những nhân viên đầy nhiệt huyết, và sáng tạo, ZIGExN VeNtura đang dần phát triển và lớn mạnh hơn

Chương 2: Nội dung thực tập

Đợt thực tập với chủ đề “Lập trình website tìm kiếm việc làm VeNJOB bằng Ruby on Rails” nhằm mục đích giúp sinh viên thực tập được đào tạo toàn diện về lập trình website, đồng thời rèn luyện những kỹ năng mềm như làm việc nhóm, thuyết trình, giao tiếp Tại công ty, sinh viên có cơ hội được học tập, khám phá và làm việc trong một môi trường phát triển website chuyên nghiệp

Trang 7

1 Tìm hiểu công ty và các kỹ năng cơ bản trong công ty

Thời gian : 2 ngày

Nội dung : Giới thiệu về công ty, cách tổ chức của công ty, những quy định cơ bản của

công ty

Được nghe người phụ trách giới thiệu về công ty, quá trình thành lập và phát triên (như đã nhắc đến ở trên), quy trình làm việc từ cao xuống thấp, cách thức tổ chức của công ty (Thông qua trang wiki của công ty)

Ngoài ra, thực tập sinh còn được giới thiệu về cách thức làm việc trong công ty như thời gian đi làm, các quy định cần phải tuân thủ, cách sử dụng email trong công việc…

Kết quả: Hiểu thêm về công ty, quá trình thành lập và phát triển Có thêm các kỹ năng về

việc sử dụng email trong công việc, làm việc có kế hoạch, có kỷ luật, có trách nhiệm hơn

2 Nghiên cứu kỹ thuật

2.1 Nghiên cứu/ thực hành về Linux/Ubuntu

Thời gian : 5 ngày

Nội dung : Tìm hiểu về môi trường, các lệnh cơ bản của Linux/Ubuntu

Trong thời gian này, mentor đã hướng dẫn thực tập sinh tìm hiểu về môi trườn Linux/Ubuntu Một số phần mềm thường xuyên sử dụng như Vim (trình soạn thảo quen thuộc của Linux/Ubuntu), Terminal (giao diện cửa sổ dòng lệnh của Linux/Ubuntu)

Thực hiện : Thực hành sử dụng và thao tác các câu lệnh trên Linux/ Ubuntu

Kết quả : Nắm được cách sử dụng, các câu lệnh cơ bản của Linux/ Ubuntu

2.2 Nghiên cứu/thực hành về công cụ Git

Thời gian : 1 ngày

Nội dung : Tìm hiểu khái niệm, cách sử dụng và câu lệnh cơ bản của Git

Trong thời gian này, mentor đã hướng dẫn cách sử dụng và các câu lệnh cơ bản của Git sẽ áp dụng vào đồ án cũng như sử dụng trong công ty, thực tập sinh tự tìm hiểu khái niệm Ngoài ra, mentor cũng tận tình chỉ dẫn, dặn dò về cách pull, push, mergo code sao cho không bị conflict cũng như mất code của người khác

Thực hiện : Thực hiện sử dụng và thao tác các câu lệnh cơ bản của Git

Kết quả :

- Nâng cao khả năng sử dụng Git

- Học cách quản lý code với công cụ Git

2.3 Nghiên cứu/thực hành về Ruby

Trang 8

Thời gian: 5 ngày

Nội dung: Các kiến thức cơ bản của ngôn ngữ lập trình Ruby

- Tiếp cận với Ruby:

Hoàn thành “tryruby” của Ruby trên github (https://ruby.github.io/TryRuby/)

- Môi trường chạy Ruby:

Cài đặt được môi trường bao gồm trình biên dịch ngôn ngữ Ruby bằng công cụ rbenv – công cụ quản lý các phiên bản Ruby – với Ruby 2.6.x (https://github.com/rbenv/rbenv)

- Ruby cơ bản:

Học các bài Ruby cơ bản thông qua lang.org/en/documentation/quickstart/

https://www.ruby Ruby chuyên sâu:

Học các bài Ruby chuyên sâu thông qua http://learnrubythehardway.org/book/

- Regex chuyên sâu:

Học các bài về Regex, regex các mẫu (pattern) thay vì các chuỗi cụ thể được sử dụng tìm/thay thế (Find/Replace) Là một công cụ cực mạnh cho xử lí chuỗi không những trong Ruby, mà còn ở các ngôn ngữ khác (http://regex.learncodethehardway.org/book/)

Thực hiện :

- Tham gia đầy đủ các buổi training

- Làm các bài tập thực hành về Ruby, Regex, …

- Tìm kiếm tài liệu trên mạng để tìm hiểu thêm

Kết quả :

- Hiểu được những khái niệm cơ bản trong lập trình đồ họa với OpenGL

- Đã vẽ được những hình ảnh cơ bản trong OpenGL, load file mô hình *.obj

2.4 Nghiên cứu/thực hành về Ruby on Rails

Thời gian: 7 ngày

Trang 9

Nội dung : Học các kiến thức cơ bản về framework Ruby on Rails thông qua thiết kế

website nhỏ chạy trên Ruby on Rails 4th-edition-tutorial/beginning)

(https://www.learnenough.com/ruby-on-rails Tìm hiểu về framework Rails:

Rails là một web framework được thiết kế để làm việc bằng ngôn ngữ lập trình Ruby Câu lệnh trong Rails không cần có dấu chấm phẩy và trực quan hơn Rails

là framework phổ biến nhất được viết bằng Ruby Rails cung cấp tất cả những thứ cần thiết để bạn có thể viết một ứng dụng Ruby và các trang web một cách dễ dàng

- Tìm hiểu về Ruby on Rails:

Ruby on Rails là một cái tên ĐẦY ĐỦ cho framework Rails

- ORM của Rails – Active Record:

Đây là Object Relational Mapping, là kỹ thuật ánh xạ CSDL sang các đối tượng ngôn ngữ, trong trường hợp này ORM của Rails là Active Record

- Action view trong Rails:

Thông thường view trong Rails sẽ được viết theo template ERB, được gọi là Ruby nhúng Chúng có thể được viết cả tag ERB và HTML

- Action Controller trong Rails:

Controller trong Rails có nhiệm vụ trả views về trình duyệt cũng như có thể xử lý

dữ liệu ngay trong đó

Thực hiện :

- Tham gia đầy đủ các buổi training

- Tạo ra những trang web cơ bản bằng Ruby on Rails

Kết quả:

- Đã có thể tạo ra một và một vài trang web cơ bản sử dụng Ruby on Rails

3 Thực hiện project

Trang 10

Sau gần một tháng được training và thực hành, Em đã nắm được những kiến thức cơ bản

về Git, Ruby và Ruby on Rails Trong tháng thứ hai và ba, em sử dụng các kiến thức đã học đẻ thiết kế website VeNJOB

Chi tiết đồ án sẽ được nói ở phần sau

4 Lịch làm việc

Mức

độ hoàn thành

Nhận xét của người hướng dẫn

1

- Tìm hiểu về công

ty, cách tổ chức của công ty

- Làm quen với các công cụ của Linux/Ubuntu và công ty

- Học cách trao đổi, làm việc qua email

- Báo cáo tuần 1

Anh Lê Văn Hậu (Mentor)

Anh Đỗ Hồng Sơn (Helper)

Anh Lê Hồng Hiếu (General Manager)

95%

2

- Tìm hiểu ngôn ngữ lập trình Ruby

- Báo cáo tuần 3

- Chạy migration lần đầu để tạo bảng lưu vào MySQL

- Báo cáo tuần 4

98%

Trang 11

careerbuilder.vn:

- Tìm hiểu cấu trúc HTML của website careerbuilder.vn

- Viết validation cho các trường được nhập vào

- Chỉnh sửa cho phù hợp với database

- Báo cáo tuần 6

- Sử dụng template của bootstrap

- Thiết kế trang Sign

in (Trang đăng nhập khi người dùng đã

có tài khoản), Sign

up (Trang đăng ký khi người dùng chưa có tài khoản)

- Thiết kế trang cá nhân, thông tin

- Báo cáo tuần 7

- Thiết kế trang City

90%

Trang 12

(Trang tìm kiếm công việc theo thành phố)

- Báo cáo tuần 8

- Thiết kế trang Job Detail (Trang chi tiết công việc)

- Báo cáo tuần 9

- Thiết kế trang Done (Trang honà tất đăng ký,gửi email cho người dùng)

- Báo cáo tuần 10

- Gửi mail xác nhận đến email của người dùng (Sử dụng mailcatcher để bắt mail dưới local)

90%

Trang 13

- Khi người dùng yêu cầu mật khẩu mới, gửi email đến email người dùng (như trên)

- Báo cáo tuần 11

12

Thiết kế trang Favorite Job, Applied Job:

- Thiết kế trang Favorite Job (Trang các công việc yêu thích của người dùng)

- Thiết kế trang Applied Job (Trang các công việc đã đăng ký của người dùng)

- Báo cáo tuần 12

90%

13

Áp dụng Search Engine – Solr Apache:

- Cài đặt Solr server

- Design schema

- Đánh index cho data

từ database lên Solr

- Thiết kế Search form để người dùng tìm kiếm công việc

- Báo cáo tuần 13

80%

14

Thiết kế trang Admin:

- Thiết kế trang đăng nhập cho admin

- Tìm kiếm tất cả công việc được đăng

Trang 14

Chương 3: Chi tiết về project

1 Giới thiệu về VeNJOB

VeNJOB lấy ý tưởng từ trang web tìm việc làm phổ biến nhất hiện nay: careerbuilder.vn

về dịch vụ tìm kiếm việc làm, sử dụng dữ liệu và công nghệ để quản lý nguồn nhân lực, với các giải pháp giúp nhà tuyển dụng tìm, tuyển dụng và quản lý những người tuyệt vời

1.1 Các công nghệ đã sử dụng:

- Ruby Gem: là thư viện của Ruby Nó không có gì khác biệt với các thư viện của

các ngôn ngữ bình thường khác như PHP, Java hay Python tuy nhiên thư viện

trong Ruby được gọi là GEM

- Bundler: là một công cụ quản lý việc cài đặt, cập nhật, gỡ bỏ, cấu hình cũng như

quản lý version của các GEM

- MySQL: là một hệ thống quản trị cơ sở dữ liệu mã nguồn mở (Relational Database

Management System, viết tắt là RDBMS) hoạt động theo mô hình client-server

- Solr: là một open source full-text search platform dựa trên Apache Lucence

Lucene là một thư viện được viết bằng Java dùng để phân tích, đánh chỉ mục (indexing) và tìm kiếm thông tin

- Ruby v2.6.5

- Rails v5.0.0

- Bootstrap 4.0.0

1.2 Dịch vụ chính:

Danh sách công việc:

Là nơi người dùng xem nhanh tất cả công việc của VeNJOB Các công việc sẽ luôn được cập nhật mới mỗi ngày tại đây

Trang 15

Tìm kiếm công việc

Sử dụng công cụ search engine Solr giúp người dùng tìm kiếm theo từ, theo chữ trong từ, theo keyword với độ chính xác cao

Trang 16

Xem chi tiết công việc:

Người dùng xem chi tiết công việc, bao gồm tên công ty, địa chỉ, lương và mô tả công việc, có thể thêm công việc vào yêu thích hoặc đăng ký công việc

Xem tất cả ngành nghề:

Người dùng xem tất cả các ngành nghề dựa trên tất cả các công việc trên VeNJOB hiện có

Trang 17

Xem tất cả thành phố:

Người dùng xem tất cả các thành phố dựa trên tất cả các công việc trên VeNJOB hiện có

Đăng ký công việc:

Người dùng đăng ký một công việc có 3 bước: Apply, Confirm và Done

- Ở bước Apply: người dùng nhập thông tin cá nhân và image, gửi CV lên hệ thống

- Ở bước Confirm: người dùng xác nhận lại thông tin đã nhập

Trang 18

- Ở bước Done: công việc được đăng ký thành công với người dùng hiện tại và dữ liệu được lưu vào database

Xem tất cả các công việc đã đăng ký:

Người dùng xem tất cả các công việc mà người dùng đó đã đăng ký trên VeNJOB

Trang 19

2 Thực hiện

Sinh viên: Nguyễn Ngọc Nghĩa

Người hướng dẫn: Anh Lê Văn Hậu (Mentor)

Người đánh giá, giám sát thực tập: Anh Lê Hồng Hiếu (General Manager), anh Lê Văn Hậu (Mentor) và anh Đỗ Hồng Sơn

Và sự giúp đỡ tận tình của các anh chị trong công ty

3 Quá trình thực hiện VeNJOB:

Tuần 1:

- Init app, push app lần đầu lên gitlab của công ty sử dụng công cụ Git

- Thiết kế cơ sở dữ liệu lần 1

- Chạy migrate lần 1 để tạo các bảng trong MySQL

- Báo cáo tuần 1

Kết quả :

- Có cơ sở dữ liệu thô để tiến hành tạo VeNJOB

- Có một vào conflict code khi pull/push code

Tuần 2:

Trang 20

- Tạo một vào static pages đơn giản: Đăng ký, đăng nhập, yêu cầu mật khẩu cho người dùng

- Chỉnh sửa cơ sở dữ liệu lần 2

- Lưu được thông tin người dùng vào database

- Mã hóa mật khẩu của người dùng, sử dụng các chuỗi mã hóa để xác thực người dùng

- Lưu thông tin đăng nhập của người dùng vào cookie nếu người dùng chọn Nhớ thông tin đăng nhập

- Gửi mail đến người dùng khi đăng ký và khi yêu cầu mật khẩu mới, sử dụng mailcatcher, chạy ở port 1080 để bắt mail

- Báo cáo tuần 2

Kết quả :

- Hoàn thành các chức năng cơ bản cho người dùng khi đăng ký và đăng nhập

- Có cơ sở dữ liệu hoàn chỉnh cho VeNJOB

- Biết cách sử dụng cookie/session

Tuần 3:

- Nhập dữ liệu công việc mẫu từ file CSV được lấy từ server FTP của công ty

- Viết file chạy tự động cho việc nhập dữ liệu (dựa trên header và chạy theo từng hàng)

- Phân tích dữ liệu đầu vào, kiểm tra tính đúng đắn của dữ liệu và lưu vào database

- Báo cáo tuần 3

Kết quả :

- Có sẵn 3000 công việc mẫu

- Việc nhập dữ liệu được chạy tự động và nhanh (3000 -> 5000 dòng)

- Đảm bảo được tính đúng đắn của dữ liệu

Tuần 4, 5:

- Thiết kế các trang sau đây:

 Trang chủ (sử dụng bootstrap 4.0)

 Trang dang sách công việc

 Trang chi tiết công việc

 Trang ngành nghề

Trang 21

 Trang thành phố

 Trang Đăng ký công việc, Xác nhận và Hoàn tất

 Trang các công việc yêu thích

 Trang các công việc đã đăng ký

- Căn chỉnh giao diện cho phù hợp với người dùng, dễ nhìn

- Báo cáo tuần 4, 5

Kết quả :

- Hoàn chỉnh 80% các chức năng cơ bản của một website tìm kiếm việc làm

- Vẫn còn một số lỗi tuy không đáng kể

- Người dùng đăng ký công việc một cách trơn tru

Tuần 6:

- Áp dụng công cụ tìm kiếm Solr để tìm kiếm công việc

- Cài đặt Solr server

- Thiết kế schema cho data của VeNJOB trên Solr server

- Tiến hành index dữ liệu lên Solr

- Tạo form tìm kiếm công việc

- Báo cáo tuần 6

Kết quả :

- Người dùng tìm kiếm công việc chính xác đến 90%

- Tìm kiếm được cả bằng tiếng Việt và các ngôn ngữ khác

Tuần 7:

- Mở rộng số lượng công việc bằng cách crawl dữ liệu từ careerbuilder.vn

- Viết file crawl dữ liệu

- Việc crawl dữ liệu tự động chạy mỗi ngày một lần nhờ lịch trình được tạo sẵn

- Viết file lưu dữ liệu vào database, có sử dụng kỹ thuật “bulk insert” để lưu số lượng lớn công việc

- Báo cáo tuần 7

Kết quả :

- Các dữ liệu công việc có liên kết với nhau vẫn đảm bảo tính chính xác

Ngày đăng: 05/09/2021, 21:05

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w