2.5.1. JSON Web Token
JSON Web Mã (JWT) là một chuẩn mở (RFC 7519) định nghĩa một cách nhỏ gọn và khép kín để truyền một cách an toàn thông tin giữa các bên dưới dạng đối tượng JSON. Thông tin này có thể được xác minh và đáng tin cậy vì nó có chứa chữ ký số. JWTs có thể được ký bằng một thuật toán bí mật (với thuật toán HMAC) hoặc một public / private key sử dụng mã hoá RSA [4].
➢ Ưu điểm:
- Stateless, thông tin không được lưu trữ trên máy chủ. - Dễ dàng phát triển, mở rộng.
- Hiệu suất tốt hơn vì máy chủ đọc thông tin trong yêu cầu (nếu sử dụng phiên, hệ thống phải truy vấn thông tin trong bộ nhớ hoặc cơ sở dữ liệu).
13
Hình 2.5. Cấu trúc Json Web Token
Phần chữ ký sẽ được mã hóa bằng HMAC hoặc RSA.
HMAC: Người tạo JWT (người phát hành mã thông báo) và người nhận JWT (người xác minh mã thông báo) đã sử dụng cùng một khóa bí mật để mã hóa và kiểm tra.
RSA sử dụng 1 cặp khóa, đối tượng khởi tạo JWT sử dụng khóa riêng để mã hóa, bộ thu JWT sử dụng khóa công khai để kiểm tra.
Vì vậy, với HMAC, cả hai bên phải chia sẻ một khóa bí mật với nhau và JWT bên nhận hoàn toàn có thể tạo ra một mã JWT hợp lệ khác dựa trên khóa bí mật đó. Đối với RSA, người nhận sử dụng khóa công khai để kiểm tra nhưng không thể khởi tạo JWT mới dựa trên khóa đó. Do đó, mã hóa sử dụng RSA giúp bảo mật chữ ký tốt hơn khi chia sẻ JWT với nhiều đối tượng khác nhau.
Trong dự án, JWT được áp dụng để xác thực và ủy quyền.
2.5.2. Ant Design of Angular
Ant Design của Angular là một thư viện thành phần Angular UI cấp doanh nghiệp dựa trên Ant Design, tất cả các thành phần đều là mã nguồn mở và được sử dụng miễn phí theo giấy phép của MIT [5].
Ưu điểm:
⚫ Một ngôn ngữ thiết kế giao diện người dùng cấp doanh nghiệp cho các ứng dụng Angular.
⚫ Hơn 60 thành phần Angular chất lượng cao.
⚫ Được viết bằng TypeScript với các kiểu hoàn chỉnh được xác định. ⚫ Hỗ trợ chế độ OnPush, hiệu suất cao.
⚫ Tùy biến chủ đề mạnh mẽ đến từng chi tiết. ⚫ Hỗ trợ quốc tế hóa cho hàng chục ngôn ngữ.
14
CHƯƠNG 3. KHẢO SÁT HIỆN TRẠNG VÀ XÁC
ĐỊNH YÊU CẦU 3.1. Khảo sát hiện trạng
Ngày nay, công nghệ 4.0 phát triển mạnh mẽ. Việc sử dụng các hệ thống, website để làm việc, lưu trữ thông tin rất hữu ích. Hoạt động ngoại khóa tham quan doanh nghiệp giúp sinh viên cập nhật kiến thức thực tế và có cái nhìn cận cảnh hơn về môi trường làm việc trong tương lai. Khi thầy cô có nhu cầu tổ chức một chuyến tham quan thường phải mất thời gian đến phòng Quan hệ Doanh nghiệp làm việc với những thầy cô có phận sự trong phòng. Tiếp đến các thông tin cập nhật chuyến tham quan đều phải liên hệ với phòng Quan hệ Doanh nghiệp gây khó khăn trong việc tự chủ xem trạng thái của các chuyến. Sinh viên, cộng tác viên và doanh nghiệp cũng khó có thể xem thông tin chuyến tham quan mà họ đã đăng ký, tổ chức. Vì vậy sự ra đời của website quản lý hành trình nhằm giúp phòng Quan hệ Doanh nghiệp có thể dễ dàng quản lý tất cả thông tin các chuyến đã được đăng ký. Phương pháp trực tuyến này giúp mọi vấn đề được đơn giản hóa.
Chức năng của website quản lý tham quan cần cung cấp cho phòng Quan hệ Doanh nghiệp gồm:
- Khách: xem các bài viết được đăng tải trên trang chủ. - Người dùng: đăng nhập, đăng xuất.
- Người quản trị viên: quản lý chi tiết các danh mục, chuyến tham quan, người dùng, …
- Giảng viên: đăng ký, chỉnh sửa thông tin chuyến khi quản trị viên chưa duyệt và có thể xem thông tin, trạng thái các chuyến đã đăng ký.
- Cộng tác viên: đăng ký dẫn đoàn các chuyến ở trạng thái đang xử lý, xem các chuyến đã được duyệt dẫn đoàn, điểm danh sinh viên và cập nhật hình ảnh checkin, checkout khi đi tham quan, thực hiện khảo sát sau các chuyến tham quan và cập nhật mật khẩu đăng nhập.
- Sinh viên: xem các chuyến đang tham gia và thực hiện khảo sát sau các chuyến tham quan.
- Doanh nghiệp: xem các chuyến đang tổ chức và thực hiện khảo sát sau các chuyến tham quan, cập nhật mật khẩu đăng nhập.
15
3.2. Xác định yêu cầu 3.2.1. Yêu cầu chức năng 3.2.1. Yêu cầu chức năng
3.2.1.1. Yêu cầu chức năng người dùng
a. Quản trị viên
- Cấu hình hệ thống
o Xem cấu hình hệ thống
o Thêm, thay đổi trạng thái, cập nhật thông tin cấu hình hệ thống - Quản lý doanh nghiệp
o Xem danh sách doanh nghiệp
o Thêm, thay đổi trạng thái, cập nhật thông tin doanh nghiệp - Quản lý cộng tác viên
o Xem danh sách cộng tác viên
o Thêm, thay đổi trạng thái, cập nhật thông tin cộng tác viên - Quản lý câu hỏi khảo sát doanh nghiệp
o Xem danh sách câu hỏi khảo sát doanh nghiệp
o Thêm, thay đổi trạng thái, cập nhật thông tin câu hỏi khảo sát doanh nghiệp
- Quản lý câu hỏi khảo sát sinh viên
o Xem danh sách câu hỏi khảo sát sinh viên
o Thêm, thay đổi trạng thái, cập nhật thông tin câu hỏi khảo sát sinh viên
- Quản lý câu hỏi khảo sát cộng tác viên
o Xem danh sách câu hỏi khảo sát cộng tác viên
o Thêm, thay đổi trạng thái, cập nhật thông tin câu hỏi khảo sát cộng tác viên
- Quản lý địa điểm
o Xem danh sách địa điểm
o Thêm, thay đổi trạng thái, cập nhật thông tin địa điểm - Quản lý đợt tham quan
o Xem danh sách đợt tham quan
o Thêm, thay đổi trạng thái, cập nhật thông tin đợt tham quan - Quản lý file hướng dẫn
o Xem danh sách file hướng dẫn
o Thêm, thay đổi trạng thái, cập nhật thông tin file hướng dẫn - Quản lý lĩnh vực
16
o Thêm, thay đổi trạng thái, cập nhật thông tin lĩnh vực - Quản lý ngành
o Xem danh sách ngành
o Thêm, thay đổi trạng thái, cập nhật thông tin ngành - Quản lý phương tiện
o Xem danh sách phương tiện
o Thêm, thay đổi trạng thái, cập nhật thông tin phương tiện - Quản lý sinh viên
o Xem danh sách sinh viên
o Thêm, thay đổi trạng thái, cập nhật thông tin sinh viên. - Quản lý văn bản biểu mẫu
o Xem danh sách biểu mẫu
o Thêm, thay đổi trạng thái, cập nhật thông tin văn bản biểu mẫu - Quản lý chuyến tham quan
o Xem danh sách chuyến theo trạng thái
o Thêm chuyến
o Cập nhật thông tin chuyến
o Cập nhật danh sách sinh viên tham gia
o Duyệt cộng tác viên tham gia dẫn đoàn
o Lưu trữ hồ sơ
o Xem timeline graphic chương trình tham quan - Thống kê kết quả khảo sát
o Thống kê câu trả lời loại câu nhập liệu của doanh nghiệp
o Thống kê câu trả lời loại câu sắp xếp của doanh nghiệp
o Thống kê câu trả lời loại câu chọn một, nhiều của doanh nghiệp
o Thống kê câu trả lời loại câu nhập liệu của sinh viên
o Thống kê câu trả lời loại câu sắp xếp của sinh viên
o Thống kê câu trả lời loại câu chọn một, nhiều của sinh viên
o Thống kê câu trả lời loại câu nhập liệu của cộng tác viên
o Thống kê câu trả lời loại câu sắp xếp của cộng tác viên
o Thống kê câu trả lời loại câu chọn một, nhiều của cộng tác viên
o Thống kê số chuyến tham quan theo thời gian
o Thống kê số chuyến tham quan theo doanh nghiệp b. Giảng viên
- Đăng ký chuyến tham quan - Cập nhật chuyến tham quan
- Xem chuyến tham quan đã đăng ký c. Cộng tác viên
17 - Đăng ký dẫn đoàn chuyến tham quan
- Hủy dẫn đoàn chuyến tham quan
- Xem chuyến tham quan đã được duyệt dẫn đoàn - Điểm danh sinh viên
- Khảo sát sau chuyến đi
- Thay đổi mật khẩu đăng nhập d. Sinh viên
- Xem danh sách các chuyến đi đang tham gia - Khảo sát sau chuyến đi
e. Doanh nghiệp
- Khảo sát sau chuyến đi
- Thay đổi mật khẩu đăng nhập
3.2.1.2. Yêu cầu chức năng hệ thống
- Phân quyền
▪ Khách: xem các bài viết được đăng tải trên trang chủ.
▪ Người dùng: đăng nhập và đăng xuất.
▪ Admin: toàn quyền hệ thống
▪ Giảng viên: đăng ký, cập nhật thông tin chuyến, xem chuyến đã đăng ký
▪ Cộng tác viên: đăng ký/ hủy dẫn đoàn, check in, check out điểm đến, xem chuyến đang dẫn, điểm danh sinh viên, khảo sát sau chuyến đi, thay đổi mật khẩu đăng nhập hệ thống.
▪ Sinh viên: xem danh sách chuyến đang tham gia, khảo sát sau chuyến đi
▪ Doanh nghiệp: xem danh sách chuyến đang tổ chức, khảo sát sau chuyến đi, thay đổi mật khẩu đăng nhập hệ thống.
- Thông báo
▪ Luôn được thông báo khi hệ thống hoạt động thành công hay thất bại - Bảo mật
▪ Luôn kiểm tra các quyền và lưu thông tin người thực hiện trước và khi làm việc với dữ liệu.
- Lưu trữ
▪ Người dùng
▪ Các danh mục
▪ Chuyến tham quan
▪ Câu hỏi khảo sát
18
▪ Hình ảnh
▪ File document
▪ File excel
▪ File pdf
3.2.2. Yêu cầu phi chức năng
- Khả năng sử dụng:
▪ Giao diện dễ nhìn, thân thiện với người dùng
▪ Dễ dàng thao tác - Hiệu quả:
▪ Tốc độ tìm kiếm nhanh và hiệu quả
▪ Tốc độ tải trang nhanh - Khả năng tương thích:
▪ Đáp ứng nhiều nền tảng và thiết bị - Phát triển:
19
CHƯƠNG 4. ĐẶC TẢ CHỨC NĂNG
4.1. Định nghĩa usecase 4.1.1. Actor 4.1.1. Actor
Bảng 4.1. Actor
No Use case Admin Giảng
viên Cộng tác viên Sinh viên Doanh nghiệp 1 Cấu hình hệ thống. x
2 Quản lý câu hỏi khảo sát cộng tác
viên. x
3 Quản lý câu hỏi khảo sát doanh
nghiệp. x
4 Quản lý câu hỏi khảo sát sinh viên. x 5 Quản lý chuyến tham quan. x
6 Quản lý cộng tác viên. x
7 Quản lý doanh nghiệp. x
8 Quản lý địa điểm. x
9 Quản lý đợt tham quan. x
10 Quản lý file hướng dẫn. x
11 Quản lý lĩnh vực. x
12 Quản lý ngành. x
13 Quản lý phương tiện. x
14 Quản lý sinh viên. x
15 Quản lý văn bản biểu mẫu. x
16 Thống kê. x
17 Đăng ký chuyến tham quan. x
18 Cập nhật chuyến tham quan. x
19 Xem chuyến tham quan đã đăng ký. x
20 Xem chuyến được duyệt dẫn đoàn. x
21 Đăng ký dẫn đoàn. x
20
23 Điểm danh sinh viên. x
24 Khảo sát sau chuyến đi. x x x
25 Thay đổi mật khẩu đăng nhập. x x
26 Xem danh sách chuyến tham gia. x
27 Xem danh sách chuyến tổ chức. x
4.1.2. Usecase
Bảng 4.2. Usecase
No Name use case Use case ID
1 Cấu hình hệ thống. UC_1
1.1 Xem cấu hình hệ thống. UC_1.1
1.2 Cập nhật cấu hình hệ thống. UC_1.2
2 Quản lý câu hỏi khảo sát cộng tác viên. UC_2
2.1 Xem danh sách câu hỏi khảo sát cộng tác viên. UC_2.1 2.1.1 Cập nhật câu hỏi khảo sát cộng tác viên. UC_2.1.1 2.1.2 Thay đổi trạng thái câu hỏi khảo sát cộng tác
viên. UC_2.1.2
2.2 Thêm mới câu hỏi khảo sát cộng tác viên. UC_2.2
3 Quản lý câu hỏi khảo sát doanh nghiệp. UC_3
3.1 Xem danh sách câu hỏi khảo sát doanh nghiệp. UC_3.1 3.1.1 Cập nhật câu hỏi khảo sát doanh nghiệp. UC_3.1.1 2.1.2 Thay đổi trạng thái câu hỏi khảo sát doanh
nghiệp. UC_3.1.2
3.2 Thêm mới câu hỏi khảo sát doanh nghiệp. UC_3.2
4 Quản lý câu hỏi khảo sát sinh viên. UC_4
4.1 Xem danh sách câu hỏi khảo sát sinh viên. UC_4.1 4.1.1 Cập nhật câu hỏi khảo sát sinh viên. UC_4.1.1 4.1.2 Thay đổi trạng thái câu hỏi khảo sát sinh viên. UC_4.1.2
4.2 Thêm mới câu hỏi khảo sát doanh nghiệp. UC_4.2
5 Quản lý chuyến tham quan. UC_5
5.1 Xem danh sách chuyến tham quan theo trạng thái. UC_5.1
5.1.1 Tìm kiếm chuyến tham quan. UC_5.1.1
5.1.2 Xem theo trạng thái chờ duyệt. UC_5.1.2
5.1.3 Xem theo trạng thái đang xử lý. UC_5.1.3 5.1.4 Xem theo trạng thái sẵn sàng chưa có đợt. UC_5.1.4
21
5.1.5 Xem theo trạng thái sẵn sàng. UC_5.1.5
5.1.6 Xem theo trạng thái hủy. UC_5.1.6
5.1.7 Upload file quyết định của BGH. UC_5.1.7
5.1.8 Xem danh sách cộng tác viên. UC_5.1.8
5.1.8.1 Xét duyệt cộng tác viên. UC_5.1.8.1
5.1.8.2 Thêm cộng tác viên. UC_5.1.8.1
5.1.9 Xem danh sách sinh viên tham quan. UC_5.1.9 5.1.9.1 Thêm mới sinh viên tham gia. UC_5.1.9.1 5.1.9.2 Import danh sách sinh viên. UC_5.1.9.2 5.1.9.3 Điểm danh bù sinh viên. UC_5.1.9.3 5.1.9.4 Import danh sách sinh viên điểm
danh bù. UC_5.1.9.4
5.1.10 Cập nhật chuyến tham quan. UC_5.1.10
5.1.11 Filter chuyến tham quan. UC_5.1.11
5.2 Thêm mới chuyến tham quan. UC_5.2
5.3 Lưu trữ hồ sơ. UC_5.3
5.4 Xem dòng thời gian. UC_5.4
6 Quản lý cộng tác viên. UC_6
6.1 Xem danh sách cộng tác viên. UC_6.1
6.1.1 Cập nhật cộng tác viên. UC_6.1.1
6.1.2 Thay đổi trạng thái cộng tác viên. UC_6.1.2
6.2 Thêm mới cộng tác viên. UC_6.2
7 Quản lý doanh nghiệp. UC_7
7.1 Xem danh sách doanh nghiệp. UC_7.1
7.1.1 Cập nhật doanh nghiệp. UC_7.1.1
7.1.2 Thay đổi trạng thái doanh nghiệp. UC_7.1.2
7.2 Thêm mới doanh nghiệp. UC_7.2
8 Quản lý địa điểm. UC_8
8.1 Xem danh sách địa điểm. UC_8.1
8.1.1 Cập nhật địa điểm. UC_8.1.1
8.1.2 Thay đổi trạng thái địa điểm. UC_8.1.2
8.2 Thêm mới địa điểm. UC_8.2
9 Quản lý đợt tham quan. UC_9
9.1 Xem danh sách đợt tham quan. UC_9.1
9.1.1 Cập nhật đợt tham quan. UC_9.1.1
9.1.2 Thay đổi trạng thái đợt tham quan. UC_9.1.2
22
10 Quản lý file hướng dẫn UC_10
10.1 Xem danh sách file hướng dẫn UC_10.1
10.1.1 Cập nhật file hướng dẫn UC_10.1.1
10.1.2 Thay đổi trạng thái file hướng dẫn UC_10.1.2
10.2 Thêm mới file hướng dẫn UC_10.2
11 Quản lý lĩnh vực UC_11
11.1 Xem danh sách lĩnh vực UC_11.1
11.1.1 Cập nhật lĩnh vực UC_11.1.1
11.1.2 Thay đổi trạng thái lĩnh vực UC_11.1.2
11.2 Thêm mới lĩnh vực UC_11.2
12 Quản lý ngành UC_12
12.1 Xem danh sách ngành UC_12.1
12.1.1 Cập nhật ngành UC_12.1.1
12.1.2 Thay đổi trạng thái ngành UC_12.1.2
12.2 Thêm mới ngành UC_12.2
13 Quản lý phương tiện UC_13
13.1 Xem danh sách phương tiện UC_13.1
13.1.1 Cập nhật phương tiện UC_13.1.1
13.1.2 Thay đổi trạng thái phương tiện UC_13.1.2
13.2 Thêm mới phương tiện UC_13.2
14 Quản lý sinh viên UC_14
14.1 Xem danh sách sinh viên UC_14.1
14.1.1 Cập nhật sinh viên UC_14.1.1
14.1.2 Thay đổi trạng thái sinh viên UC_14.1.2
14.2 Thêm mới sinh viên UC_14.2
15 Quản lý văn bản biểu mẫu UC_15
15.1 Xem danh sách văn bản biểu mẫu UC_15.1
15.1.1 Cập nhật văn bản biểu mẫu UC_15.1.1
15.1.2 Thay đổi trạng thái văn bản biểu mẫu UC_15.1.2
15.2 Thêm mới văn bản biểu mẫu UC_15.2
16 Thống kê UC_16
16.1 Thống kê câu trả lời loại câu nhập liệu của doanh nghiệp UC_16.1 16.2 Thống kê câu trả lời loại câu sắp xếp của doanh nghiệp UC_16.2 16.3 Thống kê câu trả lời loại câu chọn một, nhiều của doanh
nghiệp UC_16.3
16.4 Thống kê câu trả lời loại câu nhập liệu của sinh viên UC_16.4 16.5 Thống kê câu trả lời loại câu sắp xếp của sinh viên UC_16.5
23 16.6 Thống kê câu trả lời loại câu chọn một, nhiều của sinh
viên UC_16.6
16.7 Thống kê câu trả lời loại câu nhập liệu của cộng tác viên UC_16.7 16.8 Thống kê câu trả lời loại câu sắp xếp của cộng tác viên UC_16.8 16.9 Thống kê câu trả lời loại câu chọn một, nhiều của cộng
tác viên UC_16.9
16.10 Thống kê số chuyến tham quan theo thời gian UC_16.10 16.11 Thống kê số chuyến tham quan theo doanh nghiệp UC_16.11 16.12 Thống kê mức độ hài lòng của doanh nghiệp UC_16.12
17 Đăng ký chuyến tham quan UC_17
18 Cập nhật chuyến tham quan UC_18
19 Xem chuyến tham quan đã đăng ký UC_19
20 Xem chuyến được duyệt dẫn đoàn UC_20
21 Đăng ký dẫn đoàn UC_21
22 Hủy dẫn đoàn UC_22
23 Điểm danh sinh viên UC_23
24 Khảo sát sau chuyến đi UC_24
25 Thay đổi mật khẩu đăng nhập UC_25
26 Xem danh sách chuyến tham gia UC_26