Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 24 trang
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
Nội dung
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN 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 Cơng ty thực tập : Công ty TNHH ZIGExN VeNtura Ngƣời phụ trách : Anh Lê Văn Hậu Thực tập sinh : Nguyễn Ngọc Nghĩa TP Hồ Chí Minh, tháng 07 năm 2020 LỜI MỞ ĐẦU Ngày nay, website dịch vụ thành phần thiếu với đời sống người Trong thời đại số 4.0, với phát triển chóng mặt Internet ngành cơng nghệ phần mềm, phương thức dịch vụ thông qua mạng Internet vượt mặt phương thức thơng thường Tìm kiếm việc làm 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 người tiết kiệm thời gian, tiết kiệm không gian, thoải mái tự chủ việc tìm kiếm cơng việc Do đó, để đáp ứng nhu cầu khách hàng tìm kiếm việc làm thơng qua mạng Internet, VeNJOB đáp ứng nhu cầu khách hàng Với niềm đam mê với việc phát triển website, tìm kiếm hội việc làm, em cảm thấy hội ZIGExN VeNtura tốt thời điểm Thông qua việc học hỏi ngôn ngữ – Ruby – framework Rails công ty, em học hỏi nhiều kiến thức quy trình xây dựng website, đặc biệt ngôn ngữ em chưa học trước Website VeNJOB giúp người tìm kiếm cơng việc Việt Nam nước ngồi, dựa liệu cơng việc từ website uy tín “careerbuilder.vn”, VeNJOB ln cập nhật thơng tin việc làm ngày Tuy ý tưởng thiết kế website mới, trình xây dựng website, em học nhiều kỹ thuật công nghệ Người phụ trách: Anh Lê Văn Hậu Nguyễn Ngọc Nghĩa LỜI CẢM ƠN Trân trọng gửi lời cảm ơn đến Công ty TNHH ZIGExN VeNtura tạo điều kiện cho em thực tập, học hỏi kiến thức moi ứ Chỉ thời gian ngắn, nhờ dẫn nhiệt tình anh mentor người cơng ty, em tiếp thu kiến thức quan trọng để làm website Chân thành cảm ơn anh/chị bỏ nhiều thời gian, cơng sức để giúp đỡ em hồn thành đợt thực tập Đặ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 khó khăn cơng việc, đến khó khăn việc làm quen với môi trường Cũng xin cảm ơn thầy cô khoa Cơng nghệ phần mềm nhiệt tình hỗ trợ, tạo điều kiện em làm báo cáo Nguyễn Ngọc Nghĩa TP Hồ Chí Minh, ngày 17 tháng 07 năm 2020 Người phụ trách: Anh Lê Văn Hậu Nguyễn Ngọc Nghĩa NHẬN XÉT CỦA KHOA Người phụ trách: Anh Lê Văn Hậu Nguyễn Ngọc Nghĩa Mục lục Chƣơng 1: Giới thiêu công ty thực tập Giới thiệu công ty ZIGExN VeNtura Sản phẩm công ty Chƣơng 2: Nội dung thực tập Tìm hiểu cơng ty kỹ công ty Nghiên cứu kỹ thuật 2.1 Nghiên cứu/ thực hành Linux/Ubuntu 2.2 Nghiên cứu/thực hành công cụ Git 2.3 Nghiên cứu/thực hành Ruby 2.4 Nghiên cứu/thực hành Ruby on Rails Thực project Lịch làm việc Chƣơng 3: Chi tiết project 13 Giới thiệu VeNJOB 13 1.1 Các công nghệ sử dụng: 13 1.2 Dịch vụ chính: 13 Thực 18 Quá trình thực VeNJOB: 18 TÀI LIỆU THAM KHẢO 22 TỔNG KẾT 23 Người phụ trách: Anh Lê Văn Hậu Nguyễn Ngọc Nghĩa Chƣơng 1: Giới thiêu công ty thực tập Giới thiệu công ty ZIGExN VeNtura ZIGExN VeNtura công ty 100% vốn từ Nhật Bản Được biết đến biểu tượng sức trẻ cộng đồng linh hoạt ngành Công nghệ thông tin này, ZIGExN VeNtura phát triển công nghệ phần mềm dịch vụ Internet cho thị trường Nhật Bản Xuất thị trường Việt Nam từ đầ unăm 2013, với bước đắn Ban giám đốc nhân viên đầy nhiệt huyết, sáng tạo, ZIGExN VeNtura dần phát triển lớn mạnh Sản phẩm công ty - https://arubaito-ex.jp/ https://kuruma-ex.jp/usedcar https://sell.kuruma-ex.jp/ Mỗi sản phẩm sản phẩm mà ZIGExN VeNtura tham gia để phát triển cho thị trường Nhật Bả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 Ruby on Rails” nhằm mục đích giúp sinh viên thực tập đào tạo tồn diện lập trình website, đồng thời rèn luyện kỹ mềm làm việc nhóm, thuyết trình, giao tiếp Tại cơng ty, sinh viên có hội học tập, khám phá làm việc môi trường phát triển website chuyên nghiệp Người phụ trách: Anh Lê Văn Hậu Nguyễn Ngọc Nghĩa Tìm hiểu công ty kỹ công ty Thời gian : ngày Nội dung : Giới thiệu công ty, cách tổ chức công ty, quy định công ty Được nghe người phụ trách giới thiệu công ty, trình thành lập 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ông ty (Thông qua trang wiki cơng ty) Ngồi ra, thực tập sinh cịn giới thiệu cách thức làm việc công ty thời gian làm, quy định cần phải tuân thủ, cách sử dụng email công việc… Kết quả: Hiểu thêm cơng ty, q trình thành lập phát triển Có thêm kỹ việc sử dụng email cơng việc, làm việc có kế hoạch, có kỷ luật, có trách nhiệm Nghiên cứu kỹ thuật 2.1 2.2 Nghiên cứu/ thực hành Linux/Ubuntu Thời gian : ngày Nội dung : Tìm hiểu mơi trường, lệnh Linux/Ubuntu Trong thời gian này, mentor hướng dẫn thực tập sinh tìm hiểu mơi trườn Linux/Ubuntu Một số phần mềm thường xuyên sử dụng Vim (trình soạn thảo quen thuộc Linux/Ubuntu), Terminal (giao diện cửa sổ dòng lệnh Linux/Ubuntu) Thực : Thực hành sử dụng thao tác câu lệnh Linux/ Ubuntu Kết : Nắm cách sử dụng, câu lệnh Linux/ Ubuntu Nghiên cứu/thực hành công cụ Git Thời gian : ngày Nội dung : Tìm hiểu khái niệm, cách sử dụng câu lệnh Git Trong thời gian này, mentor hướng dẫn cách sử dụng câu lệnh Git áp dụng vào đồ án sử dụng công ty, thực tập sinh tự tìm hiểu khái niệm Ngồi ra, mentor tận tình dẫn, dặn dị cách pull, push, mergo code cho không bị conflict code người khác Thực : Thực sử dụng thao tác câu lệnh Git Kết : 2.3 - Nâng cao khả sử dụng Git - Học cách quản lý code với công cụ Git Nghiên cứu/thực hành Ruby Người phụ trách: Anh Lê Văn Hậu Nguyễn Ngọc Nghĩa Thời gian: ngày Nội dung: Các kiến thức ngơn ngữ lập trình Ruby - Tiếp cận với Ruby: Hồn thành “tryruby” Ruby github (https://ruby.github.io/TryRuby/) - Mơi trường chạy Ruby: Cài đặt môi trường bao gồm trình biên dịch ngơn ngữ Ruby cơng cụ rbenv – công cụ quản lý phiên Ruby – với Ruby 2.6.x (https://github.com/rbenv/rbenv) - - Ruby bản: Học Ruby lang.org/en/documentation/quickstart/ thông qua https://www.ruby- Ruby chuyên sâu: Học Ruby chuyên sâu thông qua http://learnrubythehardway.org/book/ - Regex chuyên sâu: Học Regex, regex mẫu (pattern) thay chuỗi cụ thể sử dụng tìm/thay (Find/Replace) Là cơng cụ cực mạnh cho xử lí chuỗi khơng Ruby, mà cịn ngơn ngữ khác (http://regex.learncodethehardway.org/book/) Thực : - Tham gia đầy đủ buổi training Làm tập thực hành Ruby, Regex, … Tìm kiếm tài liệu mạng để tìm hiểu thêm Kết : 2.4 Hiểu khái niệm lập trình đồ họa với OpenGL Đã vẽ hình ảnh OpenGL, load file mơ hình *.obj Nghiên cứu/thực hành Ruby on Rails Thời gian: ngày Người phụ trách: Anh Lê Văn Hậu Nguyễn Ngọc Nghĩa Nội dung : Học kiến thức framework Ruby on Rails thông qua thiết kế website nhỏ chạy Ruby on Rails (https://www.learnenough.com/ruby-on-rails4th-edition-tutorial/beginning) - Tìm hiểu framework Rails: Rails web framework thiết kế để làm việc ngôn ngữ lập trình Ruby Câu lệnh Rails khơng cần có dấu chấm phẩy trực quan Rails framework phổ biến viết Ruby Rails cung cấp tất thứ cần thiết để bạn viết ứng dụng Ruby trang web cách dễ dàng - Tìm hiểu Ruby on Rails: Ruby on Rails tên ĐẦY ĐỦ cho framework Rails - ORM Rails – Active Record: Đây Object Relational Mapping, kỹ thuật ánh xạ CSDL sang đối tượng ngôn ngữ, trường hợp ORM Rails Active Record - Action view Rails: Thông thường view Rails viết theo template ERB, gọi Ruby nhúng Chúng viết tag ERB HTML - Action Controller Rails: Controller Rails có nhiệm vụ trả views trình duyệt xử lý liệu Thực : - Tham gia đầy đủ buổi training Tạo trang web Ruby on Rails Kết quả: - Đã tạo vài trang web sử dụng Ruby on Rails Thực project Người phụ trách: Anh Lê Văn Hậu Nguyễn Ngọc Nghĩa Sau gần tháng training thực hành, Em nắm kiến thức Git, Ruby Ruby on Rails Trong tháng thứ hai ba, em sử dụng kiến thức học đẻ thiết kế website VeNJOB Chi tiết đồ án nói phần sau Lịch làm việc Tuần Cơng việc Tìm hiểu cơng ty, cách tổ chức công ty - Làm quen với công cụ Linux/Ubuntu công ty - Học cách trao đổi, làm việc qua email - Báo cáo tuần - Tìm hiểu ngơn ngữ lập trình Ruby - Tìm hiểu Git - Thực hành Ruby - Thực hành Git - Báo cáo tuần - Tìm hiểu Ruby on Rails - Thực hành Ruby on Rails - Báo cáo tuần - Khởi tạo app lần đầu - Thiết kế sở liệu - Chạy migration lần đầu để tạo bảng lưu vào MySQL - Báo cáo tuần Crawl data từ - Người phụ trách: Anh Lê Văn Hậu Mức độ Ngƣời hƣớng dẫn hoàn thành Anh Lê Văn Hậu 95% (Mentor) Anh Đỗ Hồng Sơn (Helper) Anh Lê Hồng Hiếu (General Manager) Nhận xét ngƣời hƣớng dẫn 95% 90% 98% 85% Nguyễn Ngọc Nghĩa 10 careerbuilder.vn: - Tìm hiểu cấu trúc HTML website careerbuilder.vn - Phân tích liệu - Tạo file crawl tiến hành crawl - Báo cáo tuần Nhập liệu từ file CSV (được lấy từ server ftp công ty) - Viết validation cho trường nhập vào - Chỉnh sửa cho phù hợp với database - Báo cáo tuần Thiết kế trang Top, User: - Thiết kế Top page, trang chủ người dùng truy cập vào website - Sử dụng template bootstrap - Thiết kế trang Sign in (Trang đăng nhập người dùng có tài khoản), Sign up (Trang đăng ký 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 Thiết kế trang Industry, City: - Thiết kế trang Industry (Trang tìm kiếm cơng việc theo ngành nghề) - Thiết kế trang City Người phụ trách: Anh Lê Văn Hậu 85% 85% 90% Nguyễn Ngọc Nghĩa 11 10 11 (Trang tìm kiếm cơng việc theo thành phố) - Báo cáo tuần Thiết kế trang Job List, Job detail: - Thiết kế trang Job List (Trang danh sách tất công việc) - Thiết kế trang Job Detail (Trang chi tiết công việc) - Báo cáo tuần Thiết kế trang Job Apply, Confirm, Done: - Thiết kế trang Job Apply (Trang đăng ký công việc cho người dùng) - Thiết kế trang Confirm (Trang xác nhận thông tin người dùng) - 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 Thiết kế trang Email Register, Forgot Password, New Password: - Thiết kế trang Email Register (Trang đăng ký người dùng email) - Gửi mail xác nhận đến email người dùng (Sử dụng mailcatcher để bắt mail local) Người phụ trách: Anh Lê Văn Hậu 80% 85% 90% Nguyễn Ngọc Nghĩa 12 Khi người dùng yêu cầu mật mới, gửi email đến email người dùng (như trên) - Báo cáo tuần 11 Thiết kế trang Favorite Job, Applied Job: - Thiết kế trang Favorite Job (Trang cơng việc u thích người dùng) - Thiết kế trang Applied Job (Trang công việc đăng ký người dùng) - Báo cáo tuần 12 Á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 Thiết kế trang Admin: - Thiết kế trang đăng nhập cho admin - Tìm kiếm tất công việc đăng ký - Sửa lỗi, chỉnh lại giao diện - Tổng kết đồ án - Báo cáo tuần 13 báo cáo kết thúc đồ án - 12 13 14 Người phụ trách: Anh Lê Văn Hậu 90% 80% 90% Nguyễn Ngọc Nghĩa 13 Chƣơng 3: Chi tiết project Giới thiệu VeNJOB VeNJOB lấy ý tưởng từ trang web tìm việc làm phổ biến nay: careerbuilder.vn dịch vụ tìm kiếm việc làm, sử dụng liệu công nghệ để quản lý nguồn nhân lực, với giải pháp giúp nhà tuyển dụng tìm, tuyển dụng quản lý người tuyệt vời 1.1 Các công nghệ sử dụng: - Ruby Gem: thư viện Ruby Nó khơng có khác biệt với thư viện ngơn ngữ bình thường khác PHP, Java hay Python nhiên thư viện Ruby gọi GEM - Bundler: công cụ quản lý việc cài đặt, cập nhật, gỡ bỏ, cấu quản lý version GEM - MySQL: hệ thống quản trị sở liệu mã nguồn mở (Relational Database Management System, viết tắt RDBMS) hoạt động theo mơ hình client-server - Solr: open source full-text search platform dựa Apache Lucence Lucene thư viện viết Java dùng để phân tích, đánh mục (indexing) 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ông việc VeNJOB Các công việc cập nhật ngày Người phụ trách: Anh Lê Văn Hậu Nguyễn Ngọc Nghĩa 14 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ữ từ, theo keyword với độ xác cao Người phụ trách: Anh Lê Văn Hậu Nguyễn Ngọc Nghĩa 15 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 mơ tả cơng việc, thêm cơng việc vào u thích đăng ký cơng việc Xem tất ngành nghề: Người dùng xem tất ngành nghề dựa tất công việc VeNJOB có Người phụ trách: Anh Lê Văn Hậu Nguyễn Ngọc Nghĩa 16 Xem tất thành phố: Người dùng xem tất thành phố dựa tất cơng việc VeNJOB có Đăng ký công việc: Người dùng đăng ký công việc có bước: Apply, Confirm Done - Ở bước Apply: người dùng nhập thông tin cá nhân 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 Người phụ trách: Anh Lê Văn Hậu Nguyễn Ngọc Nghĩa 17 - Ở bước Done: công việc đăng ký thành công với người dùng liệu lưu vào database Xem tất công việc đăng ký: Người dùng xem tất công việc mà người dùng đăng ký VeNJOB Người phụ trách: Anh Lê Văn Hậu Nguyễn Ngọc Nghĩa 18 Thực 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) anh Đỗ Hồng Sơn Và giúp đỡ tận tình anh chị cơng ty Quá trình thực VeNJOB: Tuần 1: - Init app, push app lần đầu lên gitlab công ty sử dụng công cụ Git Thiết kế sở liệu lần Chạy migrate lần để tạo bảng MySQL Báo cáo tuần Kết : - Có sở liệu thơ để tiến hành tạo VeNJOB Có vào conflict code pull/push code Tuần 2: Người phụ trách: Anh Lê Văn Hậu Nguyễn Ngọc Nghĩa 19 - Tạo vào static pages đơn giản: Đăng ký, đăng nhập, yêu cầu mật cho người dùng Chỉnh sửa sở liệu lần Lưu thông tin người dùng vào database Mã hóa mật người dùng, sử dụng chuỗi mã hóa để xác thực người dùng Lưu thơng tin đăng nhập người dùng vào cookie người dùng chọn Nhớ thông tin đăng nhập Gửi mail đến người dùng đăng ký yêu cầu mật mới, sử dụng mailcatcher, chạy port 1080 để bắt mail Báo cáo tuần Kết : - Hoàn thành chức cho người dùng đăng ký đăng nhập Có sở liệu hoàn chỉnh cho VeNJOB Biết cách sử dụng cookie/session Tuần 3: - Nhập liệu công việc mẫu từ file CSV lấy từ server FTP công ty Viết file chạy tự động cho việc nhập liệu (dựa header chạy theo hàng) Phân tích liệu đầu vào, kiểm tra tính đắn liệu lưu vào database Báo cáo tuần Kết : - Có sẵn 3000 cơng việc mẫu Việc nhập liệu chạy tự động nhanh (3000 -> 5000 dịng) Đảm bảo tính đắn liệu Tuần 4, 5: - Thiết kế 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ề Người phụ trách: Anh Lê Văn Hậu Nguyễn Ngọc Nghĩa 20 - Trang thành phố Trang Đăng ký công việc, Xác nhận Hồn tất Trang cơng việc u thích Trang 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, Kết : - Hoàn chỉnh 80% chức website tìm kiếm việc làm Vẫn cịn số lỗi khơng đáng kể Người dùng đăng ký công việc 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 VeNJOB Solr server Tiến hành index liệu lên Solr Tạo form tìm kiếm cơng việc Báo cáo tuần Kết : - Người dùng tìm kiếm cơng việc xác đến 90% Tìm kiếm tiếng Việt ngôn ngữ khác Tuần 7: - Mở rộng số lượng công việc cách crawl liệu từ careerbuilder.vn Viết file crawl liệu Việc crawl liệu tự động chạy ngày lần nhờ lịch trình tạo sẵn Viết file lưu 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 Kết : - Các liệu cơng việc có liên kết với đảm bảo tính xác Người phụ trách: Anh Lê Văn Hậu Nguyễn Ngọc Nghĩa 21 Đảm bảo việc lưu liệu nhanh, số lượng công việc lên tới 20000 công việc Tuần 8: - - Thiết kế trang admin Người udnfg admin đăng nhập vào đưuọc xác thực có phải admin hay khơng Admin có quyền quản lý tất người dùng Admin có quyền quản lý tất cơng việc đăng ký Admin có quyền xem tất người dùng có đăng ký công việc Báo cáo tuần 8, báo cáo tổng kết đồ án Kết : - VeNJOB hoàn chỉnh mức 90%, có chức bản, tìm kiếm nâng cao, quản lý website tìm kiếm việc làm thông thường Người phụ trách: Anh Lê Văn Hậu Nguyễn Ngọc Nghĩa 22 TÀI LIỆU THAM KHẢO Linux/Ubuntu http://ubuntu-manual.org/ Git https://try.github.io/ https://git-scm.com/docs Rubocop – Coding standard https://github.com/rubocop-hq/ruby-style-guide https://github.com/rubocop-hq/rails-style-guide Ruby https://try.ruby-lang.org/ https://www.ruby-lang.org/en/documentation/quickstart/ https://learnrubythehardway.org/book/ Rbenv https://github.com/rbenv/rbenv Ruby on Rails https://www.learnenough.com/ruby-on-rails-4th-edition-tutorial Và số tài liệu giới hạn công ty Người phụ trách: Anh Lê Văn Hậu Nguyễn Ngọc Nghĩa 23 TỔNG KẾT Với thời gian tháng, dẫn dắt mentor Lê Văn Hậu anh chị cơng ty, em hồn thành VeNJOB đạt đa số yêu cầu ban đầu Điều làm cho VeNJOB mang chức website tìm kiếm cơng việc áp dụng công nghệ ngôn ngữ – Ruby – mà trước em chưa tiếp cận Em xin chân thành cảm ơn anh Lê Văn Hậu, anh lê Hồng Hiếu, anh Đồ Hồng Sơn anh/chị công ty tạo điều kiện dẫn dắt em, giúp em hoàn thành tốt đồ án VeNJOB Người phụ trách: Anh Lê Văn Hậu Nguyễn Ngọc Nghĩa ... 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 Ruby on Rails? ?? nhằm mục đích giúp sinh viên thực tập đào tạo tồn diện lập trình website, đồng thời... - Làm quen với công cụ Linux/Ubuntu công ty - Học cách trao đổi, làm việc qua email - Báo cáo tuần - Tìm hiểu ngơn ngữ lập trình Ruby - Tìm hiểu Git - Thực hành Ruby - Thực hành Git - Báo cáo. .. thức framework Ruby on Rails thông qua thiết kế website nhỏ chạy Ruby on Rails (https://www.learnenough.com /ruby- on- rails4 th-edition-tutorial/beginning) - Tìm hiểu framework Rails: Rails web framework