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ư
Trang 1ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
XÂY DỤNG WEBSITE TÌM KIẾM VIỆC LÀM THÊM
CHO SINH VIÊN (TẠI TP ĐÀ NẴNG)
Sinh viên thực hiện : Phạm Tấn Dũng
Trang 2Đà Nẵng, tháng 06/2022
Trang 3ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
XÂY DỤNG WEBSITE TÌM KIẾM VIỆC LÀM THÊM
CHO SINH VIÊN (TẠI TP ĐÀ NẴNG)
Giảng viên hướng dẫn duyệt
Đà Nẵng, tháng/2022
Trang 5Giao diện của các trang Admin và trang người dùng.
Đăng ký và đăng nhập với sinh viên và nhà tuyển dụng
Có chức năng đăng tin và đăng hồ sơ
Xem danh sách các tin tuyển dụng và hồ sơ sinh viên
Xem chi tiết tin tuyển dụng và hồ sơ sinh viên
Xem trang cá nhân và lịch sử đăng tin của nhà tuyển dụng
Admin sẽ có chức năng quản lý sinh viên, nhà tuyển dụng, tin tuyển dung, hồ sơsinh viên và ngành nghề làm thêm
Trang 6NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
Giảng viên hướng dẫn: Ths Nguyễn Thị Hà Quyên
Sinh viên thực hiện: Phạm Tấn Dũng Mã SV: 1811505310209
1 Tên đề tài
Xây dựng website tìm kiếm việc làm thêm cho sinh viên (Tại TP.Đà Nẵng)
2 Các số liệu, tài liệu ban đầu
Số lượng sinh viên ở Đà Nẵng có nhu cầu làm thêm rất nhiều:
ĐH Sư phạm Kỹ thuật: hơn 5000 sinh viên
ĐH Kinh tế: hơn 12000 sinh viên
ĐH Sư Phạm: hơn 9000 sinh viên
ĐH Bách Khoa: hơn 15000 sinh viên
Hiện nay cũng có nhiều website có tìm kiếm việc làm tuy nhiên phạm vi tìm kiếmrất rộng nên mục đích của website này là làm riêng cho khu vực Đà Nẵng
Dựa vào website Việc Làm Tốt ( https://www.vieclamtot.com/ )
3 Nội dung chính của đồ án
Chương 1: Cơ sở lý thuyết
Chương 2: Phân tích thiêt kế hệ thống
Chương 3: Demo chương trình
4 Các sản phẩm dự kiến
Website tìm kiếm việc làm thêm cho sinh viên (Tại TP.Đà Nẵng)
5 Ngày giao đồ án Ngày 20/03/2022
6 Các sản phẩm dự kiến Ngày 20/06/2022
Trang 7LỜ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ử 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à cài đặt “Hệ thống website tìm kiếm việc làm thêm cho sinh viên (Tại Tp.
Đà Nẵng)”.
Với sự hướng dẫn tận tình của cô Ths Nguyễn Thị Hà Quyên đã tận tình giúp đỡ, hướng dẫn, chỉ bảo em trong suốt thời gian thực hiện đề tài đồ án tốt nghiệp Đồng thời em cũng xin trân trọng cảm ơn tình cảm quý báu mà thầy cô trường Đại học Sư phạm Kỹ thuật – Đại học Đà Nẵng đã truyền đạt cho em những kinh nghiệm, kỹ thuật
và cách thức trong việc xây dựng đề tài 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 Chúng 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!
i
Trang 8CAM ĐOAN
Em xin cam đoan :
Những nội dung trong luận văn này do chúng em thực hiện dưới sự hướng dẫncủa cô Ths Nguyễn Thị Hà Quyên
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ôngtrì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á, em xin chịuhoàn toàn trách nhiệm
Sinh viên thực hiện
Phạm Tấn Dũng
ii
Trang 9MỤC LỤC
MỤC LỤC iii
DANH MỤC BẢNG BIỂU ix
DANH MỤC HÌNH VẼ x
DANH MỤC CHỮ VIẾT TẮT TIẾNG VIỆT xiii
DANH MỤC CHỮ VIẾT TẮT TIẾNG ANH xiv
MỞ ĐẦU 15
1 Mục tiêu đề tài 15
2 Đối tượng nghiên cứu và phạm vi nghiên cứu 15
a Đối tượng nghiên cứu 15
b Phạm vi nghiên cứu 15
3 Phương pháp nghiên cứu 15
4 Giải pháp công nghệ 15
5 Cấu trúc đồ án 15
Chương 1 CƠ SỞ LÝ THUYẾT 16
1.1 Hệ quản trị cơ sở dữ liệu 16
1.1.1 MySQL là gì? 16
1.1.2 Các thuật ngữ thường gặp cơ bản của MySQL 17
1.1.2.1 Database 17
1.1.2.2 Open Source 17
1.1.2.3 Client-server 18
1.1.2.4 MySQL Client 18
1.1.2.5 MySQL Server 18
1.1.2.6 SQL 19
iii
Trang 101.1.3 Cách thức hoạt động của MySQL 19
1.1.4 Ưu điểm nổi bật của MySQL 20
1.1.4.1 Độ bảo mật cao 20
1.1.4.2 Tốc độ nhanh chóng 20
1.1.4.3 Dễ dàng sử dụng 20
1.1.4.4 Dễ dàng mở rộng 21
1.1.4.5 Hoàn toàn miễn phí 21
1.2 Ngôn ngữ lập trình: Asp.Net MVC 21
1.2.1 Giới thiệu về Asp.Net MVC 21
1.2.2 Lịch sử phát triển 22
1.3 Mô hình triển khai 22
1.3.1 Mô hình MVC 22
1.3.1 Thành phần của MVC 23
1.3.2 Lịch sử của MVC 25
1.3.3 Luồng xử lý trong MVC 25
1.3.4 Ưu và nhược điểm của MVC 26
1.3.4.1 Ưu điểm mô hình MVC 26
1.3.4.2 Nhược điểm mô hình MVC 26
1.4 Bootstrap và responsive 27
Chương 2 PHÂN TÍCH THIẾT KẾ HỆ THỐNG 28
2.1 Đặc tả yêu cầu phần mềm (Software Requirements) 28
2.1.1 Admin 28
2.1.1.1 Đăng nhập 28
2.1.1.2 Cập nhật 28
2.1.2 Sinh viên 28
iv
Trang 112.1.2.1 Đăng nhập 28
2.1.2.2 Cập nhật 28
2.1.2.3 Đăng hồ sơ cá nhân 28
2.1.2.4 Xem 28
2.1.3 Nhà tuyển dụng 28
2.1.3.1 Đăng nhập 28
2.1.3.2 Cập nhật 28
2.1.3.3 Đăng tin tuyển dụng 29
2.1.3.4 Xem 29
2.2 Sơ đồ hoạt động: 29
2.2.1 Actor Admin 29
2.2.1.1 Use-case cập nhật tài khoản sinh viên – nhà tuyển dụng 29
2.2.1.2 Use-case cập nhật tin tuyển dụng – hồ sơ sinh viên 30
2.2.1.3 Use-case cập nhật ngành nghề 30
2.2.2 Actor Sinh Viên 31
2.2.2.1 Use-case cập nhật hồ sơ – thông tin cá nhân 31
2.2.2.2 Use-case đăng hồ sơ cá nhân 31
2.2.3 Actor Nhà Tuyển Dụng 32
2.2.3.1 Use-case cập nhật tin tuyển dụng – thông tin cá nhân 32
2.2.3.2 Use-case đăng tin tuyển dụng 32
2.3 Sơ đồ ERD 33
2.4 Relationship Database trong hệ quản trị cơ sở dữ liệu MySQL 33
2.5 Mô hình khái niệm (Domain Model) 34
2.5.1 Xác định các lớp ứng viên (Candidate Class): 34
2.5.2 Xây dựng sơ đồ Domain Model (Class Diagram - Level 1) : 34
v
Trang 122.6 Kịch bản cho Use-case: 35
2.6.1 Kịch bản cho Usecase Admin: 35
2.6.1.1 Use-case cập nhật tài khoản sinh viên – nhà tuyển dụng 35
2.6.1.2 Use-case cập nhật tin tuyển dụng – hồ sơ sinh viên 35
2.6.1.3 Use-case cập nhật ngành nghề 36
2.6.2 Kịch bản cho use-case Sinh Viên: 36
2.6.2.1 Use-case cập nhật thông tin cá nhân – hồ sơ 36
2.6.2.2 Use-case đăng hồ sơ cá nhân 37
2.6.3 Kịch bản cho use-case Nhà Tuyển Dụng: 37
2.6.3.1 Use-case cập nhật thông tin cá nhân – tin tuyển dụng 37
2.6.3.2 Use-case đăng tin tuyển dụng 38
2.7 Sơ đồ Robustness Diagram 38
2.7.1 Admin 38
2.7.1.1 Robustness Diagram cho use-case cập nhật thông tin sinh viên .38
2.7.1.2 Robustness Diagram cho use-case xóa sinh viên 39
2.7.1.3 Robustness Diagram cho use-case cập nhật thông tin nhà tuyển dụng 39
2.7.1.4 Robustness Diagram cho use-case xóa nhà tuyển dụng 40
2.7.1.5 Robustness Diagram cho use-case cập nhật ngành nghề 40
2.7.1.6 Robustness Diagram cho use-case cập nhật hồ sơ sinh viên 40
2.7.1.7 Robustness Diagram cho use-case cập nhật tin tuyển dụng 41
2.7.2 Sinh viên 41
2.7.2.1 Robustness Diagram cho use-case cập nhật thông tin sinh viên .41
2.7.2.2 Robustness Diagram cho use-case đăng hồ sơ cá nhân 41
vi
Trang 132.7.2.3 Robustness Diagram cho use-case cập nhật hồ sơ cá nhân 42
2.7.2.4 Robustness Diagram cho use-case đăng ký ứng tuyển 42
2.7.3 Nhà tuyển dụng 43
2.7.3.1 Robustness Diagram cho use-case cập nhật thông tin nhà tuyển dụng 43
2.7.3.2 Robustness Diagram cho use-case đăng tin tuyển dụng 43
2.7.3.3 Robustness Diagram cho use-case cập nhật tin tuyển dụng 44
2.8 Sơ đồ Use-case 44
Chương 3 XÂY DỰNG CHƯƠNG TRÌNH 45
3.1 Công cụ xây dựng chương trình 45
3.2 Giao diện chương trình 45
3.2.1 Giao diện Admin 45
3.2.1.1 Giao diện đăng nhập 45
3.2.1.2 Giao diện tran Admin 46
3.2.1.3 Giao diện quản lý sinh viên 46
3.2.1.4 Giao diện cập nhật thông tin sinh viên 47
3.2.1.5 Giao diện quản lý nhà tuyển dụng 47
3.2.1.6 Giao diện cập nhật thông tin nhà tuyển dung 48
3.2.1.7 Giao diện quản lý ngành nghề 48
3.2.1.8 Giao diện quản lý tin việc làm 49
3.2.1.9 Giao diện quản lý hồ sơ sinh viên 49
3.2.2 Giao diện trang người dùng 50
3.2.2.1 Giao diện đăng nhập sinh viên 50
3.2.2.2 Giao diện đăng ký sinh viên 50
3.2.2.3 Giao diện đăng nhập nhà tuyển dụng 51
vii
Trang 143.2.2.4 Giao diện đăng ký nhà tuyển dụng 51
3.2.2.5 Giao diện trang chủ 52
3.2.2.6 Giao diện tin việc làm 53
3.2.2.7 Giao diện tìm kiếm tin việc làm theo ngành nghề 54
3.2.2.8 Giao diện chi tiết tin việc làm 55
3.2.2.9 Giao diện xem chi tiết nhà tuyển dụng 56
3.2.2.10 Giao diện hồ sơ sinh viên 57
3.2.2.11 Giao diện chi tiết hồ sơ sinh viên 58
3.2.2.12 Giao diện xem tin việc làm theo ngành nghề 59
3.2.2.13 Giao diện đăng hồ sơ sinh viên 60
3.2.2.14 Giao diện đăng tin việc làm 61
3.2.2.15 Giao diện xem thông tin cá nhân 62
3.2.2.16 Giao diện chỉnh sửa trang cá nhân 63
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 64
3.1 Kết luận 64
3.1.1 Ưu điểm: 64
3.1.2 Nhược điểm: 64
3.2 Hướng phát triển 64
TÀI LIỆU THAM KHẢO 65
viii
Trang 15DANH MỤC BẢNG BIỂU
Bảng 2.1: Kịch bản cho use-case cập nhật tài khoản sinh viên – nhà tuyển dụng
35
Bảng 2.2: Kịch bản cho use-case cập nhật tin tuyển dụng – hồ sơ sinh viên 35
Bảng 2.3: Kịch bản cho use-case cập nhật ngành nghề 36
Bảng 2.4: Kịch bản cho use-case cập nhật thông tin cá nhân – hồ sơ 36
Bảng 2.5: Kịch bản cho use-case đăng hồ sơ 37
Bảng 2.6: Kịch bản cho use-case cập nhật thông tin cá nhân - tin tuyển dụng 37
Bảng 2.7: Kịch bản cho use-case đăng tin tuyển dụng 38
ix
Trang 16DANH MỤC HÌNH VẼ
Hình 1.1: Logo hệ quản trị cơ sở dữ liệu MySQL 16
Hình 1.2: Open Source 17
Hình 1.3: MySQL Server 18
Hình 1.4: Cách thức hoạt động của MySQL 19
Hình 1.5: Độ bảo mật cao 20
Hình 1.6: Logo Asp.Net MVC 21
Hình 1.7: Lịch sử phát triển của Asp.net 22
Hình 1.8: Mô hình MVC 23
Hình 1.9: Thành phần MVC 24
Hình 1.10: View và Model sẽ được xử lý bởi Controller 25
Hình 1.11: Cấu trúc của Bootstrap 27
Hình 2.1: Sơ đồ hoạt động cho use-case cập nhật tài khoản sinh viên – nhà tuyển dụng 29
Hình 2.2: Sơ đồ hoạt động cho use-case cập nhật tin tuyển dụng – hồ sơ sinh viên 30
Hình 2.3: Sơ đồ hoạt động cho use-casse cập nhật ngành nghề 30
Hình 2.4: Sơ đồ hoạt động cho use-case cập nhật hồ sơ – thông tin cá nhân 31
Hình 2.5: Sơ đồ hoạt động cho use-case đăng hồ sơ cá nhân 31
Hình 2.6: Sơ đồ hoạt động cho use-case cập nhật tin tuyển dụng – thông tin cá nhân 32
Hình 2.7: Sơ đồ hoạt động cho use-case đăng tin tuyển dụng 32
Hình 2.8: Sơ đồ ERD 33
Hình 2.9: Sơ đồ Relationship trong hệ quản trị cơ sở dữ liệu MySQL 33
Hình 2.10: Sơ đồ lớp (Level 1) 34
Hình 2.11: Robustness Diagram cho use-case cập nhật thông tin sinh viên 38
Hình 2.12: Robustness Diagram cho use-case xóa sinh viên 39
Hình 2.13: Robustness Diagram cho use-case cập nhật thông tin nhà tuyển dụng 39
Hình 2.14: Robustness Diagram cho use-case xóa nhà tuyển dụng 40
x
Trang 17Hình 2.15: Robustness Diagram cho use-case cập nhật ngành nghề 40
Hình 2.16: Robustness Diagram cho use-case cập nhật hồ sơ sinh viên 40
Hình 2.17: Robustness Diagram cho use-case cập nhật tin tuyển dụng 41
Hình 2.18: Robustness Diagram cho use-case cập nhật thông tin sinh viên 41
Hình 2.19: Robustness Diagram cho use-case đăng hồ sơ cá nhân 41
Hình 2.20: Robustness Diagram cho use-case cập nhật hồ sơ cá nhân 42
Hình 2.21: Robustness Diagram cho use-case đăng ký ứng tuyển 42
Hình 2.22: Robustness Diagram cho use-case cập nhật thông tin nhà tuyển dụng 43
Hình 2.23: Robustness Diagram cho use-case đăng tin tuyển dụng 43
Hình 2.24: Robustness Diagram cho use-case cập nhật tin tuyển dụng 44
Hình 3.1: Giao diện đăng nhập 45
Hình 3.2: Giao diện trang Admin –Thống kê 46
Hình 3.3: Giao diện quản lý sinh viên 46
Hình 3.4: Giao diện cập nhật thông tin sinh viên 47
Hình 3.5: Giao diện quản lý nhà tuyển dụng 47
Hình 3.6: Giao diện cập nhật thông tin nhà tuyển dụng 48
Hình 3.7: Giao diện quản lý ngành nghề 48
Hình 3.8: Giao diện quản lý tin việc làm 49
Hình 3.9: Giao diện quản lý hồ sơ sinh viên 49
Hình 3.10: Giao diện đăng nhập sinh viên 50
Hình 3.11: Giao diện đăng ký sinh viên 50
Hình 3.12: Giao diện đăng nhập nhà tuyển dụng 51
Hình 3.13: Giao diện trang đăng ký nhà tuyển dụng 51
Hình 3.14: Giao diện trang chủ 52
Hình 3.15: Giao diện tin việc làm 53
Hình 3.16: Giao diện tìm kiếm tin việc làm 54
Hình 3.17: Giao diện chi tiết tin việc làm 55
Hình 3.18: Giao diện xem chi tiết nhà tuyển dụng 56
Hình 3.19: Giao diện hồ sơ sinh viên 57
Hình 3.20: Giao diện chi tiết hồ sơ sinh viên 58
xi
Trang 18Hình 3.21: Giao diện xem tin việc làm theo ngành nghề 59
Hình 3.22: Giao diện đăng hồ sơ sinh viên 60
Hình 3.23: Giao diện đăng tin việc làm 61
Hình 3.24: Giao diện xem thông tin cá nhân 62
Hình 3.25: Giao diện chỉnh sửa trang cá nhân 63
xii
Trang 19DANH MỤC CHỮ VIẾT TẮT TIẾNG VIỆT
Stt Chữ viết tắt Giải nghĩa
xiii
Trang 20DANH MỤC CHỮ VIẾT TẮT TIẾNG ANH
Stt Chữ viết tắt Giải nghĩa Nghĩa tiếng Việt
MVC Model-View-Controller Mô hình thiết kế sử dụng trong kỹ
thuật phần mềm
xiv
Trang 21Xây dựng website tìm kiếm việc làm thêm cho sinh viên (Tại Tp.Đà Nẵng)
MỞ ĐẦU
Hiện nay với số lượng sinh viên trên địa bàn Tp.Đà Nẵng rất nhiều và nhu cầu tìmkiếm việc làm thêm của các sinh viên đang rất nhiều
Để giải quyết nhu cầu đó em muốn xây dựng một hệ thống website có thể hỗ trợ
và giúp các bạn sinh viên tìm kiếm được việc làm thêm một cách dễ dàng hơn
Hiện nay cũng có nhiều website có tìm kiếm việc làm tuy nhiên phạm vi tìm kiếmrất rộng nên mục đích của website này là làm riêng cho khu vực Đà Nẵng
1 Mục tiêu đề tài
Xây dựng website với đầy đủ các tính năng cơ bản của một hệ thống tìm kiếm vàtuyển dụng việc làm, cho phép sinh viên và nhà tuyển dụng có thể tìm kiếm, đăng tintuyển dụng lao động nhanh chóng và dễ dàng
Nhân viên quản lý có thể quản lý người dùng, bài đăng và các ngành nghề mộtcách dễ dàng và tiện lợi
2 Đối tượng nghiên cứu và phạm vi nghiên cứu
a Đối tượng nghiên cứu
Sinh viên tại Tp Đà Nẵng (Đặc biệt là sinh viên UTE)
b Phạm vi nghiên cứu
Tp Đà Nẵng
3 Phương pháp nghiên cứu
Tham khảo các trang website tìm kiếm việc làm online hiện nay như:https://www.vieclamtot.com/
Thực hiện khảo sát đối với sinh viên trên địa bàn Tp Đà Nẵng
Phân tích thiết kết sử dụng các ứng dụng như: StarUML
4 Giải pháp công nghệ
Xây dựng website tìm kiếm việc làm dành cho sinh viên tại Tp Đà Nẵng
5 Cấu trúc đồ án
Chương 1: Cơ sở lý thuyết
Chương 2: Phân tích thiêt kế hệ thống
Trang 22Xây dựng website tìm kiếm việc làm thêm cho sinh viên (Tại Tp.Đà Nẵng)
Chương 3: Demo chương trình
Chương 1
CƠ SỞ LÝ THUYẾT1.1 Hệ quản trị cơ sở dữ liệu
MySQL là một thuật ngữ quen thuộc được sử dụng trong thiết kế website Tuynhiên không phải ai cũng có hiểu biết chi tiết, rõ ràng và đầy đủ về MySQL Tìm hiểuthông tin, các kiến thức hữu ích để biết MySQL là gì, cũng như những thông tin liênquan với hệ quản trị dữ liệu này sẽ giúp chúng ta chủ động, chuẩn xác khi ứng dụngtheo nhu cầu thực tế Với đầy đủ các thông tin liên quan tới MySQL khi được xác định
sẽ là cơ sở kiến thức hữu ích để hỗ trợ cho những yêu cầu thực tế trong công việc
1.1.1 MySQL là gì?
MySQL chính là hệ quản trị cơ sở dữ liệu mã nguồn mở Relational DatabaseManagement System – RDBMS hiện nay được sử dụng phổ biến trên phạm vi toàncầu Hệ quản trị cơ sở dữ liệu này hoạt động dựa trên mô hình tiêu chuẩn là Client(Máy khách) – Server (Máy chủ)
Hình 1.1.1.1.1.1: Logo hệ quản trị cơ sở dữ liệu MySQLHiện nay, những website lớn, hoạt động với lượng người dùng đông đảonhư mạng xã hội Facebook, Yahoo, hay Google, Twitter,… đều đang sử dụng hệ quảntrị dữ liệu MySQL để hỗ trợ cho việc lưu trữ thông tin được thực hiện hiệu quả Từ đó
Trang 23Xây dựng website tìm kiếm việc làm thêm cho sinh viên (Tại Tp.Đà Nẵng)
có thể thấy tính hữu dụng, phổ biến của MySQL trong lĩnh vực thiết kế và phát triểnwebsite
Với hệ thống quản trị cơ sở dữ liệu MySQL khi đưa vào sử dụng được đánh giácao nhờ việc tích hợp với apache cũng như PHP Không chỉ vậy, việc có tính tươngthích với nhiều trình duyệt, với nhiều hệ điều hành tiêu biểu như Ubuntu, Linux,macOS, Microsoft Windows,… càng giúp việc sử dụng MySQL được tin tưởng và ưachuộng nhiều hơn Trong số rất nhiều phần mềm RDBMS thì MySQL được biết tớirộng rãi và phổ biến nhất hiện nay, được ứng dụng cho phát triển nhiều website
1.1.2 Các thuật ngữ thường gặp cơ bản của MySQL
Có nhiều khái niệm, những thuật ngữ có liên quan trực tiếp tới MySQL đòi hỏichúng ta phải tìm hiểu một cách chi tiết rõ ràng và đầy đủ Từ những hiểu biết đó giúpviệc hiểu hơn về hệ quản trị dữ liệu MySQL được đảm bảo Nó giúp chúng ta có thểduy trì được hoạt động ổn định, ứng dụng thuận lợi và hỗ trợ cho phát triển và duy trìwebsite như ý Trong đó các thuật ngữ thường gặp cơ bản nhất như:
1.1.2.1 Database
Database chính là nơi giúp lưu trữ được các dữ liệu Chúng ta có thể coi Databasechính là những ngăn tủ mà nó không chỉ đơn thuần giúp chứa đồ mà còn giúp phânloại, cất giữ được các dữ liệu cùng loại với nhau dễ dàng, khoa học Với từng ngăn tủtrong Database sẽ có chứa một loại dữ liệu riêng, tuy nhiên xét về tổng thể nó lại có sựliên hệ với nhau theo một nguyên tắc nhất định
1.1.2.2 Open Source
Trang 24Xây dựng website tìm kiếm việc làm thêm cho sinh viên (Tại Tp.Đà Nẵng)
Hình 1.1.2.2.1.1: Open SourceBản chất của MySQL là hệ thống mã nguồn mở nên bất kì ai cũng có thể tảixuống, sử dụng, hay tiến hành chỉnh sửa theo ý muốn Đó chính là cách hiểu đơn giảnnhất của khái niệm Open source với MySQL Tuy nhiên, thực tế thì vẫn có loại giấyphép GPL mà ở đó có thể hiện rõ ràng những điều bạn được làm và không được làmtheo quy định, trong những trường hợp cụ thể
1.1.2.3 Client-server
Mô hình này giống như một mạng nhện mà ở đó có máy chủ – server sẽ được đặtnằm ở vị trí trung tâm, có nhiệm vụ chủ yếu là lưu trữ các dữ liệu trên hệ thống Trongkhi đó những máy khách – client khi cần tìm kiếm, hay làm việc với một dữ liệu cụ thể
sẽ kết nối với máy chủ để được cung cấp thông tin theo nhu cầu
1.1.2.4 MySQL Client
Khái niệm này được hiểu là máy khách trên hệ thống MySQL và nó không nhấtthiết phải được cài đặt hệ quản trị dữ liệu này Chỉ cần có phần mềm mà ở đó cho phépkết nối, cũng như nhận phản hồi của MySQL server là đủ
1.1.2.5 MySQL Server
Hình 1.1.2.5.1.1: MySQL ServerMySQL Server chính là máy chủ cài và sử dụng cách lưu trữ các dữ liệu thôngqua hệ thống MySQL Server được đánh giá cao nhờ khả năng bảo mật tốt, đồng thờicũng có tốc độ xử lý nhanh chóng
Trang 25Xây dựng website tìm kiếm việc làm thêm cho sinh viên (Tại Tp.Đà Nẵng)
1.1.2.6 SQL
Có khá nhiều người có những nhầm lẫn về SQL và MySQL và tưởng nó là một.Tuy nhiên, thực tế hoàn toàn không phải vậy Nếu như MySQL đơn thuần chỉ là mộttrong những hệ thống quản trị dữ liệu thì SQL chính là ngôn ngữ được sử dụng để liênlạc giữa máy chủ và máy khách trên một hệ thống cụ thể Hành động của SQL thôngthường sẽ được sử dụng để thực hiện những nhiệm vụ như:
- Data Query: tức là yêu cầu lấy một thông tin cụ thể nào đó từ kho dữ liệu lưu trữsẵn
- Data Manipulation: thực hiện việc thêm, sửa, hay xóa,… các dữ liệu theo yêucầu
- Data Indentiny: giúp định nghĩa một dữ liệu cụ thể thuộc loại nào, được phânchia vào ngăn tủ nào trong database
- Data Access Control: giúp cung cấp hoặc giới hạn quyền truy cập của một ai đó,từ đó việc bảo vệ an toàn, bảo mật cho dữ liệu sẽ được tiến hành hiệu quả
1.1.3 Cách thức hoạt động của MySQL
Tìm hiểu để xác định cách thức hoạt động giúp chúng ta hiểu hơn về MySQL,đồng thời cũng có được sự chủ động cần thiết trong quá trình sử dụng Trong môitrường MySQL thì máy khách và máy chủ sẽ hoạt động với sự tương tác qua lại liêntục với nhau dựa trên nguyên lý chính là:
Hình 1.1.3.1.1.1: Cách thức hoạt động của MySQLMySQL sẽ tạo ra một bảng giúp việc lưu trữ dữ liệu, cũng như định nghĩa đượcmối quan hệ giữa các bảng được thực hiện đầy đủ, chi tiết và chính xác,
Máy khách sẽ gửi những yêu cầu SQL thông qua lệch đặc biệt lên MySQL
Trang 26Xây dựng website tìm kiếm việc làm thêm cho sinh viên (Tại Tp.Đà Nẵng)
Những ứng dụng trên máy chủ lúc này sẽ nhận được và đưa ra phản hồi thông tin,từ đó trả kết quả trực tiếp về máy khách
1.1.4 Ưu điểm nổi bật của MySQL
Có nhiều hệ quản trị dữ liệu khác nhau được đưa vào ứng dụng hỗ trợ cho hoạtđộng của một website Trong đó thì MySQL được đánh giá cao nhờ những ưu điểmnổi bật sở hữu Qua đó quá trình ứng dụng hỗ trợ cho duy trì hoạt động của trang webđược thực hiện tốt Trong đó những điểm mạnh giúp MySQL được đánh giá cao, đượctin tưởng phải kể tới chính là:
1.1.4.1 Độ bảo mật cao
Sở hữu mức độ bảo mật cao giúp MySQL khó có thể bị các hacker tấn công, đảmbảo an toàn cho hoạt động của mỗi website Bởi thế, việc quản trị dữ liệu cho các weblớn hay nhỏ, với lượng dữ liệu nhiều hay ít đều được hỗ trợ với mức độ an toàn lýtưởng
Hình 1.1.4.1.1.1: Độ bảo mật cao
1.1.4.2 Tốc độ nhanh chóng
Một ưu điểm không thể thiếu khi đánh giá về MySQL chính là tốc độ nhanhchóng, ấn tượng khi sử dụng Với tốc độ truy vấn, cũng như khả năng phản hồi dữ liệu
ấn tượng thì việc sử dụng MySQL luôn được đánh giá cao, trở thành lựa chọn lý tưởng
để nâng cao hiệu quả công việc
Trang 27Xây dựng website tìm kiếm việc làm thêm cho sinh viên (Tại Tp.Đà Nẵng)
1.1.4.3 Dễ dàng sử dụng
Việc sử dụng MySQL trực quan, đơn giản và dễ dàng Bởi thế, nó thích hợp vớimọi đối tượng người dùng dù có kiến thức liên quan chuyên sâu tới đâu Dù là ngườimới, hay có kinh nghiệm đều có thể ứng dụng MySQL hiệu quả để hỗ trợ tốt cho yêucầu, cho những đòi hỏi thực tế trong công việc
1.1.4.4 Dễ dàng mở rộng
Là một mã nguồn mở giúp hệ quản trị dữ liệu MySQL khi sử dụng đảm bảo dễdàng phát triển, mở rộng để đáp ứng tốt cho nhu cầu sử dụng thực tế của con người.Với yêu cầu đa dạng, ngày càng phức tạp trong phát triển và duy trì hoạt động củawebsite thì MySQL với việc dễ dàng mở rộng mang lại sự chủ động trong công việc
1.1.4.5 Hoàn toàn miễn phí
Với hệ quản trị dữ liệu MySQL khi đưa vào sử dụng giúp người dùng có khả năngtiết kiệm chi phí hiệu quả Hoàn toàn miễn phí cũng làm nên ưu điểm, lợi ích chongười dùng khi lựa chọn MySQL để đáp ứng cho nhu cầu của chính mình Đây cũng là
lý do mà nó được tin tưởng sự dụng, được nhiều lập trình viên ưa chuộng chọn lựa.Giữa nhiều sự lựa chọn thì cho tới nay MySQL vẫn là hệ quản trị cơ sở dữ liệuđược đánh giá cao, được ưa chuộng bậc nhất Với nhiều ưu điểm nổi bật, khả nănghoạt động hiệu quả giúp quá trình ứng dụng của chúng ta có được lợi ích lớn Việcthiết kế, phát triển và duy trì hoạt động của từng trang web một cách ổn định nhất đềuđược đảm bảo tốt Hy vọng thông tin mà chúng tôi mang lại hữu ích đối với các bạn
1.2 Ngôn ngữ lập trình: Asp.Net MVC
1.2.1 Giới thiệu về Asp.Net MVC
Hình 1.2.1.1.1.1: Logo Asp.Net MVC
Trang 28Xây dựng website tìm kiếm việc làm thêm cho sinh viên (Tại Tp.Đà Nẵng)
Mẫu kiến trúc Model – View – Controller được sử dụng nhằm chi ứng dụng thành
ba thành phần chính: model, view và controller Nền tảng ASP.NET MVC giúp chochúng ta có thể tạo được các ứng dụng web áp dụng mô hình MVC thay vì tạo ứngdụng theo mẫu ASP.NET Web Forsm Nền tảng ASP.NET MVC có đặc điểm nổi bật
là nhẹ (lighweigt), dễ kiểm thử phần giao diện (so với ứng dụng Web Forms), tích hợpcác tính năng có sẵn của ASP.NET Nền tảng ASP.NET MVC được định nghĩa trongnamespace System.Web.Mvc và là một phần của name space System.Web
MVC là một mẫu thiết kế (design pattern) chuẩn mà nhiều lập trình viên đã quenthuộc Một số loại ứng dụng web sẽ thích hợp với kiến trúc MVC Một số khác vẫnthích hợp với ASP.NET Web Forms và cơ chế postbacks Đôi khi có những ứng dụngkết hợp cả hai kiến trúc trên
1.2.2 Lịch sử phát triển
Hình 1.2.2.1.1.1: Lịch sử phát triển của Asp.net
Trang 29Xây dựng website tìm kiếm việc làm thêm cho sinh viên (Tại Tp.Đà Nẵng)
1.3 Mô hình triển khai
1.3.1 Mô hình MVC
MVC là viết tắt của cụm từ “Model-View-Controller“ Đây là mô hình thiết kế sửdụng trong kỹ thuật phần mềm MVC là một mẫu kiến trúc phần mềm để tạo lập giaodiện người dùng trên máy tính MVC chia thành ba phần được kết nối với nhau nhưtên gọi: Model (dữ liệu), View (giao diện) và Controller (bộ điều khiển)
Hình 1.3.1.1.1.1: Mô hình MVCĐơn giản hơn, là mô hình này được chia thành 3 phần trong soure code Và mỗiphần đảm nhận vai trò và nhiệm vụ riêng biệt nhau và độc lập
Mô hình MVC (MVC pattern) thường được dùng để phát triển giao diện ngườidùng Nó cung cấp các thành phần cơ bản để thiết kế một chương trình cho máy tínhhoặc điện thoại di động, cũng như là các ứng dụng web.Mô hình triển khai Asp.NetMVC
1.1.1 Thành phần của MVC
Mô hình MVC gồm 3 loại chính là thành phần bên trong không thể thiếu khi ápdụng mô hình này:
Trang 30Xây dựng website tìm kiếm việc làm thêm cho sinh viên (Tại Tp.Đà Nẵng)
Hình 1.3.1.1.1.2: Thành phần MVCModel: Là bộ phận có chức năng lưu trữ toàn bộ dữ liệu của ứng dụng và là cầunối giữa 2 thành phần bên dưới là View và Controller Một model là dữ liệu được sửdụng bởi chương trình Đây có thể là cơ sở dữ liệu, hoặc file XML bình thường haymột đối tượng đơn giản Chẳng hạn như biểu tượng hay là một nhân vật trong game.View: Đây là phần giao diện (theme) dành cho người sử dụng View là phươngtiện hiển thị các đối tượng trong một ứng dụng Chẳng hạn như hiển thị một cửa sổ,nút hay văn bản trong một cửa sổ khác Nó bao gồm bất cứ thứ gì mà người dùng cóthể nhìn thấy được
Controller: Là bộ phận có nhiệm vụ xử lý các yêu cầu người dùng đưa đến thôngqua View Một controller bao gồm cả Model lẫn View Nó nhận input và thực hiện cácupdate tương ứng
Trang 31Xây dựng website tìm kiếm việc làm thêm cho sinh viên (Tại Tp.Đà Nẵng)
1.3.2 Lịch sử của MVC
MVC được tiến sĩ Trygve Reenskaug đưa vào ngôn ngữ lập trình Smalltalk-76khi ông đến trung tâm Nghiên cứu Xerox Palo Alto (PARC) vào giữa năm 1970 Sau
đó, việc triển khai trở nên phổ biến trong các phiên bản khác của Small- Talk Năm
1988, các bài báo “The Journal of Object Technology” – JOT mang lại bước tranh toàncảnh về MVC mang liệu sự hiệu quả tốt nhất
- Sau đó, Controller xử lý input của user rồi giao tiếp với Model trong MVC
- Model chuẩn bị data và gửi lại cho Controller
- Cuối cùng, khi xử lý xong yêu cầu thì Controller gửi dữ liệu trở lại View và hiểnthị cho người dùng trên trình duyệt
Hình 1.3.3.1.1.1: View và Model sẽ được xử lý bởi Controller
Ở đây, View không giao tiếp trực tiếp với Model Sự tương tác giữa View vàModel sẽ chỉ được xử lý bởi Controller
Trang 32Xây dựng website tìm kiếm việc làm thêm cho sinh viên (Tại Tp.Đà Nẵng)
1.3.4 Ưu và nhược điểm của MVC
1.3.4.1 Ưu điểm mô hình MVC
- Đầu tiên, nhắc tới ưu điểm mô hình MVC thì đó là băng thông (Bandwidth) nhẹ
vì không sử dụng viewstate nên khá tiết kiệm băng thông Việc giảm băng thông giúpwebsite hoạt động ổn định hơn
- Kiểm tra đơn giản và dễ dàng, kiểm tra lỗi phần mềm trước khi bàn giao lại chongười dùng
- Một lợi thế chính của MVC là nó tách biệt các phần Model, Controller và Viewvới nhau
- Sử dụng mô hình MVC chức năng Controller có vai trò quan trọng và tối ưu trêncác nền tảng ngôn ngữ khác nhau
- Ta có thể dễ dàng duy trì ứng dụng vì chúng được tách biệt với nhau
- Có thể chia nhiều developer làm việc cùng một lúc Công việc của các developer
sẽ không ảnh hưởng đến nhau
- Hỗ trợ TTD (test-driven development) Chúng ta có thể tạo một ứng dụng vớiunit test và viết các won test case
- Phiên bản mới nhất của MVC hỗ trợ trợ thiết kế responsive website mặc định vàcác mẫu cho mobile Chúng ta có thể tạo công cụ View của riêng mình với cú phápđơn giản hơn nhiều so với công cụ truyền thống
1.3.4.2 Nhược điểm mô hình MVC
Bên cạnh những ưu điểm MVC mang lại thì nó cũng có một số nhược điểm cầnkhắc phục:
- MVC đa phần phù hợp với công ty chuyên về website hoặc các dự án lớn thì môhình này phù hợp hơn so với với các dự án nhỏ, lẻ vì khá là cồng kềnh và mất thờigian
- Nhược điểm mô hình MVC không hỗ trợ Preview như ASP.NET
- Không thể Preview các trang như ASP.NET
- Khó triển khai
Trang 33Xây dựng website tìm kiếm việc làm thêm cho sinh viên (Tại Tp.Đà Nẵng)
1.4 Bootstrap và responsive
Bootstrap là front-end library, là một bộ sưu tập miễn phí các công cụ để tạo racác trang web và các ứng dụng web Bootstrap bao gồm HTML và CSS dựa trên cácmẫu thiết kế cho kiểu chữ, hình thức, các button và các thành phần giao diện khác,cũng như mở rộng tùy chọn JavaScript
Boostrap định nghĩa sẵn các class CSS giúp người thiết kế giao diện website tiếtkiệm rất nhiều thời gian Các thư viện Bootstrap có những đoạn mã sẵn sàng chochúng ta áp dùng vào website của mình mà không phải tốn quá nhiều thời gian để tựviết
Với Bootstrap, việc phát triển giao diện website để phù hợp với đa thiết bị trở nên
dễ dàng hơn bao giờ hết Bootstrap cung cấp tính năng responsive và mobile first,nghĩa là làm cho trang web có thể tự co giãn để tương thích với mọi thiết bị khác nhau,từ điện thoại di động đến máy tính bảng, máy tính xách tay, máy tính để bàn,
Hình 1.4.1.1.1.1: Cấu trúc của BootstrapMột khía cạnh khác là responsive web design làm cho trang web cung cấp đượctrải nghiệm tuyệt vời cho người dùng trên nhiều thiết bị, kích thước màn hình khácnhau Một trang có thể hoạt động tốt bất kể sự biến đổi sẽ cung cấp một trải nghiệm
Trang 34Xây dựng website tìm kiếm việc làm thêm cho sinh viên (Tại Tp.Đà Nẵng)
người dùng tốt và nhất quán hơn một trang được thiết kế cho một loại thiết bị và kíchthước màn hình cụ thể
Trang 35Xây dựng website tìm kiếm việc làm thêm cho sinh viên (Tại Tp.Đà Nẵng)
Chương 2 PHÂN TÍCH THIẾT KẾ HỆ THỐNG2.1 Đặc tả yêu cầu phần mềm (Software Requirements)
2.1.1 Admin
2.1.1.1 Đăng nhập
2.1.1.2 Cập nhật
2.1.1.2.1 Tài khoản sinh viên(Thêm, sửa, xóa, cập nhật trạng thái)
2.1.1.2.2 Tài khoản nhà tuyển dụng(Thêm, sửa, xóa, cập nhật trạng thái)
2.1.1.2.3 Bài đăng tuyển dụng(Xoá, cập nhật trạng thái)
2.1.1.2.4 Hồ sơ sinh viên(Xoá, cập nhật trạng thái)
2.1.1.2.5 Ngành nghề(Thêm, sửa, xoá, cập nhật trạng thái)
2.1.2.4.1 Chi tiết bài đăng của nhà tuyển dụng
2.1.2.4.2 Lịch sử đăng bài của nhà tuyển dụng
Trang 36Xây dựng website tìm kiếm việc làm thêm cho sinh viên (Tại Tp.Đà Nẵng)
2.1.3.3 Đăng tin tuyển dụng
2.1.3.4 Xem
2.1.3.4.1 Hồ sơ sinh viên
2.2 Sơ đồ hoạt động:
2.2.1 Actor Admin
2.2.1.1 Use-case cập nhật tài khoản sinh viên – nhà tuyển dụng
Hình 2.2.1.1.1.1: Sơ đồ hoạt động cho use-case cập nhật tài khoản sinh viên – nhà
tuyển dụng
Trang 37Xây dựng website tìm kiếm việc làm thêm cho sinh viên (Tại Tp.Đà Nẵng)
2.2.1.2 Use-case cập nhật tin tuyển dụng – hồ sơ sinh viên
Hình 2.2.1.2.1.1: Sơ đồ hoạt động cho use-case cập nhật tin tuyển dụng – hồ sơ sinh
viên
2.2.1.3 Use-case cập nhật ngành nghề
Hình 2.2.1.3.1.1: Sơ đồ hoạt động cho use-casse cập nhật ngành nghề