Đà Nẵng, 01/2024 ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT KHOA CÔNG NGHỆ SỐ ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC NGÀNH: CÔNG NGHỆ THÔNG TIN CHUYÊN NGÀNH: CÔNG NGHỆ THÔNG TIN ĐỀ TÀI: XÂY D
Trang 1Đà Nẵng, 01/2024
ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
KHOA CÔNG NGHỆ SỐ
ĐỒ ÁN TỐT NGHIỆP
ĐẠI HỌC NGÀNH: CÔNG NGHỆ THÔNG TIN CHUYÊN NGÀNH: CÔNG NGHỆ THÔNG TIN
ĐỀ TÀI: XÂY DỰNG WEBSITE TUYỂN DỤNG VÀ TÌM KIẾM VIỆC LÀM TẠI TP ĐÀ NẴNG
Sinh viên thực hiện : Võ Phong Nhã
Trang 2ĐỀ TÀI: XÂY DỰNG WEBSITE TUYỂN DỤNG VÀ TÌM KIẾM VIỆC LÀM TẠI TP ĐÀ NẴNG
Giảng viên hướng dẫn duyệt
Trang 3i
NHẬN XÉT CỦA NGƯỜI HƯỚNG DẪN
Trang 5Tóm lại, website “Tuyển dụng và tìm kiếm việc làm tại TP Đà Nẵng” được xây dựng nhằm phục vụ, hỗ trợ những cá nhân, tổ chức đang có nhu cầu tuyển dụng và tìm việc làm tại TP Đà Nẵng
Trang 6Website tuyển dụng và tìm kiếm việc làm tại TP Đà Nẵng
2 Các số liệu, tài liệu ban đầu
- Dựa trên quá trình phân tích thiết kế - Các tài liệu kiến thức nắm được qua quá trình học tập và làm việc
3 Nội dung chính của đồ án
- Mở đầu - Chương 1: Cơ sở lý thuyết - Chương 2: Phân tích thiết kế hệ thống - Chương 3: Xây dựng chương trình - Kết luận & hướng phát triển
Đà Nẵng, ngày 28 tháng 01 năm 2024
Trang 7v
LỜI NÓI ĐẦU
Ngày nay, công nghệ thông tin đã có những bước phát triển mạnh mẽ theo cả chiều rộng và sâu Máy tính điện tử và điện thoại di động không còn là một thứ phương tiện quý hiếm mà đang ngày càng trở thành một công cụ làm việc và giải trí thông dụng của con người, không chỉ ở công sở mà còn ngay cả trong gia đình
Đứng trước vai trò của thông tin hoạt động cạnh tranh gay gắt, các tổ chức và các doanh nghiệp đều tìm mọi biện pháp để xây dựng hoàn thiện hệ thống thông tin của mình nhằm tin học hóa các hoạt động tác nghiệp của đơn vị
Hiện nay các công ty tin học hàng đầu thế giới không ngừng đầu tư và cải thiện các giải pháp cũng như các sản phẩm nhằm cho phép tiến hành tự động hóa trên Internet Thông qua các sản phẩm và công nghệ này, chúng ta dễ dàng nhận ra tầm quan trọng và tính tất yếu của website Với những thao tác đơn giản trên máy có nối mạng Internet bạn sẽ có tận tay những gì mình cần mà không phải mất nhiều thời gian Bạn chỉ cần vào các trang web làm theo hướng dẫn và click vào những gì bạn cần Các hoạt động sẽ thực hiện ngay trên hệ thống đó
Ở Việt Nam cũng có rất nhiều trường đại học tự động hóa các quy trình trên hệ thống website nhưng do những khó khăn về cơ sở hạ tầng như viễn thông chưa phát triển mạnh nên các quy trình vẫn còn rất nhiều sổ sách, giấy tờ thủ công dẫn đến thiếu hiệu quả, mất khá nhiều thời gian
Để tiếp cận và góp phần đẩy mạnh sự phổ biến và tiện ích của website, em đã tìm hiểu và thực hiện đề tài “Website tuyển dụng và tìm kiếm việc làm tại TP Đà Nẵng”
Em cũng xin gửi lời cảm sâu sắc đến GVHD TS Hoàng Thị Mỹ Lệ với sự hướng dẫn tận tình em đã hoàn thành đồ án tốt nghiệp này Tuy đã cố gắng hết sức tìm hiểu, phân tích thiết kế và cài đặt hệ thống nhưng chắc rằng không tránh khỏi những thiếu sót Em rất mong nhận được sự thông cảm và góp ý của quý Thầy cô
Em xin chân thành cảm ơn!
Trang 8Em xin cam đoan:
- Những nội dung trong luận văn này do em thực hiện dưới sự hướng dẫn của TS Hoàng Thị Mỹ Lệ
- Mọi tham khảo trong luận văn đều được trích dẫn rõ ràng tên tác giả, tên công trình, thời gian, địa điểm công bố
- Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, chúng em xin chịu hoàn toàn trách nhiệm
Sinh viên thực hiện
Võ Phong Nhã
Trang 9vii
MỤC LỤC
NHẬN XÉT CỦA NGƯỜI HƯỚNG DẪN i
NHẬN XÉT CỦA NGƯỜI PHẢN BIỆN ii
Chương 1: CƠ SỞ LÝ THUYẾT 4
1.1 Hệ quản trị cơ sở dữ liệu MySQL 4
1.1.1 Khái quát về hệ quản trị CSDL MySQL 4
1.1.2 Đặc điểm chính của hệ quản trị CSDL MySQL 4
1.1.3 Quy trình hoạt động của MySQL 5
Trang 101.4.2 Đặc điểm và tính năng 10
1.4.2.1 Hỗ trợ mã hóa thông minh 10
1.4.2.2 Gỡ lỗi, kiểm tra và lập hồ sơ ứng dụng của bạn 10
1.4.2.3 Môi trường phát triển 11
1.4.2.4 Công cụ dành cho nhà phát triển tích hợp 11
1.4.2.5 Hỗ trợ các framework chính 11
Chương 2: PHÂN TÍCH THIẾT KẾ HỆ THỐNG 13
2.1 Đặc tả yêu cầu phần mềm (Software Requirements) 13
Trang 122.3.12 Use-case gửi email cho ứng viên 32
2.3.12.1 Kịch bản 32
2.3.12.2 Sơ đồ hoạt động 32
2.3.12.3 Sơ đồ tuần tự 33
2.4 Sơ đồ ERD 34
Chương 3: XÂY DỰNG CHƯƠNG TRÌNH 35
3.1 Trang dành cho Ứng viên và Khách vãng lai 35
3.1.1 Trang chủ 35
3.1.2 Trang Việc làm 35
3.1.3 Trang Chi tiết việc làm 36
3.1.4 Trang Cẩm nang -Tin tức 36
3.1.5 Trang Chi tiết Bài viết 37
3.1.6 Trang Nhà tuyển dụng 37
3.1.7 Trang Chi tiết Nhà tuyển dụng 38
3.1.8 Trang Đăng nhập 38
3.1.9 Trang Đăng ký 39
3.1.10 Trang Quên mật khẩu 39
3.2 Trang dành cho Nhà tuyển dụng 40
3.2.1 Trang đăng nhập 40
3.2.2 Trang đăng ký 40
3.2.3 Trang Dashboard 41
3.2.4 Trang Quản lý đăng tuyển 41
3.2.5 Trang Tạo tin tuyển dụng 42
3.2.6 Trang Quản lý ứng viên 42
3.2.7 Trang Thông tin công ty 43
3.2.8 Trang Thông tin tài khoản 43
3.2.9 Trang Đổi mật khẩu 44
Trang 13xi
3.2.11 Trang Tạo Email 45
3.3 Trang dành cho Admin 46
3.3.1 Trang Quản lý việc làm 46
3.3.2 Trang Quản lý Nhà tuyển dụng 46
3.3.3 Trang Quản lý Bài viết 47
3.3.4 Trang Quản lý hình ảnh – video 48
KẾT LUẬN & HƯỚNG PHÁT TRIỂN 50
TÀI LIỆU THAM KHẢO 51
Trang 14Hình 1.1 Hình ảnh MySQL 4
Hình 1.2 Mô hình hoạt động Client – Server 5
Hình 1.3 Quy trình hoạt động của PHP 6
Hình 1.4 Giao diên Web server (XAMPP) 7
Hình 1.5 Mô hình MVC 8
Hình 2.1 Sơ đồ Use-case 14
Hình 2.2 Sơ đồ hoạt động use-case đăng nhập 16
Hình 2.3 Sơ đồ tuần tự use-case đăng nhập 16
Hình 2.4 Sơ đồ hoạt động use-case đăng ký 18
Hình 2.5 Sơ đồ tuần tự use-case đăng ký 18
Hình 2.6 Sơ đồ hoạt động use-case xem TTCT việc làm 19
Hình 2.7 Sơ đồ tuần tự use-case xem TTCT việc làm 20
Hình 2.8 Sơ đồ hoạt động use-case xem TTCT nhà tuyển dụng 21
Hình 2.9 Sơ đồ tuần tự use-case xem TTCT nhà tuyển dụng 21
Hình 2.10 Sơ đồ hoạt động use-case xem TTCT bài viết 22
Hình 2.11 Sơ đồ tuần tự use-case xem TTCT bài viết 22
Hình 2.12 Sơ đồ hoạt động use-case cập nhật tài khoản 23
Hình 2.13 Sơ đồ tuần tự use-case cập nhật tài khoản 24
Hình 2.14 Sơ đồ hoạt động use-case nộp CV ứng tuyển việc làm 25
Hình 2.15 Sơ đồ tuần tự use-case nộp CV ứng tuyển việc làm 25
Hình 2.16 Sơ đồ hoạt động use-case quên mật khẩu 26
Hình 2.17 Sơ đồ tuần tự use-case quên mật khẩu 27
Hình 2.18 Sơ đồ hoạt động use-case đổi mật khẩu 28
Hình 2.19 Sơ đồ tuần tự use-case đổi mật khẩu 29
Hình 2.20 Sơ đồ hoạt động use-case cập nhật thông tin công ty 30
Hình 2.21 Sơ đồ tuần tự use-case cập nhật thông tin công ty 31
Hình 2.22 Sơ đồ hoạt động use-case xem CV ứng tuyển 31
Hình 2.23 Sơ đồ tuần tự use-case xem CV ứng tuyển 32
Hình 2.24 Sơ đồ hoạt động use-case gửi email cho ứng viên 32
Hình 2.25 Sơ đồ tuần tự use-case gửi email cho Ứng viên 33
Hình 2.26 Sơ đồ ERD 34
Hình 3.1 Giao diện trang chủ 35
Hình 3.2 Giao diện trang việc làm 35
Trang 15xiii
Hình 3.4 Giao diện trang cẩm nang – tin tức 36
Hình 3.5 Giao diện trang chi tiết bài viết 37
Hình 3.6 Giao diện trang nhà tuyển dụng 37
Hình 3.7 Giao diện trang chi tiết nhà tuyển dụng 38
Hình 3.8 Giao diện trang đăng nhập - Ứng viên 38
Hình 3.9 Giao diện trang đăng ký - Ứng viên 39
Hình 3.10 Giao diện trang quên mật khẩu - Ứng viên 39
Hình 3.11 Giao diện trang đăng nhập 40
Hình 3.12 Giao diện trang đăng kí 40
Hình 3.13 Giao diện trang dashboard 41
Hình 3.14 Giao diện trang quản lý đăng tuyển 41
Hình 3.15 Giao diện trang tạo tin tuyển dụng 42
Hình 3.16 Giao diện trang quản lý ứng viên 42
Hình 3.17 Giao diện trang thông tin công ty 43
Hình 3.18 Giao diện trang thông tin tài khoản 43
Hình 3.19 Giao diện trang đổi mật khẩu 44
Hình 3.20 Giao diện trang cấu hình email 44
Hình 3.21 Giao diện trang tạo email 45
Hình 3.22 Giao diện trang quản lý việc làm 46
Hình 3.23 Giao diện trang quản lý nhà tuyển dụng 46
Hình 3.24 Giao diện trang quản lý bài viết 47
Hình 3.25 Giao diện trang cập nhật danh mục bài viết 47
Hình 3.26 Giao diện trang tạo bài viết 48
Hình 3.27 Giao diện trang liên kết mạng xã hội 48
Hình 3.28 Giao diện trang quản lý slideshow 49
Trang 16Bảng 2.1 Kịch bản use-case đăng nhập 15
Bảng 2.2 Kịch bản use-case đăng ký 17
Bảng 2.3 Kịch bản use-case xem TTCT việc làm 19
Bảng 2.4 Kịch bản use-case xem TTCT Nhà tuyển dụng 20
Bảng 2.5 Kịch bản use-case xem TTCT bài viết 22
Bảng 2.6 Kịch bản use-case cập nhật tài khoản 23
Bảng 2.7 Kịch bản use-case nộp CV ứng tuyển 24
Bảng 2.8 Kịch bản use-case quên mật khẩu 26
Bảng 2.9 Kịch bản use-case đổi mật khẩu 27
Bảng 2.10 Kịch bản use-case cập nhật thông tin công ty 29
Bảng 2.11 Kịch bản use-case xem CV ứng tuyển 31
Bảng 2.12 Kịch bản use-case gửi email cho ứng viên 32
Trang 17- MVC: Model – View – Controller
- ERD: Entity Relationship Diagram
- UI: Giao diện
- CV: Curriculum Vitae (Hồ sơ ứng tuyển)
- TTCT: Thông tin chi tiết
Trang 181 Mục đích đề tài
MỞ ĐẦU
Để tìm kiếm việc làm phù hợp không phải là một việc dễ dàng, nhu cầu của nhà tuyển dụng cũng như nhu cầu của người tìm việc ngày càng tăng Bên cạnh đó thì việc quản lý tìm kiếm và đăng việc như thế nào cũng là một câu hỏi lớn cần giải quyết Vậy việc quản lý việc làm như thế nào và bằng cách gì? Quản lý việc tìm kiếm như thế nào? Hồ sơ và việc làm lưu trữ như thế nào? Quản lý như thế nào được gọi là tiện lợi, ít tốn công sức nhưng lại cho ra kết quả một cách hiệu quả?
“Website tuyển dụng và tìm kiếm việc làm tại TP Đà Nẵng” đáp ứng nhu cầu tìm việc làm và tuyển dụng hiện nay Tạo cơ hội cho ứng viên tìm được việc làm thích hợp cũng như nhà tuyển dụng tìm được nhân tài phù hợp
2 Mục tiêu đề tài
Hiện nay, các website tìm kiếm việc làm ở Việt Nam khá phát triển nhưng trên địa bàn thành phố Đà Nẵng vẫn chưa có nhiều website đáp ứng được nhu cầu của ứng viên cũng như nhà tuyển dụng Với sự phát triển mạnh mẽ của thành phố Đà Nẵng hiện nay thì nhu cầu tìm kiếm việc làm trở nên cấp thiết và việc tìm kiếm việc làm online rất được ưa chuộng bởi sự thuận tiện mà nó mang lại Từ đó, đề tài “Xây dựng website tuyển dụng và tìm kiếm việc làm tại TP Đà Nẵng” đặt ra nhằm giúp việc tìm kiếm việc làm cũng như tuyển dụng trở nên dễ dàng và linh hoạt hơn, tạo hiệu quả và tiện ích cho doanh nghiệp cũng như người dân TP Đà Nẵng và lân cận với các mục tiêu cụ thể sau:
− Cho phép ứng viên tìm kiếm việc làm phù hợp và nộp CV ứng tuyển sau khi đã tạo tài khoản thành công
− Cho phép nhà tuyển dụng thiết lập tài khoản của doanh nghiệp mình và tiến hành các bước tuyển dụng
− Các ứng viên, nhà tuyển dụng được nhận các email thông báo về tài khoản, việc làm và những thông tin liên quan
Trang 19Xây dựng website tuyển dụng và tìm kiếm việc làm tại TP Đà Nẵng
SVTH: Võ Phong Nhã Người hướng dẫn: TS Hoàng Thị Mỹ Lệ 2
3 Đối tượng nghiên cứu và phạm vi nghiên cứu a Đối tượng nghiên cứu
- Nhà tuyển dụng
- Ứng viên tìm kiếm việc làm
- Nhân viên quản trị hệ thống
- Phương pháp nghiên cứu thực tiễn: tạo ra sản phẩm và không ngừng cải tiến
b Lựa chọn giải pháp công nghệ:
- Sử dụng ngôn ngữ chính là HTML, CSS để phát triển giao diện Ngoài ra còn sử dụng JavaScript và Bootstrap để làm website thêm sống động, hiệu ứng đẹp mắt hơn
- Sử dụng ngôn ngữ PHP kết hợp với framework Laravel để viết api và phát triển website theo kiến trúc MCV
- Sử dụng hệ quản trị CSDL MySQL để lưu trữ CSDL cùng với công cụ XamPP giúp việc thao tác trên CSDL dễ dàng hơn
- Ngoài ra còn có các công cụ hỗ trợ khác như: PhpStorm để viết code, Figma để thiết kế giao diện và GitHub để lưu trữ code
5 Cấu trúc đồ án tốt nghiệp Mở đầu
Giới thiệu lý do và các mục tiêu mà đề tài cần giải quyết, phạm vi nghiên cứu của đề tài Giới thiệu tóm tắt nội dung sẽ được trình bày trong các chương trình tiếp theo Nghiên cứu, tìm hiểu và đưa ra lý do chọn đề tài, mục tiêu và mục đích khi xây dựng và phát triển đề tài Xác định rõ phạm vi và đối tượng hướng đến, giải pháp công nghệ để triển khai, xây dựng đề tài, đồng thời phân tích đặc tả yêu cầu nghiệp vụ
Chương 1: Cơ sở lý thuyết
Tìm hiểu, giới thiệu tổng quát các kiến thức về ngôn ngữ lập trình JavaScript, và hệ quản trị cơ sở dữ liệu MySQL
Trang 20Chương 2: Phân tích thiết kế hệ thống
Phân tích các tác nhân và chức năng của từng tác nhân của hệ thống Thiết kế sơ đồ use-case, sơ đồ hoạt động, sơ đồ ERD Thiết kế cơ sở dữ liệu Xây dựng kịch bản cho từng use-case hệ thống
Chương 3: Xây dựng chương trình
Xây dựng giao diện và chức năng của hệ thống
Kết luận và hướng phát triển
Kết luận chung cho các chương trong đồ án Trình bày những vấn đề đã giải quyết đồng thời trình bày hướng phát triển
Trang 21Xây dựng website tuyển dụng và tìm kiếm việc làm tại TP Đà Nẵng
SVTH: Võ Phong Nhã Người hướng dẫn: TS Hoàng Thị Mỹ Lệ 4
Chương 1: CƠ SỞ LÝ THUYẾT
1.1 Hệ quản trị cơ sở dữ liệu MySQL
MySQL [1] là một hệ quản trị cơ sở dữ liệu quan hệ mã nguồn mở phổ biến và được sử dụng rộng rãi trên toàn thế giới Nó được phát triển bởi Oracle Corporation và được phân phối dưới dạng phần mềm miễn phí hoặc có giấy phép thương mại MySQL được xây dựng trên ngôn ngữ truy vấn cấu trúc (SQL) và cung cấp một loạt các tính năng và công cụ cho việc quản lý và truy xuất cơ sở dữ liệu
Hình 1.1 Hình ảnh MySQL
- Hỗ trợ ngôn ngữ truy vấn cấu trúc (SQL): MySQL tuân thủ chuẩn SQL và
cung cấp các câu lệnh và chức năng để truy vấn, thêm, sửa đổi và xóa dữ liệu trong cơ sở dữ liệu
- Độ tin cậy và hiệu suất: MySQL được tối ưu hóa để cung cấp hiệu suất cao và
độ tin cậy trong việc xử lý các truy vấn và thao tác cơ sở dữ liệu
- Khả năng mở rộng: MySQL cho phép mở rộng cả theo chiều ngang (horizontal
scaling) và theo chiều dọc (vertical scaling), cho phép bạn tăng cường khả năng chịu tải và quy mô của cơ sở dữ liệu
- Hỗ trợ đa nền tảng: MySQL có thể chạy trên nhiều hệ điều hành, bao gồm
Windows, macOS và các bản phân phối Linux
Trang 22- Bảo mật: MySQL cung cấp các tính năng bảo mật như phân quyền người dùng
và mã hóa dữ liệu để bảo vệ cơ sở dữ liệu khỏi truy cập trái phép
- Kết nối: Người dùng kết nối đến MySQL Server bằng các ứng dụng hoặc công
cụ quản lý cơ sở dữ liệu
- Xử lý yêu cầu: MySQL Server nhận yêu cầu từ người dùng và xử lý các truy
vấn SQL tương ứng Điều này bao gồm việc phân tích cú pháp, tạo kế hoạch truy vấn, truy xuất dữ liệu từ bộ nhớ hoặc đĩa, và trả về kết quả cho người dùng
- Lưu trữ và truy xuất dữ liệu: MySQL sử dụng cấu trúc bảng để lưu trữ dữ
liệu dưới dạng hàng và cột Dữ liệu được lưu trữ trong các tập tin và các chỉ mục được tạo để tăng tốc độ truy xuất dữ liệu
- Bảo đảm tính toàn vẹn dữ liệu: MySQL hỗ trợ các ràng buộc (constraints) như
khóa ngoại (foreign key) và quản lý các giao dịch để đảm bảo tính toàn vẹn dữ liệu
- Sao lưu và phục hồi: MySQL cung cấp các công cụ để sao lưu và phục hồi dữ
liệu, bảo vệ dữ liệu khỏi mất mát hoặc hỏng hóc
Hình 1.2 Mô hình hoạt động Client – Server
Đây là một khái quát về hệ quản trị cơ sở dữ liệu MySQL và các đặc điểm và quy trình hoạt động chính của nó MySQL có rất nhiều tính năng và khả năng mạnh mẽ, là một công cụ quan trọng cho việc lưu trữ và quản lý dữ liệu.
1.2 Ngôn ngữ PHP [2] [3]
- PHP - viết tắt hồi quy của "Hypertext Preprocessor", là một ngôn ngữ lập trình kịch
Trang 23Xây dựng website tuyển dụng và tìm kiếm việc làm tại TP Đà Nẵng
SVTH: Võ Phong Nhã Người hướng dẫn: TS Hoàng Thị Mỹ Lệ 6
bản được chạy ở phía server nhằm sinh ra mã html trên client PHP đã trải qua rất nhiều phiên bản và được tối ưu hóa cho các ứng dụng web, với cách viết mã rõ rãng, tốc độ nhanh, dễ học nên PHP đã trở thành một ngôn ngữ lập trình web rất phổ biến và được ưa chuộng
- PHP chạy trên môi trường Webserver và lưu trữ dữ liệu thông qua hệ quản trị cơ sở dữ liệu nên PHP thường đi kèm với Apache, MySQL và hệ điều hành Linux (LAMP)
• Apache là một phần mềm web server có nhiệm vụ tiếp nhận request từ trình
duyệt người dùng sau đó chuyển giao cho PHP xử lý và gửi trả lại cho trình
duyệt • MySQL cũng tương tự như các hệ quản trị cơ sở dữ liệu khác (Postgress,
Oracle, SQL server ) đóng vai trò là nơi lưu trữ và truy vấn dữ liệu • Linux: Hệ điều hành mã nguồn mở được sử dụng rất rộng rãi cho các
webserver Thông thường các phiên bản được sử dụng nhiều nhất là RedHat
Enterprise Linux, Ubuntu
Trang 241.2.3 Các bước cài đặt Web server (XAMPP) [4]
- Download XAMPP tại https://www.apachefriends.org/download.html và tiến hành cài đặt như các chương trình thông thường
- Start Apache và MySQL trong XAMPP control panel
Hình 1.4 Giao diên Web server (XAMPP)
- Gõ vào trình duyệt địa chỉ localhost Nếu hiện ra màn hình sau thì việc cài đặt đã thành công
1.3 Framework Laravel [5]
- Framework chính là một thư viện với các tài nguyên có sẵn cho từng lĩnh vực để lập trình viên sử dụng thay vì phải tự thiết kế Có Framework, lập trình viên chỉ tìm hiểu và khai thác những tài nguyên đó, gắn kết chúng lại với nhau và hoàn chỉnh sản phẩm của mình Đối với lập trình viên trong mỗi một lĩnh vực, họ cần phải xây dựng các lớp chương trình để xây dựng nên những phần mềm, ứng dụng thành phẩm
- PHP framework là thư viện làm cho sự phát triển của những ứng dụng web viết bằng ngôn ngữ PHP trở nên trôi chảy hơn Bằng cách cung cấp 1 cấu trúc cơ bản để xây dựng những ứng dụng đó Hay nói cách khác, PHP framework giúp bạn thúc đẩy nhanh chóng quá trình phát triển ứng dụng Giúp bạn tiết kiệm
Trang 25Xây dựng website tuyển dụng và tìm kiếm việc làm tại TP Đà Nẵng
SVTH: Võ Phong Nhã Người hướng dẫn: TS Hoàng Thị Mỹ Lệ 8
được thời gian, tăng sự ổn định cho ứng dụng Giảm thiểu số lần phải viết lại code cho lập trình viên
Hình 1.5 Mô hình MVC
- MVC (Model-View-Controller) là mẫu kiến trúc phần mềm trên máy tính nhằm mục đích tạo lập giao diện cho người dùng Theo đó, hệ thống MVC được chia thành ba phần có khả năng tương tác với nhau và tách biệt các nguyên tắc nghiệp vụ với giao diện người dùng
- Ba thành phần bao gồm: • Controller: Giữ nhiệm vụ nhận điều hướng các yêu cầu từ người dùng và
gọi đúng những phương thức xử lý chúng • Model: Là thành phần chứa tất cả các nghiệp vụ logic, phương thức xử lý,
truy xuất database, đối tượng mô tả dữ liệu như các Class, hàm xử lý… • View: Đảm nhận việc hiển thị thông tin, tương tác với người dùng, nơi
chứa tất cả các đối tượng GUI như textbox, images…
- Bằng cách này, thông tin nội hàm được xử lý tách biệt với phần thông tin xuất hiện trong giao diện người dùng Bảo đảm các nguyên tắc nghề nghiệp của lập trình viên
Trang 261.3.3 Framework Laravel là gì?
- Laravel là một PHP framework, có mã nguồn mở và miễn phí, được xây dựng nhằm hỗ trợ phát triển các phần mềm, ứng dụng, theo kiến trúc MVC Hiện nay, Laravel đang là PHP framework phổ biến nhất và tốt nhất
- Những lý do khiến Laravel trở nên rộng rãi: • Cú pháp dễ hiểu – rõ ràng
• Hệ thống đóng gói modular và quản lý gói phụ thuộc • Nhiều cách khác nhau để truy cập vào các cơ sở dữ liệu quan hệ • Nhiều tiện ích khác nhau hỗ trợ việc triển khai vào bảo trì ứng dụng
Laravel được Taylor Otwell tạo ra như một giải pháp thay thế cho CodeIgniter, cung cấp nhiều tính năng quan trọng hơn như xác thực và phân quyền Tôi cũng không chắc về điều này, nhưng có thể Taylor vốn là một NET developer khi bắt đầu có nhu cầu làm việc với PHP khoảng vào những năm 2010-2011, đã chọn CodeIgniter khi đó đang là một ngôi sao mới nổi, thậm chí lấn át cả Symfony gạo cội Và Taylor nhanh chóng nhận ra những điểm khiếm khuyết ở CodeIgniter, với tài năng và kiến thức xuất sắc về designpattern của mình, Taylor quyết định tự mình tạo ra một framework sao cho thật đơn giản, dễ hiểu, hỗ trợ lập trình viên hiện thực ý tưởng một cách nhanh nhất bằng nhiều tính năng hỗ trợ như Eloquent ORM mạnh mẽ, xác thực đơn giản, phân trang hiệu quả, và hơn thế nữa
1.4 Công cụ PhpStorm [4]
- PhpStorm là một môi trường phát triển tích hợp (IDE), đa nền tảng cho PHP, được xây dựng bởi công ty JetBrains, hãng phần mềm hàng đầu thế giới về các công cụ cho lập trình và phát triển PhpStorm cung cấp trình soạn thảo cho PHP, HTML và JavaScript với khả năng phân tích mã nhanh, ngăn ngừa lỗi và tái cấu trúc tự động cho mã PHP và JavaScript Tính đến năm 2020, có khoảng 600.000 người dùng sử dụng bản quyền phần mềm PhpStorm trên toàn thế giới Điều đó cho thấy mức độ phổ biến “đáng nể” của phần mềm này trong lĩnh vực lập trình và phát triển
- JetBrains PhpStorm được sử dụng chủ yếu bởi các nhà phát triển web, những người cần những công cụ thích hợp để chỉnh sửa PHP, HTML, CSS, JavaScript và các tập tin XML
Trang 27Xây dựng website tuyển dụng và tìm kiếm việc làm tại TP Đà Nẵng
SVTH: Võ Phong Nhã Người hướng dẫn: TS Hoàng Thị Mỹ Lệ 10 - PhpStorm giúp người dùng tạo và chỉnh sửa mã nguồn bất kể ngôn ngữ lập trình
mà họ đang sử dụng Như bất kỳ trình soạn thảo IDE khác, nó đi kèm với các tính năng cơ bản như đánh dấu trang, hoàn thành mã, phóng to thu nhỏ, các điểm ngắt, vv Tuy nhiên, nó có chứa các tính năng khác nhau như các macro, phân tích mã và nhanh chóng chuyển hướng để làm cho công việc của bạn dễ dàng hơn nhiều
- PhpStorm được phát triển bằng ngôn ngữ Java do đó thừa hưởng rất nhiều lợi ích từ ngôn ngữ này, phần mềm chạy rất nhanh trên Linux, thích hợp code PHP, tối ưu việc sử dụng tài nguyên v.v…
1.4.2.1 Hỗ trợ mã hóa thông minh
- PhpStorm là một IDE PHP mạnh mẽ của JetBrains, hỗ trợ nhiều phiên bản PHP từ 5.3 đến 7.2 Đặc điểm nổi bật của nó bao gồm khả năng ngăn chặn lỗi nhanh chóng, tự động hoàn thành mã, và tái cấu trúc mã tốt nhất PhpStorm cũng cung cấp tính năng gỡ lỗi cấu hình và trình chỉnh sửa mở rộng cho HTML, CSS, và JavaScript
- Trình chỉnh sửa mã PHP thông minh của PhpStorm hỗ trợ hoàn thành mã, tô sáng cú pháp, và cấu hình định dạng mã mở rộng Tính năng tái cấu trúc tự động giúp xử lý mã một cách an toàn và dễ dàng thiết lập dự án PhpStorm "lấy" mã của bạn, hiểu sâu sắc cấu trúc và hỗ trợ đầy đủ tính năng của ngôn ngữ PHP cho các dự án hiện đại
- Chức năng phân tích chất lượng mã của PhpStorm bao gồm hàng trăm lần kiểm tra mã để xác minh lỗi và mùi mã, với khả năng sửa lỗi nhanh chóng và cải thiện mã ngay lập tức Tính năng điều hướng và tìm kiếm mã giúp nhà phát triển xử lý mã một cách hiệu quả trong các dự án lớn
- PhpStorm là một công cụ hiệu quả và toàn diện cho phát triển PHP, mang lại trải nghiệm lập trình tiện ích và chất lượng cao
1.4.2.2 Gỡ lỗi, kiểm tra và lập hồ sơ ứng dụng của bạn
- Gỡ lỗi (Debugging): PhpStorm cung cấp trải nghiệm gỡ lỗi không cần cấu hình, cho phép kiểm tra biến, đặt điểm ngắt, và đánh giá biểu thức một cách dễ dàng Hỗ trợ gỡ lỗi từ xa và xử lý đồng thời nhiều phiên bản trang web
- Kiểm thử (Testing): Phát triển bài kiểm tra PHPUnit trực tiếp trong IDE, chạy chúng ngay lập tức, và sử dụng Code Coverage để đảm bảo chất lượng mã
Trang 28- Profiling: Hỗ trợ cấu hình với Xdebug hoặc Zend Debugger, và kiểm tra báo cáo tổng hợp về hiệu suất ứng dụng trong PhpStorm Giúp phân tích và tối ưu hóa mã nguồn cho hiệu suất tốt nhất
1.4.2.3 Môi trường phát triển
- PhpStorm được xây dựng dựa trên nền tảng IntelliJ mã nguồn mở được JetBrains phát triển và hoàn thiện trong hơn 15 năm Tận hưởng trải nghiệm được tinh chỉnh, có thể tùy chỉnh cao mà nó cung cấp để phù hợp với quy trình phát triển của bạn
- VCS: PhpStorm cung cấp giao diện người dùng thống nhất để làm việc với nhiều Hệ thống kiểm soát phiên bản phổ biến, đảm bảo trải nghiệm người dùng nhất quán trên git, GitHub, SVN, Mercurial và Perforce
- Cơ sở dữ liệu & SQL: PhpStorm cung cấp các công cụ và tính năng hỗ trợ mã để làm việc với cơ sở dữ liệu và SQL trong các dự án của bạn Kết nối với cơ sở dữ liệu, chỉnh sửa lược đồ và dữ liệu bảng, chạy truy vấn và thậm chí phân tích lược đồ bằng biểu đồ UML Mã SQL có thể được đưa vào các ngôn ngữ khác hoặc được chỉnh sửa trong SQL Editor, với tính năng đánh dấu cú pháp, hoàn thành mã thông minh, phân tích mã nhanh chóng, định dạng mã và điều hướng có sẵn
1.4.2.4 Công cụ dành cho nhà phát triển tích hợp
- Thực hiện nhiều tác vụ thường xuyên ngay từ IDE, nhờ tích hợp Hệ thống kiểm soát phiên bản, hỗ trợ triển khai từ xa, cơ sở dữ liệu / SQL, công cụ dòng lệnh, Docker, Composer, REST Client và nhiều công cụ khác
Trang 29Xây dựng website tuyển dụng và tìm kiếm việc làm tại TP Đà Nẵng
SVTH: Võ Phong Nhã Người hướng dẫn: TS Hoàng Thị Mỹ Lệ 12 - Công nghệ front-end bao gồm: tận dụng tối đa các công nghệ front-end tiên tiến,
chẳng hạn như HTML 5, CSS, Sass, Less, Stylus, CoffeeScript, TypeScript, Emmet và JavaScript, với tính năng tái cấu trúc, gỡ lỗi và kiểm tra đơn vị có sẵn Xem các thay đổi ngay lập tức trong trình duyệt nhờ Live Edit
Trang 30Chương 2: PHÂN TÍCH THIẾT KẾ HỆ THỐNG
2.1 Đặc tả yêu cầu phần mềm (Software Requirements)
− Đăng nhập/đăng ký với quyền ứng viên − Cập nhật thông tin tài khoản
− Cập nhật CV ứng tuyển − Nộp CV ứng tuyển − Lưu việc làm − Nhận thông báo việc làm, ứng tuyển
− Gửi email thông báo đến ứng viên
− Cập nhật bài viết, danh mục bài viết − Cấp quyền/thu hồi quyền đăng tuyển cho nhà tuyển dụng − Duyệt/từ chối tin tuyển dụng
− Cập nhật thông tin trang tĩnh (Mạng xã hội, slideshow…)
Trang 31Xây dựng website tuyển dụng và tìm kiếm việc làm tại TP Đà Nẵng
SVTH: Võ Phong Nhã Người hướng dẫn: TS Hoàng Thị Mỹ Lệ 14
2.2 Sơ đồ Use-case
Hình 2.1 Sơ đồ Use-case
Trang 322.3 Kịch bản cho Use-case
2.3.1.1 Kịch bản
Mô tả Chức năng đăng nhập cho phép người dùng truy cập vào hệ
thống bằng email và mật khẩu hoặc đăng nhập bằng Google
Tác nhân Ứng viên, Nhà tuyển dụng
Yêu cầu - Thời gian thực hiện không quá 5 giây
- Tên người dùng và mật khẩu phải được xác minh là chính xác
- Thông tin đăng nhập phải được lưu trữ an toàn Bảng 2.1 Kịch bản use-case đăng nhập
Trang 33Xây dựng website tuyển dụng và tìm kiếm việc làm tại TP Đà Nẵng
SVTH: Võ Phong Nhã Người hướng dẫn: TS Hoàng Thị Mỹ Lệ 16
Trang 342.3.2 Use-case đăng ký
2.3.2.1 Kịch bản
Chức năng Đăng ký
Mô tả Chức năng đăng ký cho phép người dùng tạo tài khoản mới trong
hệ thống Chức năng này yêu cầu người dùng cung cấp thông tincá nhân, chẳng hạn như tên, địa chỉ email và mật khẩu
Tác nhân Ứng viên, Nhà tuyển dụng
Đầu vào - Thông tin tài khoản (Họ và tên, email, password)
- Thông tin công ty (dành cho Nhà tuyển dụng)
Đầu ra - Tạo tài khoản mới
- Hiển thị thông báo thành công
Yêu cầu - Cho phép người dùng xác minh địa chỉ email của họ
- Cho phép người dùng xác minh tài khoản của họ bằng cách nhấp vào liên kết trong email xác nhận
- Cho phép người dùng tạo tài khoản bằng các phương thức khác, chẳng hạn như bằng mạng xã hội
Bảng 2.2 Kịch bản use-case đăng ký