NỘI DUNG
CƠ SỞ LÝ THUYẾT
EXPRESSJS
Trường ĐH Sư Phạm Kỹ Thuật TP HCM
AWS S3
Chương 2: Phân tích và mô hình hóa yêu cầu
Chương 3: Thiết kế ứng dụng
Chương 4: Cài đặt và kiểm thử ứng dụng
STT Thời gian Công việc Ghi chú
1 18/03/2019 – 31/03/2019 Xác định chức năng của ứng dụng và phác thảo ý tưởng
Tham khảo một số ứng dụng cùng đề tài đã có
2 01/04/2019 – 14/04/2019 Tìm hiểu MongoDB, sử dụng mongoose để đơn giản hóa truy vấn Thiết kế cơ sở dữ liệu
3 15/04/2019 – 28/04/2019 Xây dựng server Express để Client có thể gọi REST API Xây dựng front end Angular phần trang web cho admin
4 29/04/2019 – 19/05/2019 Xây dựng front-end Angular phần trang web cho nhà tuyển dụng Tích hợp Elasticsearch vào project
5 20/05/2019 – 02/06/2019 Xây dựng front end Angular phần trang web cho Ứng viên Thay đổi cách lưu file tĩnh (hình ảnh) từ server lên AWS S3
6 03/06/2019 – 09/06/2019 Tổng hợp, viết báo cáo
7 10/06/2019 – 23/06/2019 Trao đổi với GVHD về báo cáo và trang web
TP HCM, ngày 15 tháng 3 năm 2019
Người viết đề cương Ý kiến của giáo viên hướng dẫn
(Ký và ghi rõ họ tên)
1.1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI 1
1.2 MỤC ĐÍCH CỦA ĐỀ TÀI 1
1.3 CÁCH TIẾP CẬN VÀ PHƯƠNG PHÁP NGHIÊN CỨU - ĐỐI TƯỢNG NGHIÊN CỨU - PHẠM VI NGHIÊN CỨU 2
1.4 KẾT QUẢ DỰ KIẾN ĐẠT ĐƯỢC 2
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 3
1.1 TỔNG QUAN VỀ TECHNICAL STACK 3
1.1.2 CÁC THÀNH PHẦN CƠ BẢN CỦA TECHNICAL STACK 3
1.1.3 TẠI SAO TECHNICAL STACK LẠI QUAN TRỌNG 4
1.1.4 CÁCH ĐỂ CHỌN ĐÚNG TECHNICAL STACK 4
1.2 TỔNG QUAN VỀ HỆ THỐNG 5
1.2.1 KHÁI QUÁT VỀ MEAN STACK: 5
1.2.2 CÁC THÀNH PHẦN CỦA MEAN STACK: 6
1.3.2 ĐẶC ĐIỂM GIÚP NODEJS TRỞ NÊN MẠNH MẼ VÀ NỔI BẬT TRÊN THỊ TRƯỜNG GẦN ĐÂY? 7
1.3.3.2 Tại sao lại sử dụng npm? 11
1.4.4 TẠI SAO LẠI SỬ DỤNG EXPRESS TRONG VIỆC QUẢN LÝ REST API 14
1.6.2 TẠI SAO PHẢI SỬ DỤNG ANGULAR TRONG VIỆC PHÁT TRIỂN FRONT-END CỦA WEB APPLICATION 18
1.6.3 NGÔN NGỮ LẬP TRÌNH TYPESCRIPT 19
CHƯƠNG 2: PHÂN TÍCH VÀ MÔ HÌNH HÓA YÊU CẦU 22
2.2.1 Xác định yêu cầu chức năng hệ thống: 26
2.2.2 Xác định yêu cầu chất lượng: 26
2.2.3 Lược đồ Use case và đặc tả 28
2.2.3.3 Use case Tìm kiếm công việc 33
2.2.3.4 Use case Tìm kiếm công ty 33
2.2.3.5 Use case Cập nhật thông tin cá nhân 34
2.2.3.6 Use case Cập nhật thông tin CV ứng viên 34
2.2.3.7 Use case Xem thông tin công ty 35
2.2.3.8 Use case Xem thông tin mô tả công việc 35
2.2.3.9 Use case Apply công việc: 36
2.2.3.10 Use case Viết review về công ty 37
2.2.3.11 Use case Cập nhật thông tin tài khoản doanh nghiệp 37
2.2.3.12 Use case Thêm bài viết tuyển dụng 38
2.2.3.13 Use case Sửa bài viết tuyển dụng 38
2.2.3.14 Use case Xóa bài viết tuyển dụng 39
2.2.3.15 Use case Xem bài viết tuyển dụng 40
2.2.3.16 Use case Xem thông tin ứng viên apply tin tuyển dụng 41
2.2.3.17 Use case Xem tất cả review về công ty 41
2.2.3.18 Use case Quản lý tất cả nhà tuyển dụng 42
2.2.3.19 Use case Quản lý tất cả ứng viên 42
2.2.3.20 Use case Thống kê xu hướng lập trình viên 43
2.2.3.21 Use case Thống kê xu hướng việc làm 44
CHƯƠNG 3: THIẾT KẾ ỨNG DỤNG 45
3.1.3 Nghiệp vụ: Tìm kiếm công việc, công ty 47
3.1.4 Nghiệp vụ: Cập nhật thông tin cá nhân, tài khoản doanh nghiệp, CV cá nhân 48
3.1.5 Nghiệp vụ: Apply công việc 49
3.1.6 Nghiệp vụ: Viết review về công ty 49
3.1.7 Nghiệp vụ: Thêm bài viết tuyển dụng 50
3.1.8 Nghiệp vụ: Sửa bài viết tuyển dụng 51
3.1.9 Nghiệp vụ: Xóa bài viết tuyển dụng 52
3.1.10 Nghiệp vụ: Xem bài viết tuyển dụng 53
3.1.11 Nghiệp vụ: Quản lý tất cả nhà tuyển dụng, ứng viên 54
3.2.2 Mô tả cơ sở dữ liệu 56
3.3.3 Lược đồ Tìm kiếm công việc, công ty 63
3.3.4 Lược đồ Cập nhật thông tin cá nhân, CV cá nhân 63
3.3.5 Lược đồ Cập nhật thông tin tài khoản doanh nghiệp 64
3.3.6 Lược đồ Apply công việc 64
3.3.7 Lược đồ Viết review về công ty 64
3.3.8 Lược đồ Thêm bài viết tuyển dụng 65
3.3.9 Lược đồ Sửa bài viết tuyển dụng 65
3.3.10 Lược đồ Xóa bài viết tuyển dụng 66
3.3.11 Lược đồ Xem bài viết tuyển dụng, thông tin ứng viên apply tin tuyển dụng 66
3.3.12 Lược đồ Quản lý tất cả nhà tuyển dụng, ứng viên 67
3.3.13 Lược đồ Thống kê xu hướng lập trình viên, công việc 67
3.4.1 Màn hình Đăng ký tài khoản ứng viên 68
3.4.2 Màn hình Đăng ký tài khoản nhà tuyển dụng 69
3.4.5 Màn hình Tìm kiếm công ty 72
3.4.6 Màn hình Chi tiết thông tin nhà tuyển dụng 74
3.4.7 Màn hình Review về nhà tuyển dụng 76
3.4.8 Màn hình Chi tiết bài viết tuyển dụng 77
3.4.9 Màn hình Thống kê bài viết tuyển dụng 78
3.4.10 Màn hình Tạo bài viết tuyển dụng 80
3.4.11 Màn hình Cập nhật CV của ứng viên 80
3.4.12 Màn hình Chỉnh sửa thông tin cá nhân 81
3.4.13 Màn hình Trang cá nhân của ứng viên 82
3.4.14 Màn hình Xem review của công ty 84
3.4.15 Màn hình Xem mô tả về công ty 84
3.4.16 Màn hình Xem nhanh bài viết tuyển dụng 84
3.4.17 Màn hình Xem danh sách ứng viên apply 85
3.4.18 Màn hình Quản lý ứng viên của admin 86
3.4.19 Màn hình Quản lý nhà tuyển dụng của admin 87
3.4.20 Màn hình Thống kê xu hướng lập trình viên 88
3.4.21 Màn hình Thống kê xu hướng việc làm 88
CHƯƠNG 4: CÀI ĐẶT VÀ KIỂM THỬ ỨNG DỤNG 89
Hình 1: Tổng quan về hệ thống 5
Hình 2: Multi thread trên hệ thống cũ 8
Hình 7: Thiết kế REST API 14
Hình 8: Mô hình hoạt động mongoose 17
Hình 14: Lược đồ Use Case 28
Hình 15: Lược đồ DFD của nghiệp vụ Đăng ký 45
Hình 16: Lược đồ DFD của nghiệp vụ Đăng nhập 46
Hình 17: Lược đồ DFD của nghiệp vụ Tìm kiếm công việc, công ty 47
Hình 18: Lược đồ DFD của nghiệp vụ Cập nhật thông tin cá nhân, tài khoản doanh nghiệp, CV cá nhân 48
Hình 19: Lược đồ DFD của nghiệp vụ Apply công việc 49
Hình 20: Lược đồ DFD của nghiệp vụ Viết review về công ty 50
Hình 21: Lược đồ DFD của nghiệp vụ Thêm bài viết tuyển dụng 51
Hình 22: Lược đồ DFD của nghiệp vụ: Sửa bài viết tuyển dụng 52
Hình 23: Lược đồ DFD của nghiệp vụ Xóa bài viết tuyển dụng 53
Hình 24: Lược đồ DFD của nghiệp vụ Xem bài viết tuyển dụng 53
Hình 25: Lược đồ DFD của nghiệp vụ Quản lý tất cả nhà tuyển dụng, ứng viên 54
Hình 26: Ví dụ về dữ liệu noSQL 55
Hình 27: Lược đồ quan hệ của database schema 56
Hình 28: Lược đồ tuần tự Đăng kí 62
Hình 29: Lược đồ tuần tự Đăng nhập 63
Hình 30: Lược đồ tuần tự Tìm kiếm công việc, công ty 63
Hình 31: Lược đồ tuần tự Cập nhật thông tin cá nhân, CV cá nhân 64
Hình 32: Lược đồ tuần tự Cập nhật thông tin tài khoản doanh nghiệp 64
Hình 33: Lược đồ tuần tự Apply công việc 64
Hình 34: Lược đồ tuần tự Viết review về công ty 65
Hình 35: Lược đồ tuần tự Thêm bài viết tuyển dụng 65
Hình 36: Lược đồ tuần tự Sửa bài viết tuyển dụng 66
Hình 37: Lược đồ tuần tự Xóa bài viết tuyển dụng 66
Hình 38: Lược đồ tuần tự Xem bài viết tuyển dụng, thông tin ứng viên apply tin tuyển dụng 67
Hình 39: Lược đồ tuần tự Quản lý tất cả nhà tuyển dụng, ứng viên 67
Hình 40: Lược đồ tuần tự Thống kê xu hướng lập trình viên, công việc 68
Hình 41: Màn hình Đăng ký tài khoản ứng viên 68
Hình 42: Sơ đồ biến cố màn hình Đăng ký tài khoản ứng viên 69
Hình 43: Màn hình Đăng ký tài khoản nhà tuyển dụng 69
Hình 44: Sơ đồ biến cố màn hình Đăng ký tài khoản nhà tuyển dụng 70
Hình 45: Màn hình Đăng nhập 70
Hình 46: Sơ đồ biến cố màn hình Đăng nhập 71
Hình 47: Màn hình Trang chủ 72
Hình 48: Sơ đồ biến cố màn hình Trang chủ 72
Hình 49: Màn hình Tìm kiếm công ty 73
Hình 50: Sơ đồ biến cố màn hình Trang tìm kiếm công ty 74
Hình 51: Màn hình Chi tiết thông tin nhà tuyển dụng 75
Hình 52: Sơ đồ biến cố trong màn hình Chi tiết thông tin nhà tuyển dụng 76
Hình 53: Màn hình review về nhà tuyển dụng 76
Hình 54: Màn hình Chi tiết bài viết tuyển dụng 77
Hình 55: Sơ đồ biến cố màn hình Chi tiết bài viết tuyển dụng 78
Hình 56: Màn hình Thống kê bài viết tuyển dụng 78
Hình 57: Sơ đồ biến cố màn hình Thống kê bài viết tuyển dụng 79
Hình 58: Màn hình Tạo bài viết tuyển dụng 80
Hình 59: Sơ đồ biến cố màn hình Tạo bài viết tuyển dụng 80
Hình 60: Màn hình Cập nhật CV của ứng viên 81
Hình 61: Sơ đồ biến cố màn hình Cập nhật CV của ứng viên 81
Hình 62: Màn hình Chỉnh sửa thông tin cá nhân 82
Hình 63: Sơ đồ biến cố màn hình Chỉnh sửa thông tin cá nhân 82
Hình 64: Màn hình Trang cá nhân của ứng viên 83
Hình 65: Sơ đồ biến cố màn hình Trang cá nhân của ứng viên 84
Hình 66: Màn hình Xem review của công ty 84
Hình 67: Màn hình Xem mô tả về công ty 84
Hình 68: Màn hình Xem nhanh bài viết tuyển dụng 85
Hình 69: Màn hình Xem danh sách ứng viên apply 85
Hình 70: Sơ đồ biến cố màn hình Xem danh sách ứng viên apply 86
Hình 71: Màn hình Quản lý ứng viên của admin 86
Hình 72: Sơ đồ biến cố màn hình Quản lý ứng viên của admin 87
Hình 73: Màn hình Quản lý nhà tuyển dụng của admin 87
Hình 74: Sơ đồ biến cố màn hình Quản lý nhà tuyển dụng của admin 88
Hình 75: Màn hình Thống kê xu hướng lập trình viên 88
Hình 76: Màn hình Thống kê xu hướng việc làm 88
Hình 78: Giao diện Visual Studio Code 90
Hình 79: Màn hình Intergrate Command Line 90
Hình 80: Màn hình CLI chạy ứng dụng Angular 91
Hình 81: Màn hình CLI chạy Express 91
Hình 82: Kết quả chạy thành công Angular và Express 91
Bảng 1: Xác định yêu cầu chức năng hệ thống 26
Bảng 2: Xác định yêu cầu chất lượng 26
Bảng 3: Nhận diện tác nhân và chức năng 28
Bảng 4: Mô tả chức năng website tìm kiếm việc làm IT 29
Bảng 5: Use case Đăng ký 31
Bảng 6: Use case Đăng nhập 32
Bảng 7: Use case Tìm kiếm công việc 33
Bảng 8: Use case Tìm kiếm công ty 33
Bảng 9: Use case Cập nhật thông tin cá nhân ứng viên 34
Bảng 10: Use case Cập nhật thông tin CV ứng viên 34
Bảng 11: Use case Xem thông tin công ty 35
Bảng 12: Use case xem thông tin mô tả công việc 35
Bảng 13: Use case Apply công việc 36
Bảng 14: Use case Viết review về công ty 37
Bảng 15: Use case Cập nhật thông tin tài khoản doanh nghiệp 37
Bảng 16: Use case Thêm bài viết tuyển dụng 38
Bảng 17: Use case Sửa bài viết tuyển dụng 39
Bảng 18: Use case Xóa bài viết tuyển dụng 39
Bảng 19: Use case Xem bài viết tuyển dụng 40
Bảng 20: Use case Xem thông tin ứng viên apply tin tuyển dụng 41
Bảng 21: Use case Xem tất cả review về công ty 41
Bảng 22: Use case Quản lý tất cả nhà tuyển dụng 42
Bảng 23: Use case quản lý tất cả ứng viên 43
Bảng 24: Use case Thống kê xu hướng lập trình viên 43
Bảng 25: Use case Thống kê xu hướng việc làm 44
Bảng 26: Bảng mô tả sơ đồ DFD của nghiệp vụ Đăng ký 45
Bảng 27: Bảng thuật toán của nghiệp vụ Đăng ký 45
Bảng 28: Bảng mô tả sơ đồ DFD nghiệp vụ Đăng nhập 46
Bảng 29: Bảng thuật toán của nghiệp vụ Đăng nhập 46
Bảng 30: Bảng mô tả sơ đồ DFD của nghiệp vụ Tìm kiếm công việc, công ty 47
Bảng 31: Bảng thuật toán của nghiệp vụ Tìm kiếm công việc, công ty 47
Bảng 32: Bảng mô tả sơ đồ DFD của nghiệp vụ Cập nhật thông tin cá nhân, tài khoản doanh nghiệp,
Bảng 33: Bảng thuật toán của nghiệp vụ Cập nhật thông tin cá nhân, tài khoản doanh nghiệp, CV cá nhân 48
Bảng 34: Bảng mô tả sơ đồ DFD của nghiệp vụ Apply công việc 49
Bảng 35: Bảng thuật toán của nghiệp vụ Apply công việc 49
Bảng 36: Bảng mô tả sơ đồ DFD của nghiệp vụ Viết review về công ty 50
Bảng 37: Bảng thuật toán của nghiệp vụ Viết review về công ty 50
Bảng 38: Bảng mô tả sơ đồ DFD của nghiệp vụ Thêm bài viết tuyển dụng 51
Bảng 39: Bảng thuật toán của nghiệp vụ Thêm bài viết tuyển dụng 51
Bảng 40: Bảng mô tả sơ đồ DFD của nghiệp vụ Sửa bài viết tuyển dụng 52
Bảng 41: Bảng thuật toán của nghiệp vụ Sửa bài viết tuyển dụng 52
Bảng 42: Bảng mô tả sơ đồ DFD của nghiệp vụ Xóa bài viết tuyển dụng 53
Bảng 43: Bảng thuật toán của nghiệp vụ Xóa bài viết tuyển dụng 53
Bảng 44: Bảng mô tả sơ đồ DFD của nghiệp vụ Xem bài viết tuyển dụng 54
Bảng 45: Bảng thuật toán của nghiệp vụ Xem bài viết tuyển dụng 54
Bảng 46: Bảng mô tả sơ đồ DFD của nghiệp vụ Quản lý tất cả nhà tuyển dụng, ứng viên 54
Bảng 47: Bảng thuật toán của nghiệp vụ Quản lý tất cả nhà tuyển dụng, ứng viên 55
Bảng 48: Bảng thuộc tính Candidate 56
Bảng 49: Bảng thuộc tính Resume 57
Bảng 50: Bảng thuộc tính Recruiter 58
Bảng 51: Bảng thuộc tính Authencation 59
Bảng 52: Bảng thuộc tính Article 59
Bảng 53: Bảng thuộc tính Review 60
Bảng 54: Bảng thuộc tính Tag 61
Bảng 55: Bảng thuộc tính ReportTag 61
Bảng 56: Đối tượng trong màn hình Đăng ký tài khoản ứng viên 68
Bảng 57: Đối tượng trong màn hình Đăng ký tài khoản nhà tuyển dụng 69
Bảng 58: Đối tượng trong màn hình Đăng nhập 71
Bảng 59: Đối tượng trong màn hình Trang chủ 72
Bảng 60: Đối tượng trong màn hình Trang tìm kiếm công ty 73
Bảng 61: Đối tượng trong màn hình Chi tiết thông tin nhà tuyển dụng 75
Bảng 62: Đối tượng trong màn hình Review về nhà tuyển dụng 77
Bảng 63: Đối tượng trong màn hình Chi tiết bài viết tuyển dụng 78
Bảng 64: Đối tượng trong màn hình Thống kê bài viết tuyển dụng 79
Bảng 65: Đối tượng trong màn hình Tạo bài viết tuyển dụng 80
Bảng 66: Đối tượng trong màn hình Cập nhật CV của ứng viên 81
Bảng 67: Đối tượng trong màn hình Chỉnh sửa thông tin cá nhân 82
Bảng 68: Đối tượng trong màn hình Trang cá nhân của ứng viên 83
Bảng 69: Đối tượng trong màn hình Xem danh sách ứng viên apply 85
Bảng 70: Đối tượng trong màn hình Quản lý ứng viên của admin 86
Bảng 71: Đối tượng trong màn hình Quản lý nhà tuyển dụng của admin 87
Bảng 72: Kiểm thử ứng dụng 92
Phần 1: MỞ ĐẦU 1.1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI
Trong bối cảnh nhiều ngành nghề như kinh tế, tài chính, ngân hàng đã bão hòa và dư thừa lao động, câu hỏi "Học gì để ra trường có việc làm ngay?" trở thành mối quan tâm hàng đầu của phụ huynh và học sinh Theo Bộ Thông tin và Truyền thông, Việt Nam sẽ thiếu hụt hơn 500.000 nhân sự IT vào năm 2020 Sự phát triển của Cách mạng 4.0 và sự bùng nổ của công nghệ đã tạo ra nhu cầu cao về nguồn nhân lực trong lĩnh vực CNTT.
Ông Nguyễn Việt Quang, phó chủ tịch kiêm tổng giám đốc Tập đoàn Vingroup, cho biết Việt Nam sẽ sở hữu thung lũng Silicon tiếp theo của thế giới Điều này cho thấy rằng thế hệ trẻ và sinh viên Việt Nam mang trong mình trọng trách quan trọng trong việc nâng cao vị thế của công nghệ Việt Nam trên trường quốc tế.
Xu hướng phần mềm hiện nay dành cho người dùng cá nhân và doanh nghiệp nhỏ là portable và cross-platform Phần mềm ngày càng được sử dụng linh hoạt, cho phép người dùng truy cập mọi lúc mọi nơi, đồng thời phản hồi nhanh chóng với các thao tác và xử lý luồng dữ liệu lớn Do đó, việc học hỏi các công nghệ mới để lập trình phần mềm trở nên thiết yếu nhằm đáp ứng nhu cầu tuyển dụng trong tương lai.
Ngày nay, lập trình web được chia thành hai mảng chính: Front-end và Back-end Việc học Full-stack, bao gồm cả Front-end và Back-end, giúp sinh viên và người đi làm có nhiều cơ hội việc làm hơn, đồng thời mang lại cái nhìn tổng thể về lĩnh vực lập trình web.
Với các lý do trên, đề tài luận án được chọn là “Xây dựng website tìm việc IT trên nền tảng Mean Stack”
1.2 MỤC ĐÍCH CỦA ĐỀ TÀI
Tìm hiểu về MEAN Stack giúp xây dựng website hoàn chỉnh theo chuẩn Single Page Application, kết hợp với cơ sở dữ liệu không quan hệ (noSQL) Việc áp dụng các công nghệ từ bên thứ ba như Amazon Web Service, Elasticsearch và Google Service sẽ làm phong phú thêm dự án Qua đó, người học có cơ hội rèn luyện kỹ năng tích hợp công nghệ từ bên thứ ba vào ứng dụng.
Xây dựng một trang web tìm kiếm việc làm cần phải đảm bảo giao diện đẹp, thân thiện với người dùng, dễ sử dụng và có tốc độ phản hồi nhanh chóng.
1.3 CÁCH TIẾP CẬN VÀ PHƯƠNG PHÁP NGHIÊN CỨU - ĐỐI TƯỢNG NGHIÊN CỨU - PHẠM VI NGHIÊN CỨU
Tiếp cận đề tài bằng cách nghiên cứu kiến thức lý thuyết qua tài liệu trực tuyến, khóa học online và video hướng dẫn Từ đó, tổng hợp kiến thức lý thuyết để xây dựng một ứng dụng thực tiễn, giúp hiểu rõ và sâu sắc hơn về đối tượng nghiên cứu.
MEAN stack là một bộ công nghệ phát triển web mạnh mẽ bao gồm bốn thành phần chính: MongoDB, ExpressJS, Angular và NodeJS MongoDB là cơ sở dữ liệu NoSQL linh hoạt, trong khi ExpressJS là framework cho NodeJS giúp xây dựng ứng dụng web nhanh chóng Angular là framework phía client cho phép phát triển ứng dụng Single Page Application (SPA) mượt mà, và NodeJS là môi trường chạy JavaScript trên server Mỗi thành phần có những đặc điểm, ưu điểm và nhược điểm riêng, như khả năng mở rộng và hiệu suất cao của NodeJS, hay tính năng mạnh mẽ của Angular trong việc xử lý giao diện người dùng TypeScript, một ngôn ngữ lập trình superset của JavaScript, thường được sử dụng để tăng cường tính bảo trì và an toàn cho mã nguồn Để bảo mật web và cơ sở dữ liệu, các biện pháp như mã hóa và xác thực cần được triển khai Cuối cùng, trình duyệt web hoạt động bằng cách gửi yêu cầu đến server và nhận phản hồi để hiển thị nội dung cho người dùng trong các ứng dụng SPA.
Integrating third-party services such as AWS S3 for storage, Elasticsearch for search capabilities, and MongoDB Atlas for cloud database management can significantly enhance your application's performance and scalability By leveraging these powerful tools, developers can streamline data storage, improve search efficiency, and utilize a robust cloud database solution, ensuring a seamless user experience and efficient resource management.
Nghiên cứu này tập trung vào lý thuyết về MEAN stack thông qua việc khai thác tài liệu trực tuyến Mục tiêu là xây dựng một ứng dụng tìm việc dành cho những người học công nghệ thông tin.
1.4 KẾT QUẢ DỰ KIẾN ĐẠT ĐƯỢC
Về lý thuyết hiểu rõ về các thành phần của MEAN Stack và cách sử dụng phát triển từng thành phần riêng biệt
Xây dựng một cơ sở dữ liệu phong phú, đáp ứng được những nghiệp vụ tuyển dụng và xin việc
Xây dựng được một ứng dụng giao diện đẹp, dễ sử dụng, tốc độ phản hồi người dùng nhanh và không tốn nhiều tài nguyên khi thực thi
Mã nguồn cần phải rõ ràng, dễ bảo trì và thuận tiện cho việc phát triển sau này Đối với Angular, việc viết theo mô hình MVVM là rất quan trọng, trong khi đó ExpressJS yêu cầu cấu trúc thư mục rõ ràng Các API nên được tổ chức trong từng file riêng biệt để dễ dàng tìm kiếm khi cần thiết.
Hệ thống quản lý đơn giản, tiện dụng và hiệu quả
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
Phần 2: NỘI DUNG CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1.1 TỔNG QUAN VỀ TECHNICAL STACK
“Technical Stack”, “Technology Stack”, “Solution Stack” hay đơn giản là “Tech Stack” là những thuật ngữ chỉ tập hợp các nền tảng, phần mềm, cơ sở dữ liệu và công nghệ cần thiết cho việc phát triển phần mềm, đặc biệt là phát triển Web.
Technical Stack thường gồm nhiều bộ công nghệ đi chung với nhau, một vài Technical stack thông dụng như:
LAMP Stack (Linux, Apache, mySQL, PHP)
LAM Stack (AWS Lambda, Angular, MongoDB)
MEAN Stack (MongoDB, ExpressJS, Angular, NodeJS)
WISA Stack (Window, IIS, SQL Server, ASP.NET) [1]
1.1.2 CÁC THÀNH PHẦN CƠ BẢN CỦA TECHNICAL STACK
Một Technical Stack thường bao gồm:
Ngôn ngữ lập trình (hoặc là Framework) Front-end
Ngôn ngữ lập trình (hoặc là Framework) Back-end
Lấy LAMP Stack làm ví dụ, ta có:
PHP, python (ngôn ngữ lập trình)
Nhiều technical stack sẽ được điều chỉnh theo nhu cầu cụ thể, không nhất thiết phải bao gồm đầy đủ tất cả các chức năng trong "thành phần của Technical Stack" Ví dụ, MEAN stack và LAMP stack có thể thiếu hệ điều hành, cho thấy sự linh hoạt trong việc lựa chọn công nghệ phù hợp với dự án.
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
4 như là một Stack được phát triển hoàn toàn dựa trên “cloud-services” (ứng dụng đám mây)
1.1.3 TẠI SAO TECHNICAL STACK LẠI QUAN TRỌNG Để làm ra một ứng dụng hoàn chỉnh thì việc chỉ viết code thôi chưa đủ, một chương trình hoàn thiện còn phải kèm theo nền tảng hệ điều hành và những phần mềm đi kèm (database, web server,…)
Mỗi ứng dụng đều cần ngôn ngữ lập trình, cơ sở dữ liệu và hệ điều hành nền tảng, nhưng việc chọn lựa Technical Stack là rất quan trọng Mặc dù bề ngoài các ứng dụng có vẻ giống nhau, công nghệ được sử dụng trong phát triển web ảnh hưởng lớn đến hiệu suất và khả năng mở rộng của trang web trong tương lai Các Technical Stack khác nhau sẽ phù hợp với những dự án đặc thù khác nhau, vì vậy việc hiểu rõ mục đích, điểm mạnh và điểm yếu của từng Technical Stack là cần thiết để áp dụng hiệu quả trong từng trường hợp cụ thể.
PHÂN TÍCH VÀ MÔ HÌNH HÓA YÊU CẦU
KHẢO SÁT HIỆN TRẠNG
Hiện nay, nhu cầu tìm việc trong ngành công nghệ thông tin đang tăng cao, đặc biệt trong bối cảnh cuộc cách mạng 4.0 Các trang tuyển dụng trực tuyến trở thành lựa chọn hàng đầu cho nhân lực trong lĩnh vực này, nhờ vào tỷ lệ thành công cao trong việc tìm kiếm việc làm.
Nhận xét riêng về từng trang:
Hình 10: Timviecnhanh Ưu điểm:
Có nhiều việc làm để lựa chọn
Giao diện xấu, có quá nhiều chữ trên giao diện
Trang web được viết bằng công nghệ cũ nên UX không được tốt lắm
Không dành cho người lần đầu đi tìm việc
Không có tích hợp tính năng tạo CV vào trong ứng dụng
CHƯƠNG 2: PHÂN TÍCH VÀ MÔ HÌNH HÓA YÊU CẦU
Hình 11: ITviec Ưu điểm:
Tập trung cho ngành nghề IT
Giao diện đơn giản dễ sử dụng
Số lượng doanh nghiệp có mặt ở đây lớn nên cơ hội tìm được việc cao
Giao diện người dùng chưa được bắt mắt
Số lượng công việc chỉ tập trung ở Hà Nội và thành phố Hồ Chí Minh
Không có tích hợp tính năng tạo CV vô trong đó
CHƯƠNG 2: PHÂN TÍCH VÀ MÔ HÌNH HÓA YÊU CẦU
Có đội ngũ kỹ thuật viên và chăm sóc khách hàng cực kì tốt
Cơ hội tìm thấy công việc cao hơn những trang khác
Có nhiều cấp độ công việc, từ công nhân, nhân viên cho đến quản lý.
Có đề xuất dựa trên địa điểm và ngành nghề
Có tính năng tạo CV
Số lượng doanh nghiệp có mặt ở đây lớn nên cơ hội tìm được việc cao
Giao diện sử dụng phức tạp
Hình 13: TopCV Ưu điểm:
Tính năng tạo CV rất mạnh, đa dạng nhiều mẫu CV
Trang web hỗ trợ cho việc tạo CV cho riêng từng ngành nghề.
Có nhiều template tùy biến cho từng vị trí kinh nghiệm
Tùy biến real-time trên giao diện preview trước khi người dùng đi đến quyết định in CV.
Có hỗ trợ nhiều gợi ý giúp cho người mới sử dụng dễ dàng hơn trong việc tạo cv.
CHƯƠNG 2: PHÂN TÍCH VÀ MÔ HÌNH HÓA YÊU CẦU
Tính năng tìm việc không được tốt cho lắm
Giao diện khá là phức tạp trong việc bố trí những chức năng.
Giao diện tạo CV còn phức tạp, hơi khó sử dụng cho người dùng lần đầu đi xin việc
Có quá nhiều template mà không được đánh giá cao từ phía nhà tuyển dụng. Đánh giá chung:
Hiện nay, có rất nhiều trang web tìm việc giúp người dùng tìm kiếm công việc phù hợp Tuy nhiên, hầu hết các trang này vẫn sử dụng công nghệ cũ, dẫn đến khả năng tùy biến và trải nghiệm người dùng chưa được tối ưu.
XÁC ĐỊNH YÊU CẦU
Thông tin người dùng (ứng viên, nhà tuyển dụng)
Lưu trữ thông tin của bài đăng tuyển dụng
Kĩ năng liên quan đến công việc
Lưu trữ được hình ảnh đại diện
Cho phép sửa đổi thông tin của người dùng
Nhà tuyển dụng có thể tạo bài đăng cho mục đích tuyển dụng
Thuận tiện, dễ sử dụng
Đẹp, thân thiện người dùng
Ứng viên có thể tìm kiếm nhà tuyển dụng theo tên, thành phố
Ứng viên có thể tìm kiếm bài tuyển dụng theo tên nhà tuyển dụng, theo lĩnh vực tùy vào nhu cầu
Nhà tuyển dụng có thể tìm kiếm ứng viên theo email, theo lĩnh vực
Admin có thể tìm kiếm nhà tuyển dụng và ứng viên trong danh sách quản lí theo bất cứ trường thông tin nào
CHƯƠNG 2: PHÂN TÍCH VÀ MÔ HÌNH HÓA YÊU CẦU
Cho phép admin quản lý người dùng (xóa, thống kê)
Cho phép admin thống kê các công việc theo biểu đồ Ứng dụng của một Single Page Application:
Trang web này sở hữu những đặc điểm nổi bật của một Single Page Application, cho phép người dùng trải nghiệm mượt mà mà không cần tải lại trang mỗi khi chuyển đổi giữa các trang hoặc khi gửi và nhận yêu cầu từ máy chủ.
2.2.1 Xác định yêu cầu chức năng hệ thống:
Bảng 1: Xác định yêu cầu chức năng hệ thống
STT Nội dung Mô tả chi tiết Ghi chú
Chức năng đăng nhập để phân quyền mỗi người dùng với nhau
2 Sao lưu Có thể lưu trữ dữ liệu sau khi nhập Có thể lưu trữ các text, đối tượng, hình ảnh
3 Bảo mật Chống được các tấn công web cơ bản: XSS, SQL injection, clickjacking
2.2.2 Xác định yêu cầu chất lượng:
Bảng 2: Xác định yêu cầu chất lượng
STT Nội dung Tiêu chuẩn
Mô tả chi tiết Ghi chú
1 Cho phép thay đổi linh động các trường, thuộc tính của CV
Người dùng web có thể thay đổi các trường theo nhu cầu (thay đổi tên, thông tin liên lạc, kinh nghiệm làm việc)
Trong ứng dụng lần này, trường email sẽ được để mặc định không thay đổi để tránh xảy ra lỗi về phân quyền trong tương lai
2 Cho phép thay đổi hình ảnh đại diện
Cả ứng viên và nhà tuyển dụng có thể chọn một ảnh bất kì từ máy tính cá nhân để làm ảnh đại diện
Hình ảnh sẽ được lưu trên AWS S3 và trả về một URL, bất cứ ai có đường link đó đều có
CHƯƠNG 2: PHÂN TÍCH VÀ MÔ HÌNH HÓA YÊU CẦU
3 Nhà tuyển dụng có thể xem trước bài đăng ở trang
Dashboard thông qua chức năng preview
Nhà tuyển dụng chỉ phải bấm vào nút "xem trước" ở list bài đăng để xem nhanh bài đăng trên một dialog
4 Ứng viên và nhà tuyển dụng có thể xem thông tin khái quát về bản thân trên trang Profile
Ứng viên và nhà tuyển dụng có thể tiếp cận thông tin lẫn nhau, do đó, việc cung cấp cho ứng viên và nhà tuyển dụng quyền xem trước nội dung thông tin cá nhân là rất cần thiết.
5 Nhà tuyển dụng có thể xem ai đã nộp đơn theo từng bài viết và có thể xem CV chi tiết của người đó
Mỗi bài đăng xe có số lượng người nộp đơn khác nhau
Nhà tuyển dụng có thể xem được thông tin đó một cách khái quát nhất trên màn hình quản lý bài đăng của mình
Admin làm được các chức năng quản lý và thống kê cơ bản
7 Ứng viên có thể review về cty mình đã làm việc
Việc có đánh giá về công ty giúp ứng viên có cái nhìn tổng quát về những doanh nghiệp chưa quen thuộc, từ đó tăng cường sự tự tin trong quyết định ứng tuyển.
CHƯƠNG 2: PHÂN TÍCH VÀ MÔ HÌNH HÓA YÊU CẦU
2.2.3 Lược đồ Use case và đặc tả
Hình 14: Lược đồ Use Case
Nhận diện tác nhân và chức năng trong sơ đồ Use case:
Bảng 3: Nhận diện tác nhân và chức năng
Tìm kiếm công việc Ứng viên Đăng nhập
Cập nhật thông tin cá nhân ứng viên
CHƯƠNG 2: PHÂN TÍCH VÀ MÔ HÌNH HÓA YÊU CẦU
Cập nhật thông tin CV ứng viên Tìm kiếm công việc
Tìm kiếm công ty Xem thông tin công ty Xem thông tin mô tả công việc Apply công việc
Viết review về công ty Nhà tuyển dụng Đăng nhập
Cập nhật thông tin tài khoản doanh nghiệp Xem, thêm, sửa, xóa bài viết tuyển dụng Xem lại bài viết đã đăng
Xem thông tin của người apply tin tuyển dụng Xem tất cả review về công ty
Quản lý tất cả các ứng viên Quản lý tất cả nhà tuyển dụng Thống kê xu hướng lập trình viên
Thống kê xu hướng việc làm
Bảng 4: Mô tả chức năng website tìm kiếm việc làm IT
STT Chức năng Mô tả
1 Đăng ký Cho phép đăng ký tài khoản với các vai trò khác nhau như ứng viên, nhà tuyển dụng, admin để sử dụng các chức năng của web
CHƯƠNG 2: PHÂN TÍCH VÀ MÔ HÌNH HÓA YÊU CẦU
2 Đăng nhập Người dùng đăng nhập vào hệ thống để thực hiện việc quản lý các thông tin ứng với các role
3 Tìm kiếm công việc, công ty
Có thể tìm kiếm công việc theo tên công ty, theo chuyên ngành Có thể tìm kiếm công ty theo tên, theo thành phố
4 Quản lý thông tin cá nhân Ứng viên có thể xem và thay đổi thông tin cá nhân của tài khoản
5 Quản lý thông tin CV Ứng viên có thể thêm, chỉnh sửa thông tin CV của bản thân để apply cho nhà tuyển dụng
6 Xem thông tin công ty
Người dùng có thể xem thông tin các công ty tuyển dụng như tên công ty, địa chỉ, tổng quan về công ty, xem review,
7 Xem thông tin mô tả công việc
Nhà tuyển dụng nên cung cấp mô tả chi tiết về công ty để ứng viên có thể dễ dàng tìm hiểu thông tin cần thiết Việc này giúp ứng viên có cái nhìn rõ ràng hơn về môi trường làm việc và giá trị của công ty mà họ quan tâm.
Ứng viên có thể nộp đơn cho các vị trí mà họ cảm thấy phù hợp mà không bị giới hạn số lần nộp Nhà tuyển dụng có khả năng xem danh sách các ứng viên đã ứng tuyển cho từng bài đăng của mình.
Ứng viên có thể viết đánh giá về công ty, bao gồm các yếu tố như sở thích, điều không hài lòng, phúc lợi và được thể hiện qua mức độ hiển thị với số sao Những đánh giá này giúp người khác hiểu rõ hơn về môi trường làm việc và trải nghiệm tại công ty.
10 Quản lý thông tin tài khoản doanh nghiệp
Nhà tuyển dụng có khả năng chỉnh sửa thông tin cá nhân để ứng viên dễ dàng tìm hiểu Thông tin tài khoản doanh nghiệp bao gồm thông tin liên lạc của công ty, khái quát về công ty và các bài đăng liên quan đến doanh nghiệp đó.
11 Tạo bài viết tuyển dụng
Nhà tuyển dụng có thể tạo bài viết để đăng tin tuyển dụng theo nhu cầu của công ty
12 Sửa bài viết tuyển dụng
Nhà tuyển dụng có thể sửa bài viết để đăng tin tuyển dụng theo nhu cầu của công ty
13 Xóa bài viết tuyển dụng
Nhà tuyển dụng có thể xóa bài viết đã đăng theo nhu cầu của công ty
CHƯƠNG 2: PHÂN TÍCH VÀ MÔ HÌNH HÓA YÊU CẦU
14 Xem lại bài viết đã đăng
Nhà tuyển dụng có thể nhanh chóng xem lại bài đăng của mình thông qua nút preview trên trang cá nhân Tính năng này giúp hiển thị bài đăng trong một cửa sổ dialog, mang lại sự thuận tiện cho việc kiểm tra thông tin của doanh nghiệp.
15 Xem thông tin người apply tin tuyển dụng
Nhà tuyển dụng có khả năng xem danh sách ứng viên cho mỗi bài đăng và chi tiết CV của từng người Dựa trên thông tin này, họ sẽ quyết định có tuyển dụng hay không, sau đó tiến hành liên lạc để bắt đầu quá trình tuyển dụng.
16 Xem tất cả review về công ty
Nhà tuyển dụng có thể xem tất cả những đánh giá của mọi người về công ty của mình
17 Quản lý tất cả nhà tuyển dụng
Admin có thể xem tổng số doanh nghiệp, đình chỉ hoạt động của những doanh nghiệp tùy vào nhu cầu
18 Quản lý tất cả các ứng viên
Admin có thể xem tổng số ứng viên, đình chỉ và tái kích hoạt hoạt động của những ứng viên tùy vào nhu cầu
19 Thống kê xu hướng lập trình viên
Admin có thể xem được thống kê về xu hướng kĩ năng của người ứng tuyển ở thời điểm hiện tại
20 Thống kê xu hướng việc làm
Admin có khả năng theo dõi thống kê về xu hướng nhu cầu việc làm mà các nhà tuyển dụng đang tìm kiếm trong thời gian hiện tại.
Bảng 5: Use case Đăng ký
Mô tả Cho phép người dùng đăng ký tài khoản để sử dụng hệ thống
Tác nhân kích hoạt Người dùng (khách)
CHƯƠNG 2: PHÂN TÍCH VÀ MÔ HÌNH HÓA YÊU CẦU
Tiền điều kiện Người dùng phải có ý muốn sử dụng hệ thống
1 Người dùng truy cập vào trang chủ: http://localhost:4200
2 Nếu là doanh nghiệp thì chọn nút “Create Employer Account” để tạo một tài khoản doanh nghiệp Nếu là ứng viên muốn tìm việc thì chọn nút “Create Basic Account” để tạo một tài khoản ứng viên tìm việc
3 Chuyển sang màn hình “Sign up” và nhập các thông tin được yêu cầu:
Nhà tuyển dụng cần cung cấp thông tin như tên công ty, website, thành phố, số điện thoại, email, mật khẩu và xác minh mật khẩu Trong khi đó, ứng viên sẽ điền tên người dùng, số điện thoại, email, mật khẩu và xác minh mật khẩu.
4 Nhấn “Sign up” hoặc Enter
5 Nếu email tồn tại thì sẽ hiện lên “Email đã có người sử dụng”
6 Nếu đăng ký thành công hệ thống sẽ redirect sang trang đăng nhập
Bảng 6: Use case Đăng nhập
Mô tả Cho phép người dùng đăng nhập vào hệ thống
Tác nhân kích hoạt Người dùng
Tiền điều kiện Người dùng đã có tài khoản đăng kí trước với hệ thống
1 Người dùng truy cập vào trang chủ: http://localhost:4200
3 Chuyển hướng sang màn hình login http://localhost:4200/login và nhập các thông tin yêu cầu: Email, Password
5 Nếu sai mật khẩu thì sẽ hiện lên thông báo “Sai mật khẩu và yêu cầu nhập lại”
CHƯƠNG 2: PHÂN TÍCH VÀ MÔ HÌNH HÓA YÊU CẦU
6 Nếu đăng nhập thành công hệ thống sẽ chuyển hướng sang trang sang trang cá nhân tùy theo role là Ứng viên, Nhà truyển dụng hoặc Admin
2.2.3.3 Use case Tìm kiếm công việc
Bảng 7: Use case Tìm kiếm công việc
Use case Tìm kiếm công việc
Mô tả Cho phép người dùng thay đổi ảnh đại diện theo nhu cầu
Tác nhân kích hoạt Người dùng
Tiền điều kiện Người dùng phải có ý muốn sử dụng hệ thống
Các bước thực hiện 1 Người dùng truy cập vào trang chủ: http://localhost:4200
2 Nhấn vào nút “All jobs” trên thanh topbar
3 Chuyển hướng qua màn hình All jobs: http://localhost:4200/all-job
4 Nhập các thông tin người dùng muốn tìm kiếm như: công việc
6 Trang web đã điều hướng sang trang tìm kiếm bài viết và hiển thị danh sách những bài đăng đã được hệ thống tìm thấy
2.2.3.4 Use case Tìm kiếm công ty
Bảng 8: Use case Tìm kiếm công ty
Use case Tìm kiếm công ty
Mô tả Cho phép người dùng thay đổi ảnh đại diện theo nhu cầu
Tác nhân kích hoạt Người dùng
Tiền điều kiện Người dùng phải có ý muốn sử dụng hệ thống
Các bước thực hiện 1 Người dùng truy cập vào trang chủ: http://localhost:4200
2 Nhấn vào nút “Companies” trên thanh topbar
3 Chuyển hướng qua màn hình Companies: http://localhost:4200/companies
4 Nhập các thông tin người dùng muốn tìm kiếm như: tên công ty
CHƯƠNG 2: PHÂN TÍCH VÀ MÔ HÌNH HÓA YÊU CẦU
6 Trang web tìm kiếm bài viết và hiển thị danh sách những bài đăng đã được hệ thống tìm thấy
2.2.3.5 Use case Cập nhật thông tin cá nhân
Bảng 9: Use case Cập nhật thông tin cá nhân ứng viên
Use case Cập nhật thông tin cá nhân ứng viên
Mô tả Cho phép ứng viên thay đổi thông tin của CV
Tác nhân kích hoạt Người dùng (ứng viên tìm việc)
Tiền điều kiện Người dùng phải đăng nhập thành công với vai trò là ứng viên tìm việc
Các bước thực hiện 1 Người dùng sau khi đăng nhập thành công với vai trò là ứng viên hệ thống sẽ chuyển hướng sang trang profile: http://localhost:4200/profile/
2 Ở trang profile người dùng click chọn vào button “Edit Profile” sẽ xuất hiện một modal
3 Thay đổi các thông tin cá nhân: Tên, Số điện thoại, Github URL,…
4 Sau khi chỉnh sửa thông tin hoàn tất, nhấn vào nút “Save Changes” để lưu thông tin
2.2.3.6 Use case Cập nhật thông tin CV ứng viên
Bảng 10: Use case Cập nhật thông tin CV ứng viên
Use case Cập nhật thông tin CV ứng viên
Mô tả Cho phép ứng viên cập nhật thông tin CV cá nhân
Tác nhân kích hoạt Người dùng (Ứng viên tìm việc)
Tiền điều kiện Người dùng phải đăng nhập thành công với vai trò ứng viên tìm việc
Các bước thực hiện 1 Người dùng truy cập vào trang chủ: http://localhost:4200
2 Tiến hành đăng nhập theo yêu cầu
3 Đăng nhập thành công trang Profile sẽ hiện ra:
CHƯƠNG 2: PHÂN TÍCH VÀ MÔ HÌNH HÓA YÊU CẦU
4 Người dùng bấm vào nút “Update CV” chuyển hướng đến trang: http://localhost:4200/profile/ @gmail.com/create-cv?edit=true
5 Nhập các thông tin cần thiết cho một CV như: thông tin cá nhân, Experience, Project, Education,
6 Sau khi chỉnh sửa thông tin hoàn tất, nhấn vào nút “Save” để lưu thông tin CV
2.2.3.7 Use case Xem thông tin công ty
Bảng 11: Use case Xem thông tin công ty
Use case Xem thông tin công ty
Người dùng có thể tải xuống thông tin CV dưới dạng PDF và xem thông tin chi tiết về các công ty tuyển dụng, bao gồm tên công ty, địa chỉ, tổng quan về công ty và các đánh giá từ người dùng.
Tác nhân kích hoạt Người dùng (Ứng viên tìm việc, khách, nhà tuyển dụng)
Tiền điều kiện Người dùng phải có ý muốn sử dụng hệ thống
Các bước thực hiện 1 Người dùng truy cập vào trang chủ: http://localhost:4200
2 Nhấn vào nút “Companies” chuyển hướng trực tiếp đến trang xem công ty đang tuyển dụng: http://localhost:4200/companies
3 Trên màn hình xuất hiện các công ty đang tuyển dụng, nhấn “Go to” sẽ chuyển hướng đến trang xem thông tin chi tiết công ty đó: http://localhost:4200/company/slack@gmail.com
4 Xem các thông tin của công ty như: tên công ty, địa chỉ, tổng quan về công ty, xem review…
2.2.3.8 Use case Xem thông tin mô tả công việc
Bảng 12: Use case xem thông tin mô tả công việc
Use case Xem thông tin mô tả công việc
Mô tả Cho phép người xem thông tin bài viết tuyển dụng mà các công ty đã đăng
CHƯƠNG 2: PHÂN TÍCH VÀ MÔ HÌNH HÓA YÊU CẦU
Tác nhân kích hoạt Người dùng (Ứng viên tìm việc, khách, nhà tuyển dụng)
Tiền điều kiện Người dùng phải có ý muốn sử dụng hệ thống
Các bước thực hiện 1 Người dùng truy cập vào trang chủ: http://localhost:4200
2 Di chuyển màn hình đến phần “Các công ty hàng đầu”
3 Sau khi click chọn bài viết tuyển dụng, sẽ chuyển hướng trực tiếp đến trang: http://localhost:4200/job-description/slack@gmail.com/5cf3364
4 Trên màn hình xuất hiện các thông tin công ty đăng tuyển dụng: vị trí, lương, địa chỉ, tên công ty, mô tả về công việc,
2.2.3.9 Use case Apply công việc:
Bảng 13: Use case Apply công việc
Use case Apply công việc
Mô tả Cho phép ứng viên sau khi tìm kiếm có thể apply công việc để nhà tuyển dụng liên hệ
Tác nhân kích hoạt Người dùng (Ứng viên tìm việc)
Tiền điều kiện Người dùng phải đăng nhập thành công với vai trò là ứng viên tìm việc
Các bước thực hiện 1 Người dùng truy cập vào trang chủ: http://localhost:4200
2 Nhấn vào nút login để đăng nhập với vai trò là ứng viên tìm việc
3 Nhấn vào nút “All Jobs” sẽ chuyển hướng trực tiếp đến trang: http://localhost:4200/all-job
4 Di chuyển màn hình đến phần “Các công ty hàng đầu”
5 Sau khi click chọn bài viết tuyển dụng, sẽ chuyển hướng trực tiếp đến trang: http://localhost:4200/job- description/slack@gmail.com/5cf33644ffd5982430b4aeb4
6 Trên màn hình xuất hiện các thông tin công ty đăng tuyển dụng: vị trí, lương, địa chỉ, tên công ty, mô tả về công việc, và nút
“Apply Now” ở góc bên phải
7 Click chọn vào “Apply Now” thông tin của ứng viên sẽ được
CHƯƠNG 2: PHÂN TÍCH VÀ MÔ HÌNH HÓA YÊU CẦU
37 apply cho nhà tuyển dụng
2.2.3.10 Use case Viết review về công ty
Bảng 14: Use case Viết review về công ty
Use case Viết review về công ty
Mô tả Cho phép ứng viên có thể viết review đánh giá về công ty
Tác nhân kích hoạt Người dùng (Ứng viên tìm việc)
Tiền điều kiện Người dùng phải đăng nhập thành công với vai trò là ứng viên tìm việc
Các bước thực hiện 1 Người dùng truy cập vào trang chủ: http://localhost:4200
2 Nhấn vào nút login để đăng nhập với vai trò là ứng viên tìm việc
3 Nhấn vào nút “Companies” xem công ty đang tuyển dụng
4 Trên màn hình xuất hiện các công ty đang tuyển dụng, nhấn “Go to” sẽ chuyển hướng đến trang xem thông tin chi tiết công ty đó, ví dụ: http://localhost:4200/company/slack@gmail.com
5 Xem các thông tin của công ty như: tên công ty, địa chỉ, tổng quan về công ty, xem review, và nút “Add a review”
6 Nhấn vào nút “Add a review” sẽ chuyển hướng trực tiếp đến trang, ví dụ: http://localhost:4200/review/slack@gmail.com