Tải bản đầy đủ (.docx) (145 trang)

(Đồ án tốt nghiệp) xây dựng website tìm việc IT trên nền tảng mean stack

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (5.22 MB, 145 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ
THUẬT THÀNH PHỐ HỒ CHÍ MINH

ĐỒ ÁN TỐT NGHIỆP
NGÀNH CƠNG NGHỆ THƠNG TIN

XÂY DỰNG WEBSITE TÌM VIỆC IT TRÊN
NỀN TẢNG MEAN STACK

GVHD: NGUYỄN MINH ĐẠO
SVTH: ĐỖ QUỐC VIỆT
MSSV : 15110363
SVTH: NGUYỄN THẾ VINH
MSSV : 15110369

SKL005772

Tp. Hồ Chí Minh, 2019


TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM
KHOA CÔNG NGHỆ THÔNG TIN BỘ MÔN CÔNG
NGHỆ PHẦN MỀM
-----



-----

ĐỖ QUỐC VIỆT
MSSV : 15110363


NGUYỄN THẾ VINH MSSV : 15110369

Đề tài :
XÂY DỰNG WEBSITE TÌM VIỆC IT

TRÊN NỀN TẢNG MEAN STACK
KHÓA LUẬN TỐT NGHIỆP KỸ SƯ CNTT
GIÁO VIÊN HƯỚNG DẪN
ThS. NGUYỄN MINH ĐẠO

KHÓA 2015 - 2019


TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM
KHOA CÔNG NGHỆ THÔNG TIN BỘ MÔN CÔNG
NGHỆ PHẦN MỀM
-----



-----

ĐỖ QUỐC VIỆT
MSSV : 15110363
NGUYỄN THẾ VINH MSSV : 15110369

Đề tài :
XÂY DỰNG WEBSITE TÌM VIỆC IT

TRÊN NỀN TẢNG MEAN STACK

KHÓA LUẬN TỐT NGHIỆP KỸ SƯ CNTT
GIÁO VIÊN HƯỚNG DẪN
ThS. NGUYỄN MINH ĐẠO

KHÓA 2015 - 2019
ĐH SƯ PHẠM KỸ THUẬT TP.HCM

KHOA CNTT


******

XÃ HỘI CHỦ NGHĨA VIỆT
NAM Độc lập – Tự do – Hạnh
phúc ******

PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN

Họ và tên Sinh viên 1 : ĐỖ QUỐC VIỆT

MSSV 1: 15110363

Họ và tên Sinh viên 2 : NGUYỄN THẾ VINH MSSV 2: 15110369
Tên đề tài: XÂY DỰNG WEBSITE TÌM VIỆC IT TRÊN NỀN TẢNG
MEAN STACK
Họ và tên Giáo viên hướng dẫn: ThS. NGUYỄN MINH
ĐẠO NHẬN XÉT
1.Về nội dung đề tài và khối lượng thực hiện:
......................................................................................................................................
.....

......................................................................................................................................
.....
......................................................................................................................................
.....
......................................................................................................................................
.....
2.Ưu điểm:
......................................................................................................................................
.....
......................................................................................................................................
.....
......................................................................................................................................
.....
......................................................................................................................................
.....
3.Khuyết điểm:
......................................................................................................................................
.....
......................................................................................................................................
.....


......................................................................................................................................
.....
......................................................................................................................................
.....
4.Đề nghị cho bảo vệ hay không ?
5.Đánh giá loại:
6.Điểm:


ĐH SƯ PHẠM KỸ THUẬT TP.HCM
KHOA CNTT
******

Tp. Hồ Chí Minh, ngày tháng năm 201
Giáo viên hướng dẫn
(Ký & ghi rõ họ tên)
XÃ HỘI CHỦ NGHĨA VIỆT
NAM Độc lập – Tự do – Hạnh
phúc ******

PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
Họ và tên Sinh viên 1 : ĐỖ QUỐC VIỆT

MSSV 1: 15110363

Họ và tên Sinh viên 2 : NGUYỄN THẾ VINH MSSV 2: 15110369
Ngành: Công nghệ Thông tin
Tên đề tài: XÂY DỰNG WEBSITE TÌM VIỆC IT TRÊN NỀN TẢNG
MEAN STACK
Họ và tên Giáo viên phản biện:
………………………………………………………....
NHẬN XÉT
1.Về nội dung đề tài và khối lượng thực hiện:
......................................................................................................................................
.....
......................................................................................................................................
.....
......................................................................................................................................
.....

......................................................................................................................................
.....
2.Ưu điểm:
......................................................................................................................................
.....
......................................................................................................................................
.....


......................................................................................................................................
.....
......................................................................................................................................
.....
3.Khuyết điểm:
......................................................................................................................................
.....
......................................................................................................................................
.....
......................................................................................................................................
.....
......................................................................................................................................
.....
4.Đề nghị cho bảo vệ hay không ?
5.Đánh giá loại :
………………………………………………………………………..
6.Điểm :
………………………………………………………………………………...

Tp. Hồ Chí Minh, ngày tháng năm 201
Giáo viên phản biện

(Ký & ghi rõ họ tên)


Lời cám ơn
Học tập là quá trình rèn luyện, củng cố kiến thức hành trang cho sinh viên bước
vào công việc trong tương lai. Nhờ ơn những thầy cô đã dìu dắt, chỉ bảo những kiến
thức, kinh nghiệm để áp dụng giúp cho chúng em hoàn thành tốt học phần.
Với lòng biết ơn sâu sắc nhất, chúng em xin chân thành cảm ơn các thầy cô giáo
trong trường ĐH Sư Phạm Kỹ Thuật TP.HCM nói chung, các thầy cơ trong khoa Cơng
Nghệ Thơng Tin nói riêng đã dạy dỗ cho em kiến thức về các môn đại cương cũng như
các mơn chun ngành, giúp em có được cơ sở lý thuyết vững vàng và tạo điều kiện
giúp đỡ chúng em trong suốt quá trình học tập.
Chúng em xin gửi lời cảm ơn chân thành đến thầy Nguyễn Minh Đạo, giảng viên
hướng dẫn Khóa luận tốt nghiệp - trường ĐH Sư Phạm Kỹ Thuật TP.HCM người đã
tận tình hướng dẫn, chỉ bảo chúng em trong suốt quá trình nghiên cứu.
Cuối cùng, chúng em xin chân thành cảm ơn gia đình và bạn bè đã luôn tạo điều
kiện, quan tâm, giúp đỡ, động viên trong suốt q trình học tập và hồn thành tốt
phần mềm.
Tp. Hồ Chí Minh, ngày 30/05/2019
Đỗ Quốc Việt – 15110363
Nguyễn Thế Vinh – 15110369


Trường ĐH Sư Phạm Kỹ Thuật TP HCM
Khoa CNTT

ĐỀ CƯƠNG LUẬN VĂN TỐT NGHIỆP
Họ và Tên SV thực hiện 1 : ĐỖ QUỐC VIỆT

MSSV: 15110363


Họ và Tên SV thực hiện 2 : NGUYỄN THẾ VINH

MSSV: 15110369

Thời gian làm tiểu luận: từ: 18/03/2019 đến: 30/06/2019
Chuyên ngành: Công nghệ phần mềm
Tên tiểu luận: XÂY DỰNG WEBSITE TÌM VIỆC IT TRÊN NỀN TẢNG MEAN
STACK
GV hướng dẫn: ThS. NGUYỄN MINH ĐẠO
Nhiệm vụ của luận văn:
1.

Nghiên cứu về MEAN stack

2.

Nghiên cứu về cách viết RESTFUL API và cách ứng dụng

3.

Sử dụng thư viện Mongoose để tạo Model cho dữ liệu trong MongoDB

4.

Sử dụng Express để làm các cơng việc về phía server-side

5.

Viết các RESTFUL API để thao tác dữ liệu giữa Express và MongoDB


6.

Dùng Angular để làm front-end theo kiểu Single page application

7.

Ráp 4 thành phần lại để xây dựng website tìm kiếm việc làm trên nền tảng

MEAN stack đã tìm hiểu
8.

Kiểm thử

Đề cương viết luận văn :
MỤC LỤC
Phần 1: Mở đầu
1.1. Tính cấp thiết của đề tài
1.2. Mục đích của đề tài
1.3. Cách tiếp cận và phương pháp nghiên cứu
1.4. Kết quả dự kiến đạt được
Phần 2: Nội dung
Chương 1: Cơ sở lý thuyết
1.1. Tổng quan về Technical Stack
1.2. Tổng quan về Mean Stack
1.3. Nodejs
1.4. Expressjs


1.5. Mongodb

1.6. Angular
1.7. Search Engine
1.8. AWS S3
Chương 2: Phân tích và mơ hình hóa 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
Phần 3: Kết luận
Tài liệu tham khảo
KẾ HOẠCH THỰC HIỆN
STT
1

2

3

4

5

6
7
8


trang web
24/06/2019 – 30/06/2019 Hoàn tất web

TP HCM, ngày 15 tháng 3 năm 2019


Ý kiến của giáo viên hướng dẫn
(Ký và ghi rõ họ tên)

Người viết đề cương


MỤC LỤC
Phần 1: MỞ ĐẦU....................................................................................................................................... 1
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
Phần 2: NỘI DUNG.................................................................................................................................... 3
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT....................................................................................................... 3
1.1. TỔNG QUAN VỀ TECHNICAL STACK................................................................................. 3
1.1.1. KHÁI NIỆM......................................................................................................................... 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. NODEJS....................................................................................................................................... 6
1.3.1. KHÁI QUÁT VỀ NODEJS.................................................................................................. 7
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. NPM (NODEJS PACKAGE MANAGER):...................................................................... 10
1.3.3.1. Package manager là gì?............................................................................................... 10
1.3.3.2. Tại sao lại sử dụng npm?............................................................................................ 11
1.3.4. NHƯỢC ĐIỂM CỦA NODEJS......................................................................................... 12

1.4. EXPRESSJS.............................................................................................................................. 12
1.4.1. KHÁI QUÁT VỀ EXPRESSJS......................................................................................... 12
1.4.2. ĐẶC ĐIỂM CỦA EXPRESSJS......................................................................................... 12
1.4.3. RESTFUL API.................................................................................................................... 13
1.4.4. TẠI SAO LẠI SỬ DỤNG EXPRESS TRONG VIỆC QUẢN LÝ REST API................14
1.5. MONGODB............................................................................................................................... 15
1.5.1. KHÁI QUÁT VỀ NOSQL................................................................................................. 15
1.5.2. KHÁI QUÁT VỀ MONGODB.......................................................................................... 15
1.5.3. MONGOOSE..................................................................................................................... 16
1.6. ANGULAR................................................................................................................................ 17
1.6.1. GIỚI THIỆU VỀ ANGULAR............................................................................................ 17
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
1.7. SEARCH ENGINE................................................................................................................... 19
1.8. AWS S3...................................................................................................................................... 21
CHƯƠNG 2: PHÂN TÍCH VÀ MƠ HÌNH HÓA U CẦU............................................................ 22


2.1. KHẢO SÁT HIỆN TRẠNG..................................................................................................... 22
2.2. XÁC ĐỊNH YÊU CẦU............................................................................................................. 25
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.1. Use case Đăng ký.................................................................................................... 31
2.2.3.2. Use case Đăng nhập................................................................................................ 32
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. THIẾT KẾ PHẦN MỀM........................................................................................................... 45
3.1.1. Nghiệp vụ: Đăng ký........................................................................................................... 45
3.1.2. Nghiệp vụ: Đăng nhập....................................................................................................... 46
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. THIẾT KẾ DỮ LIỆU................................................................................................................ 55
3.2.1. Lược đồ quan hệ................................................................................................................. 55

3.2.2. Mô tả cơ sở dữ liệu............................................................................................................. 56
3.2.2.1. Candidate................................................................................................................ 56
3.2.2.2. Resume.................................................................................................................... 57
3.2.2.3. Recruiter.................................................................................................................. 58
3.2.2.4. Authentication......................................................................................................... 59
3.2.2.5. Article...................................................................................................................... 59


3.2.2.6. Review..................................................................................................................... 60
3.2.2.7. Tag........................................................................................................................... 61
3.2.2.6. ReportTag................................................................................................................ 61
3.3. LƯỢC ĐỒ TUẦN TỰ.............................................................................................................. 62
3.3.1. Lược đồ Đăng kí................................................................................................................. 62
3.3.2. Lược đồ Đăng nhập............................................................................................................ 62
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. GIAO DIỆN............................................................................................................................... 68
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.3. Màn hình Đăng nhập.......................................................................................................... 70
3.4.4. Màn hình Trang chủ........................................................................................................... 71

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
4.1. CÀI ĐẶT ỨNG DỤNG............................................................................................................ 89
4.2. KIỂM THỬ ỨNG DỤNG......................................................................................................... 92
Phần 3: KẾT LUẬN................................................................................................................................. 99
TÀI LIỆU THAM KHẢO...................................................................................................................... 101


DANH MỤC HÌNH
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 3: Single Thread................................................................................................................................. 8
Hình 4: Blocking......................................................................................................................................... 9
Hình 5: Non-blocking................................................................................................................................. 9

Hình 6: Event driven NodeJS................................................................................................................... 10
Hình 7: Thiết kế REST API...................................................................................................................... 14
Hình 8: Mơ hình hoạt động mongoose..................................................................................................... 17
Hình 9: Elasticsearch................................................................................................................................ 21
Hình 10: Timviecnhanh............................................................................................................................ 22
Hình 11: ITviec......................................................................................................................................... 23
Hình 12: Vietnamework............................................................................................................................ 23
Hình 13: TopCV........................................................................................................................................ 24
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 77: Thư mục DATN......................................................................................................................... 89
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


DANH MỤC BẢNG
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 tố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,
CV cá nhân................................................................................................................................................ 48
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 tố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 tố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 MỞ ĐẦU

Phần 1: MỞ ĐẦU
1.1. TÍNH CẤP THIẾT CỦA ĐỀ TÀI
Trước thực trạng các ngành nghề đã "bão hòa" và dư thừa lao động như: kinh tế, tài
chính, ngân hàng… nhiều sinh viên ra trường chật vật tìm việc thì câu hỏi: "Học gì để
ra trường có việc làm ngay?" là mối quan tâm hàng đầu của nhiều phụ huynh, học
sinh. Theo Bộ Thông tin và Truyền thông, tới năm 2020, Việt Nam thiếu hụt hơn
500.000 nhân sự IT. Cách mạng 4.0 đang đến gần với sự lên ngôi của công nghệ đã
thực sự tạo nên cơn "khát" nhân lực CNTT.
“Việt nam sẽ sở hữu thung lũng Silicon tiếp theo của thế giới” – trích ơng Nguyễn
Việt Quang, phó chủ tịch kiêm tổng giám đốc Tập đoàn Vingroup. Từ đó cho thấy giới
trẻ, sinh viên Việt Nam thế hệ sau này mang một trọng trách rất quan trọng đưa tiếng
tăm của công nghệ nước nhà ra tầm thế giới.
Xu hướng phần mềm hiện nay giành cho đối tượng người dùng là người dùng nhỏ
lẻ hay doanh nghiệp nhỏ là portable (nhỏ, tiện dụng) và cross-platform (đa nền tảng).
Phần mềm sẽ có xu hướng sử dụng ở mọi lúc mọi nơi, phản hồi lại nhanh với thao tác
của người dùng và có thể xử lý luồng dữ liệu lớn. Từ đó cho thấy nhu cầu học những
công nghệ mới để lập trình phần mềm là tối cần thiết để đáp ứng với nhu cầu tuyển

dụng sau này.
Trong ngày lập trình web nói riêng hiện nay được chia ra làm 2 mảng là Front-end
và Back-end, từ đó việc học và làm Full-stack (cả Front-end lẫn Back-end) giúp cho
sinh viên và người đi làm dễ dàng có cơ hội việc làm hơn và có cái nhìn tổng thể hơn
về cơng việ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 MEAN Stack, ứng dụng MEAN stack vào để xây dựng một 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) để xây dựng ứng dụng.
Áp dụng được công nghệ của các bên thứ 3 như Amazon Web Service,
Elasticsearh, Google Service để làm cho đề tài thêm phong phú. Qua đó học tập các kỹ
năng tích hợp cơng nghệ do bên thứ 3 cung cấp vào dự án.
1


PHẦN MỞ ĐẦU

Xây dựng một trang web tìm kiếm việc làm đáp ứng được nhu cầu về giao diện
đẹp, thân thiện người dùng dễ sử dụng và tốc độ phản hồi với người dùng nhanh.
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
Cách tiếp cận:
Tiếp cận đề tài theo hướng tìm hiểu kiến thức lý thuyết thông qua tài liệu online,
các khóa học online, video hướng dẫn. Từ đó tổng hợp kiến thức lý thuyết vào xây
dựng một ứng dụng thực để có hiểu rõ, hiểu sâu nhất về đối tượng nghiên cứu.
Đối tượng nghiên cứu:
Tổng quan về MEAN stack, các thành phần của MEAN stack (MongoDB,
ExpressJS, Angular, NodeJS), đặc điểm, ưu điểm nhược điểm của từng thành phần,

ngôn ngữ TypeScript, bảo mật web, bảo mật cơ sở dữ liệu, cách thức hoạt động của
trình duyệt web với ứng dụng Single Page Application.
Cách tích hợp các dịch vụ bên thứ 3 như là dịch vụ lưu trữ AWS S3, search engine
Elasticsearch, hệ quản trị cơ sở dữ liệu dạng cloud service MongoDB Atlas
Phạm vi nghiên cứu: Nghiên cứu lý thuyết về MEAN stack thông qua tài liệu trên
mạng. Xây dựng ứng dụng tìm việc cho 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.


Source code rõ ràng, dễ bảo trì và phát triền về sau. Angular phải viết theo

mơ hình MVVM, ExpressJS phải phân bố thư mục rõ ràng, các API phải được
đặt trong từng file riêng biệt dễ dàng có thể tìm lại được khi cần thiết.



Hệ thống quản lý đơn giản, tiện dụng và hiệu quả.

2


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
1.1.1. KHÁI NIỆM
“Technical Stack”, “Technology Stack”, “Solution Stack” hay đơn giản là “Tech
Stack” là những thuật ngữ chung để nói về một tập hợp các nền tảng, phần mềm đi
kèm, cơ sở dữ liệu, công nghệ cần thiết thường đi chung với nhau dành cho việc phát
triển phần mềm (cụ thể ở đây 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:


Hệ điều hành




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



API



Database Server



Data Storage



Web Server

Lấy LAMP Stack làm ví dụ, ta có:


Linux (Hệ điều hành)




Apache Tomcat (Web Server)



mySQL (Database Server)



PHP, python (ngơn ngữ lập trình)

Nhiều Technical stack sẽ được biến hóa theo nhu cầu chứ không nhất thiết phải đầy đủ
tất cả những chức năng được liệt kê trong “thành phần của Technical Stack”, như ta có thể
thấy MEAN stack và LAM Stack sẽ thiếu mất hệ điều hành, LAM stack thì gần
3


CHƯƠNG 1: CƠ SỞ LÝ THUYẾT

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 hồn chỉnh thì việc chỉ viết code thơi chưa đủ, một
chương trình hồ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ột ứng dụng nào cũng cần có ngôn ngữ lập trình, database, hệ điều hành nền
tảng,… Vậy thì chung quy lại ứng dụng nào cũng giống như nhau, tại sao lại phải chọn
Technical Stack làm gì? Thoạt nhìn thì có vẻ ứng dụng nào cũng như nhau, nhưng
cơng nghệ được sử dụng trong việc phát triển ứng dụng web sẽ ảnh hưởng lớn đến
cách hoạt động của trang web cũng như cách trang web hoạt động trong tương lai.

Techical Stack chưa kể cũng sẽ ảnh hưởng đến khả năng mở rộng của ứng dụng
web trong tương lai. Có một số Technical Stack sẽ phục vụ những dự án đặc thù khác
nhau tốt hơn, có rất nhiều sự kết hợp công nghệ để tạo ra Technical Stack nên rất khó
để khái quát hóa Technical Stack là gì, vì vậy cần làm quen với mục đích sử dụng,
điểm mạnh điểm yếu của từng Technical Stack để áp dụng hiệu quả vào từng trường
hợp khác nhau rất quan trọng
Việc chọn đúng Technical Stack trước khi xây dựng ứng dụng rất quan trọng, sẽ
nhiều lúc đến giai đoạn phát triển ứng dụng bị gặp khó khăn, lập trình viên mới phát
hiện ra sự thiếu sót trong cơng nghệ trong q trình phát triển, lúc này việc chỉnh sửa
sẽ rất khó khăn, đẩy cao sự tốn kém về chi phí và nhân lực.

[2]

1.1.4. CÁCH ĐỂ CHỌN ĐÚNG TECHNICAL STACK
Những start-up, developer chưa có kinh nghiệm, sinh viên thường hay mắc phải
những câu hỏi khi đang ở giai đoạn đầu tiên của quá trình phát triển dự án. Sau khi
mọi thiết kế, yêu cầu đã hồn thành thì tiếp theo việc lựa chọn cơng nghệ nào, lựa chọn
ngơn ngữ lập trình nào, sử dụng database nào,… Thường trong những công ty phần
mềm lớn sẽ có một Software Architect hoặc một Technical Leader quyết định. Nhưng
trong trường hợp không có người có kinh nghiệm để quyết định việc này thì phải làm
như thế nào? Phải bắt đầu như thế nào?
Thông thường Technical Stack sẽ được chọn tùy thuộc vào khả năng vào trình độ
của nhóm phát triển. Ví dụ như nhóm giỏi về PHP thì dự án này sẽ tập trung vào
4


CHƯƠNG 1: CƠ SỞ LÝ THUYẾT

những công nghệ xoay quanh và hỗ trợ PHP. Hoặc nếu như nhóm giỏi và quen về
JavaScript thì sẽ chọn MEAN Stack hoặc các cơng nghệ của NodeJS.

Ngồi ra cịn một số tiêu chí khác về việc chọn Technical Stack như là tốc độ phát
triển hay tốc độ xử lý của ứng dụng web. Ví dụ như vào năm 2008 thuở mới thành lập
Twitter đã chọn Ruby on Rail để phát triển ứng dụng một cách nhanh chóng. Nhưng
sau đó họ phải chuyển qua phát triển theo công nghệ của Java và Scala để đáp ứng
được nhu cầu chịu tải của hệ thống.

[1]

Việc chọn đúng Technical Stack là tối quan trọng trong việc bước bắt đầu xây dựng
một hệ thống. Nó xác định kiến trúc hệ thống, chi phí vận hành cũng như tốc độ và
khả năng mở rộng của ứng dụng về lâu về dài.

1.2. TỔNG QUAN VỀ HỆ THỐNG

Hình 1: Tổng quan về hệ thống

1.2.1. KHÁI QUÁT VỀ MEAN STACK:
MEAN STACK là một full-stack JavaScript framework thân thiện với người dùng
cho việc xây dựng các trang web và ứng dụng động. Được cung cấp miễn phí, mã
nguồn mở, xây dựng bằng JavaScript để phát triển ứng dụng Single Page Application

5


CHƯƠNG 1: CƠ SỞ LÝ THUYẾT

(SPA). Đây là một trong những thế mạnh khiến MEAN chạy trên mọi cấp độ của ứng
dụng, trở thành một cách hiệu quả và hiện đại để phát triển web.

[3]


1.2.2. CÁC THÀNH PHẦN CỦA MEAN STACK:
Chữ MEAN là viết tắt của 4 công nghệ:
●MongoDB - Database server
MongoDB là một cơ sở dữ liệu có dạng NoSQL.
NoSQL là một thế hệ cơ sở dữ liệu có các đặc điểm chính là khơng ràng buộc (nonrelational), phân tán (distributed), mã nguồn mở (open source), khả năng co giãn theo
chiều ngang (Horizontal scalable) có thể lưu trữ, xử lý từ một lượng rất nhỏ cho tới dữ
liệu cực lớn, lên đến hàng petabytes dữ liệu trong hệ thống cần có độ chịu tải, chịu lỗi
cao với những yêu cầu về tài nguyên phần cứng thấp.
●ExpressJS - Web framework
ExpressJS là một web application framework cho NodeJS, cung cấp các tính năng
mạnh mẽ cho việc xây dựng một ứng dụng web đúng nghĩa hoặc ngược lại. Express
cũng có thể sử dụng để xây dựng một API mạnh mẽ và thân thiện với người dùng, vì
nó cung cấp rất nhiều tiện ích HTTP và middleware cho việc kết nối.
●Angular (từ năm 2012 AngularJS đã được thay thế bằng Angular 2 giờ đã có
Angular 7) - Front-end framework
Angular là một bộ JavaScript Framework rất mạnh và thường được sử dụng để xây
dựng project Single Page Application (SPA). Nó hoạt động dựa trên các thuộc tính mở
rộng HTML (các attributes theo quy tắc của Angular). Đây là một Framework mã
nguồn mở hoàn toàn miễn phí và được hàng ngàn các lập trình viên trên thế giới ưa
chuộng và sử dụng.
●NodeJS - Web server (Back-end)
Node.js nổi tiếng với việc xây dựng các ứng dụng thời gian thực có thể mở rộng và
các ứng dụng web nhanh. Node.js có thể biên dịch mã JavaScript thành mã máy gốc
trước khi thực thi mã. Tính năng này rất hữu ích trong việc xây dựng các ứng dụng
web JavaScript phía máy chủ. Các ứng dụng dựa trên kết thúc mạnh mẽ phục vụ để
chứa các chức năng quan trọng cao bằng cách sử dụng Node.js. Tính năng được
ngưỡng mộ nhất của Node.js là nó có thể sử dụng JavaScript làm cả ngôn ngữ front
end và back end.[4]


1.3. NODEJS
6


CHƯƠNG 1: CƠ SỞ LÝ THUYẾT

1.3.1. KHÁI QUÁT VỀ NODEJS


NodeJS là chữ N trong “MEAN”, tuy nằm ở cuối nhưng NodeJS lại là có

vai trò quan trọng nhất, nó là nền tảng, là khởi nguồn cho cả stack này được tạo
nên.
 NodeJS là một môi trường thực thi (runtime environment) được ra mắt vào
năm
2009 cho phép JavaScript chạy trên Server-side.
 NodeJS là một mã nguồn mở, sử dụng mơ hình event-drivent và nonblocking
I/O được build trên Google V8 JavaScript engine để thực thi mã lệnh. NodeJS
thường được sử dụng trong việc xây dựng một môi trường cho các máy chủ và
ứng dụng mạng, tuy nhiên khả năng và ứng dụng của NodeJS càng ngày càng
được mở rộng.


[5]

NodeJS là nền tảng cơ bản nhất để xây dựng MEAN stack.

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?



Nhanh:

Một trong những ưu điểm làm nổi bật NodeJS nhất là tốc độ. Vì được thực thi
trên Google V8 engine, mã JavaScript sẽ được build thẳng ra mã Assembly nên tốc
độ xử lý của các ứng dụng NodeJS nhanh hơn Java, Python, PHP. Và bên cạnh đó
còn có các cơ chế Non-blocking I/O và Event Driven giúp mã lệnh thực thi trên
NodeJS đạt hiệu năng cao hơn, ít tốn tài ngun hơn.


[6]

Đơn giản:

Khơng phải vì NodeJS là cơng nghệ mới mà việc học và sử dụng NodeJS khó
khăn, ngược lại có thể rất dễ đối với những lập trình viên đã quen với JavaScript.
Bởi vì NodeJS chỉ là một mơi trường thực thi, cịn mã lệnh được viết trên đó vẫn
là JavaScript, vậy những lập trình viên Front-end đang sử dụng JavaScript đều có
thể học và sử dụng NodeJS một cách nhanh chóng.
Một điều đơn giản hơn nữa của NodeJS là được ứng dụng trong MEAN stack,
một Technical Stack được viết tồn bộ bằng JavaScript (một ngơn ngữ trước đây
bị đánh giá thấp là chỉ có thể chạy trên trình duyệt web). Điều này giúp ích rất
nhiều trong việc đỡ phải gặp rắc rối vì sử dụng nhiều ngơn ngữ lập trình một lúc.


Hiệu năng cao:


7



×