1. Trang chủ
  2. » Luận Văn - Báo Cáo

Luận văn tốt nghiệp Khoa học máy tính: Tích hợp các quy trình phòng khoa học công nghệ vào dự án cổng thông tin

138 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Tích hợp các quy trình phòng khoa học công nghệ vào dự án cổng thông tin
Tác giả Lê Nhựt Anh, Đặng Lê Hoàng Duy
Người hướng dẫn Ths. Nguyễn Thanh Tùng, Ths. Bùi Tiến Đức
Trường học Đại học Quốc gia TP.HCM
Chuyên ngành Khoa học máy tính
Thể loại Luận văn tốt nghiệp
Năm xuất bản 2022
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 138
Dung lượng 6,43 MB

Cấu trúc

  • 1. Giới thiệu đề tài (20)
  • 2. Khó khăn và thách thức (21)
  • 3. Cơ sở lý thuyết (22)
    • 3.1. Kiến trúc website MVC (Model – View – Controller) (22)
    • 3.2. Ứng dụng đa trang và ứng dụng đơn trang (23)
      • 3.2.1. Ứng dụng đa trang (Multiple-page Application) (23)
      • 3.2.2. Ứng dụng đơn trang (Single-page Application) (23)
    • 3.3. Thư viện và framework cho Javascript (24)
      • 3.3.1. Angular (24)
      • 3.3.2. VueJS (25)
      • 3.3.3. ReactJS (25)
    • 3.4. Thư viện hỗ trợ cho ReactJS (26)
      • 3.4.1. Flux (26)
      • 3.4.2. Redux (27)
    • 3.5. Front-end (28)
      • 3.5.1. HTML/CSS (28)
      • 3.5.2. SCSS/SASS (29)
      • 3.5.3. Bootstrap (29)
      • 3.5.4. jQuery (29)
    • 3.6. Back-end (30)
      • 3.6.1. Java (30)
      • 3.6.2. ASP.NET (31)
      • 3.6.3. NodeJS (32)
      • 3.6.4. Kết luận và lựa chọn (33)
    • 3.7. Cơ sở dữ liệu (33)
      • 3.7.1. Hệ cơ sở dữ liệu quan hệ (33)
      • 3.7.2. Hệ cơ sở dữ liệu phi quan hệ (35)
      • 3.7.3. So sánh cơ sở dữ liệu quan hệ và cơ sở dữ liệu phi quan hệ (36)
      • 3.7.4. Oracle (37)
      • 3.7.5. Microsoft SQL Server (37)
      • 3.7.6. MySQL (38)
      • 3.7.7. MongoDB (38)
      • 3.7.8. Redis (39)
      • 3.7.9. Kết luận và lựa chọn (39)
    • 3.8. Websocket và SocketIo (40)
      • 3.8.1. Websocket (40)
      • 3.8.2. SocketIo (40)
  • 4. Giới thiệu về hệ thống đã phát triển (41)
    • 4.1. Các module của hệ thống đã phát triển (41)
      • 4.1.1. Quản lý các hoạt động khoa học, công nghệ và dự án của cán bộ (41)
      • 4.1.2. Quản lý hoạt động của mỗi cán bộ (44)
      • 4.1.3. Quản lý lý lịch khoa học cho cán bộ (44)
      • 4.1.4. Quản lý đăng ký đề tài (45)
      • 4.1.5. Quản lý phản biện đề tài (45)
      • 4.1.6. Quản lý quá trình (45)
      • 4.1.7. Quản lý danh mục (46)
      • 4.1.8. Xem thống kê số liệu (47)
      • 4.1.9. Gửi thông báo bằng email (47)
      • 4.1.10. Quản lý thực hiện đề tài (48)
      • 4.1.11. Quản lý phân chia giờ thực hiện đề tài (48)
      • 4.1.12. Phân quyền quản lý cấp đề tài cán bộ phòng Khoa học Công nghệ và Dự án (48)
      • 4.1.13. Quản lý dữ liệu sách, tài liệu, giáo trình (49)
      • 4.1.14. Quản lý kinh phí (49)
      • 4.1.15. Quản lý sản phẩm ứng dụng theo nghiên cứu đề tài (49)
      • 4.1.16. Quản lý kết quả đào tạo (49)
      • 4.1.17. Quản lý các đề tài liên quan hợp tác quốc tế (50)
      • 4.1.18. Quản lý giải thưởng (50)
      • 4.1.19. Thống kê (50)
      • 4.1.20. Các module hỗ trợ khác (50)
    • 4.2. Kiến trúc hệ thống đã phát triển (50)
    • 4.3. Use-case hệ thống đã phát triển (52)
    • 4.4. Cơ sở dữ liệu hệ thống đã phát triển (55)
      • 4.4.1. Lược đồ ERD hệ thống đã phát triển (55)
      • 4.4.2. Lược đồ cơ sở dữ liệu hệ thống đã phát triển (56)
  • 5. Phân tích yêu cầu mới đối với hệ thống quản lý phòng Khoa học công nghệ & Dự án (58)
    • 5.1. Yêu cầu chức năng (58)
      • 5.1.1. Chức năng thuộc lý lịch khoa học cá nhân (58)
      • 5.1.2. Chức năng thuộc quản lý khoa học cá nhân (58)
    • 5.2. Yêu cầu phi chức năng (61)
  • 6. Thiết kế hệ thống mới và hệ thống mở rộng (62)
    • 6.1. Use-case đối với actor - người sử dụng (62)
      • 6.1.1. Xem, thêm, sửa, xóa, phân trang dữ liệu (63)
      • 6.1.2. Tìm kiếm theo bộ lọc có sẵn (64)
      • 6.1.3. Xem thêm dữ liệu mà người sử dụng tham gia (65)
      • 6.1.4. Tải xuống lý lịch khoa học theo mẫu yêu cầu (65)
      • 6.1.5. Phản biện Murata (66)
    • 6.2. Use-case đối với actor - người quản lý khoa học công nghệ cá nhân (67)
      • 6.2.1. Xem, thêm, sửa, xóa, phân trang dữ liệu (68)
      • 6.2.2. Tìm kiếm theo bộ lọc có sẵn (69)
      • 6.2.3. Tải xuống dữ liệu đề tài nghiên cứu khoa học (70)
      • 6.2.4. Đồng bộ danh sách đề tài (71)
      • 6.2.5. Đồng bộ tỷ lệ chia giờ đề tài (71)
      • 6.2.6. Thay đổi thông tin người tạo (72)
      • 6.2.7. Tải lên đánh giá công trình khoa học (72)
      • 6.2.8. Xem lịch sử tải lên tập tin thuyết minh (73)
      • 6.2.9. Sắp xếp thuyết minh đề tài theo điều kiện (74)
      • 6.2.10. Tải xuống dữ liệu đổi mới sáng tạo (74)
      • 6.2.11. Cập nhật dữ liệu thêm mẫu nhập liệu R01 (75)
      • 6.2.12. Thông báo khi tải lên tập tin thành công (76)
      • 6.2.13. Tải lên tập tin hướng dẫn và mời phản biện (76)
      • 6.2.14. Tải xuống tập tin hướng dẫn và mời phản biện (77)
      • 6.2.15. Chỉnh sửa thông tin email thông báo không đủ thông tin (77)
      • 6.2.16. Chỉnh sửa thông tin email thông báo tạo mới bài báo (78)
      • 6.2.17. Chỉnh sửa thông tin email thông báo xóa bài báo (79)
      • 6.2.18. Chỉnh sửa thông tin email thông báo thêm tác giả (79)
      • 6.2.19. Thể hiện trực quan thông tin thống kê (80)
    • 6.3. Use-case đối với actor - người quản lý trung tâm (81)
      • 6.3.1. Xem, thêm, sửa, xóa, phân trang dữ liệu (82)
      • 6.3.2. Tải xuống dữ liệu (83)
    • 6.4. Use-case đối với actor - người quản lý phòng thí nghiệm (84)
      • 6.4.1. Xem, thêm, sửa, xóa, phân trang dữ liệu (85)
      • 6.4.2. Tải xuống dữ liệu (86)
    • 6.5. Use-case đối với actor - người quản lý Khoa (87)
      • 6.5.1. Xem, thêm, sửa, xóa, phân trang dữ liệu (88)
      • 6.5.2. Tải xuống dữ liệu (89)
      • 6.5.3. Thể hiện trực quan thông tin thống kê (90)
    • 6.6. Use-case đối với actor - quản lý công trình khoa học (90)
      • 6.6.1. Tự động gửi email sau 23 ngày bài báo, công trình khoa học không đủ thông tin (91)
      • 6.6.2. Tự động gửi email thông báo xóa bài báo sau 30 ngày bài báo, công trình khoa học không đủ thông tin (91)
      • 6.6.3. Tự động gửi email thông báo sau khi bài báo, công trình khoa học được tạo (92)
      • 6.6.4. Tự động gửi email thông báo sau khi bài báo, công trình khoa học được cập nhật tác giả (92)
  • 7. Thiết kế cơ sở dữ liệu cho hệ thống mới và mở rộng (94)
  • 8. Hiện thực và phát triển hệ thống (96)
    • 8.1. Cấu trúc cây thư mục (96)
    • 8.2. Hiện thực và phát triển hệ thống theo chức năng của từng đối tượng (97)
      • 8.2.1. Đối tượng Người dùng (97)
      • 8.2.2. Đối tượng Người quản lý (99)
      • 8.2.3. Đối tượng Trưởng khoa và Phó Khoa (112)
      • 8.2.4. Đối tượng Chuyên viên, Trưởng và Phó trung tâm (119)
      • 8.2.5. Đối tượng Chuyên viên, Trưởng và Phó phòng thí nghiệm (123)
      • 8.2.6. Đối tượng Hệ thống quản lý công trình khoa học (126)
  • 9. Kiểm thử hệ thống (128)
    • 9.1. Kiểm thử API (128)
    • 9.2. Kiểm thử User Interface (132)
  • 10. Kết luận và hướng phát triển luận văn (136)
    • 10.1. Kết quả đạt được (136)
    • 10.2. Ưu điểm (136)
    • 10.3. Hạn chế (137)
    • 10.4. Hướng phát triển luận văn (137)
  • Tài liệu tham khảo (138)

Nội dung

Giới thiệu đề tài

Phòng Khoa học Công nghệ & Dự án đã chuẩn hóa quy trình quản lý thuyết minh, đề tài, trung tâm và phòng thí nghiệm Cổng thông tin nhà trường cần tích hợp các quy trình này để cung cấp dịch vụ cho phòng và viên chức, người lao động của nhà trường

Nhiệm vụ (yêu cầu về nội dung và số liệu ban đầu):

• Quản lý thuyết minh, đề tài các cấp

• Quản lý kinh nghiệm đổi mới sáng tạo

• Quản lý trung tâm, phòng thí nghiệm trọng điểm Quốc gia, phòng thí nghiệm khoa

• Phân chia giờ nghiên cứu khoa học trong đề tài

• Thống kê các thông tin liên quan đến lý lịch khoa học

Hiện tại, ứng dụng quản lý của phòng khoa học công nghệ và dự án chỉ đủ phục vụ các nhu cầu cơ bản của người dùng như: thêm, xóa, sửa, cập nhật thông tin phần mềm Trong khi đó, nhu cầu sử dụng của người dùng ngày càng cao cần thiết phải có thêm các module mở rộng như:

- Hiển thị lịch sử upload file thuyết minh, và quản lý các file đã upload lên hệ thống

- Đồng bộ lý lịch khoa học của người dùng giữa các module với nhau

- Đồng bộ tỷ lệ chia giờ giữa quản lý dữ liệu đề tài và đề tài lý lịch khoa học

- Phân chia giờ nghiên cứu đề tài khoa học giữa các thầy cô có tham gia trong đề tài

- Trực quan hóa số liệu thống kê liên quan đế lý lịch khoa học

- Xuất, in các báo cáo thống kê

Bên cạnh đó, do nhu cầu thực tế phát sinh, Phòng Khoa học Công nghệ & Dự án cần thêm các module để quản lý các nghiệp vụ mới phát sinh như:

- Nghiệp vụ quản lý kinh nghiệm đổi mới sáng tạo, đánh giá hoạt động đổi mới sáng tạo

- Nghiệp vụ quản lý trung tâm, phòng thí nghiệm trọng điểm Quốc gia, phòng thí nghiệm khoa.

Khó khăn và thách thức

Nhóm lựa chọn phát triển các tính năng mới dựa trên hệ thống cũ sẽ có những khó khăn và thách thức như sau:

- Mất thời gian để làm quen mã nguồn, công nghệ đã sử dụng

- Đồng bộ dữ liệu giữa chức năng cũ và các tính năng mới theo đề tài của nhóm

- Các nghiệp vụ phòng Khoa học Công nghệ & Dự án thường thay đổi theo thời gian đòi hỏi phải xây dựng cơ sở dữ liệu linh hoạt đáp ứng việc thay đổi nghiệp vụ

- Hỗ trợ trên nhiều nền tảng khác nhau

Trên đây là những thách thức mà nhóm em cần phải giải quyết để tích hợp các quy trình nghiệp vụ phòng Khoa học Công nghệ & Dự án vào cổng thông tin.

Cơ sở lý thuyết

Kiến trúc website MVC (Model – View – Controller)

MVC là viết tắt của 3 từ Model - View - Controller, đây là mô hình thiết kế thường được sử dụng hầu hết trong các dự án website Trong mô hình này, yêu cầu (request) được gửi tới Controller từ người dùng (user) Controller có nhiệm vụ giao tiếp với Model để thực hiện nghiệp vụ hoặc lấy dữ liệu từ cơ sở dữ liệu (database) và chọn View để hiển thị dữ liệu từ Model ra cho người dùng Sự tương tác giữa các thành phần trong mô hình này được thể hiện ở Hình 1

- Là nơi chứa các nghiệp vụ tương tác với dữ liệu hoặc hệ quản trị cơ sở dữ liệu (Oracle, MySQL, MS SQL Server, )

- Gồm các class, các function xử lý nhiều nghiệp vụ như kết nối database, truy vấn, thêm, xóa và sửa dữ liệu

- Là nơi thể hiện nội dung cho người dùng tương tác thông qua giao diện (UI) như button, form menu, hình ảnh,

- Đây cũng là nơi các thành phần HTML được tạo ra

- Là nơi đóng vai trò trung gian, xử lý dữ liệu cũng như các yêu cầu thông qua việc tiếp nhận những yêu cầu đó từ người dùng, xử lý logic, lấy dữ liệu phù hợp từ Model sau đó hiển thị thông qua View

Hình 1 Mô hình MVC v Ưu điểm của mô hình MVC

- Hỗ trợ phát triển ứng dụng nhanh chóng, các thành viên trong nhóm có thể làm việc đồng thời trên từng thành phần khác nhau của mô hình này

- Trình tự xử lý rõ ràng

- Dễ bảo trì, chỉnh sửa do sự tách biệt của các thành phần

- Đơn giản, dễ hiểu và dễ khai triển

- Tạo ra một mô hình chuẩn cho dự án, người ngoài dự án dễ tiếp cận hơn v Nhược điểm của mô hình MVC

- Gây cồng kềnh, mất thời gian cho các dự án nhỏ do phải lưu trữ lượng file lớn, vì thế nên mô hình này thường được sử dụng cho các dự án vừa và lớn.

Ứng dụng đa trang và ứng dụng đơn trang

3.2.1 Ứng dụng đa trang (Multiple-page Application) Ứng dụng đa trang (MPA) hoạt động theo cách "truyền thống" Mỗi thao tác trao đổi dữ liệu giữa server và trình duyệt web đều phải cập nhật lại toàn bộ trang bằng dữ liệu mới Do đó, những ứng dụng này thường có kích thước lớn và việc phải cập nhập lại trang sẽ gây ảnh hưởng tới trải nghiệm người dùng Tuy nhiên, khi AJAX ra đời thì mối lo về độ lớn, độ phức tạp trong việc truyền dữ liệu giữa server và trình duyệt đã được cắt giảm Với cách giải quyết này, chúng ta chỉ cần cập nhật lại một phần ứng dụng liên quan mà không cần phải tải lại toàn bộ một trang web Tuy vậy, các ứng dụng càng lớn thì việc sử dụng AJAX càng phức tạp hơn v Ưu điểm của MPA

- Dễ dàng thao tác, sử dụng đối với những ứng dụng có menu, điều hướng ít

- Thuận tiện cho việc quản lý SEO Các ứng dụng này dễ dàng phân cấp, sắp xếp các từ khóa cho từng trang, từng mục đích, từng sản phẩm v Nhược điểm MPA

- Kích thước ứng dụng lớn

- Việc phát triển ứng dụng khá phức tạp, cần phát triển đồng bộ cả back-end và front-end

3.2.2 Ứng dụng đơn trang (Single-page Application) Ứng dụng đơn trang (SPA) là ứng dụng chỉ tải toàn bộ trang web trong lần đầu sử dụng và chỉ tải những phần cần thiết trong những lần sử dụng kế tiếp Ứng dụng đơn trang hiện nay khá phổ biến như: Facebook, Gmail, Github, Ứng dụng đơn trang cho trải nghiệm người dùng UX (User Experience) tốt hơn v Ưu điểm của SPA

- Quá trình phát triển ứng dụng đơn giản hơn, có trình tự được sắp xếp hợp lý Các lập trình viên không cần viết code để tạo nhiều trang từ phía server Việc bắt đầu học cũng đơn giản hơn khi chỉ cần quan tâm đến file liên quan đến một trang duy nhất

- SPA nhanh hơn do các tài nguyên như (HTML, CSS, Javascript, ) đã được tải từ lần đầu, chỉ có dữ liệu được thay đổi giữa server và trình duyệt

- SPA dễ dàng kiểm tra, kiểm lỗi hơn do phần lớn các trình duyệt (Google Chrome, FireFox, ) hỗ trợ tốt trong việc quan sát, debug, kiểm lỗi ngay trên trình duyệt

- SPA có khả năng làm việc với bộ nhớ cục bộ, cache tốt Nên hiệu quả hơn ứng dụng đa trang khi làm việc offline, do các tài nguyên chỉ cần tải xuống một lần v Nhược điểm của SPA

- Trong lần đầu tiên, việc tải trang sẽ lâu hơn do phải tải xuống tất cả các tài nguyên

- Thường ít bảo mật hơn khi so sánh ứng dụng đa trang do XSS (Cross Site Scripting), cho phép kẻ tấn công có thể chèn mã phá hoại vào ứng dụng web tới người dùng khác

- Rò rỉ bộ nhớ trong Javascript làm hệ thống làm việc chậm hơn

Hiện tại, đề tài luận văn của nhóm đã và đang được phát triển dựa trên SPA với những ưu và nhược điểm kể trên.

Thư viện và framework cho Javascript

Hiện nay có khá nhiều thư viện và framework Javascript hỗ trợ cho việc phát triển giao diện người dùng (front-end), trong đó phải kể đến ba công cụ lớn là ReactJS, Angular và VueJS Những công cụ này giúp nâng cao hiệu suất công việc và hỗ trợ quản lý mã nguồn tốt hơn

Angular (Hình 2) là một framework ứng dụng web mã nguồn mở được phát triển lần đầu năm 2009 bởi Google Framework này đòi hỏi lập trình viên phải biết sử dụng TypeScript (một dự án mã nguồn mở được phát triển bởi Microsoft, có thể được coi là một phiên bản nâng cao của Javascript)

Angular là một framework có cấu trúc cho các ứng dụng web động Nó cho phép bạn sử dụng HTML như là ngôn ngữ mẫu và cho phép bạn mở rộng cú pháp của HTML để diễn đạt các thành phần ứng dụng của bạn một cách rõ ràng và súc tích Hai tính năng cốt lõi: Data binding và Dependency injection của AngularJS loại bỏ phần lớn code mà bạn thường phải viết Nó xảy ra trong tất cả các trình duyệt, làm cho nó trở thành đối tác lý tưởng của bất kỳ công nghệ Server nào

VueJS (Hình 3) là một framework linh động (nguyên bản tiếng Anh: progressive – tiệm tiến) dùng để xây dựng giao diện người dùng (user interfaces) Khác với các framework nguyên khối (monolithic), Vue được thiết kế từ đầu theo hướng cho phép và khuyến khích việc phát triển ứng dụng theo từng bước Khi phát triển lớp giao diện (view layer), người dùng chỉ cần dùng thư viện lõi (core library) của Vue, vốn rất dễ học và tích hợp với các thư viện hoặc dự án có sẵn Cùng lúc đó, nếu kết hợp với những kĩ thuật hiện đại như SFC (single file components) và các thư viện hỗ trợ, Vue cũng đáp ứng được dễ dàng nhu cầu xây dựng những ứng dụng một trang (SPA - Single-Page Applications) với độ phức tạp cao hơn nhiều

ReactJS (Hình 4) là một thư viện Javascript đang nổi lên trong những năm gần đây với xu hướng Single Page Application Trong khi những framework khác cố gắng hướng đến một mô hình MVC hoàn thiện thì React nổi bật với sự đơn giản và dễ dàng phối hợp với những thư viện Javascript khác Nếu như AngularJS là một Framework cho phép nhúng code Javascript trong code html thông qua các attribute như ng-model, ng-repeat thì với react là một library cho phép nhúng code html trong code javascript nhờ vào JSX, bạn có thể dễ dàng lồng các đoạn HTML vào trong JS.Tích hợp giữa javascript và HTML vào trong JSX làm cho các component dễ hiểu hơn

React là một thư viện giao diện người dùng (User Interface - UI) phát triển tại Facebook để hỗ trợ việc xây dựng những thành phần (components) UI có tính tương tác cao, có trạng thái và có thể sử dụng lại được React được sử dụng tại Facebook trong production, và www.instagram.com được viết hoàn toàn trên React

Một trong những điểm hấp dẫn của React là thư viện này không chỉ hoạt động trên phía client, mà còn được render trên server và có thể kết nối với nhau React so sánh sự thay đổi giữa các giá trị của lần render này với lần render trước và cập nhật ít thay đổi nhất trên DOM

Hiện tại, đề tài luận văn của nhóm đã và đang được phát triển trên ReactJS.

Thư viện hỗ trợ cho ReactJS

Hình 5 Mô hình hoạt động của Flux

Flux là một kiến trúc mà Facebook sử dụng trong khi làm việc với React Flux không phải là một framework hay một thư viện (library) Nó chỉ là một kiểu kiến trúc mới hỗ trợ thêm cho React, đồng thời xây dựng ý tưởng về luồng dữ liệu một chiều (Unidirectional Data Flow)

Một kiến trúc Flux điển hình là sự kết hợp giữa thư viện Dispatcher (được viết bởi Facebook) cùng với Module NodeJS EventEmitter để tạo nên một hệ thống sự kiện (Event System) quản lý các trạng thái của ứng dụng v Cấu trúc của Flux

Actions - Làm nhiệm vụ truyền dẫn dữ liệu tới Dispatcher (được coi như các

Dispatcher - Nhận thông tin từ Actions, truyền tải dữ liệu (payload) tới các nơi đã đăng ký nhận thông tin

Stores - Là nơi lưu trữ trạng thái và các logic của hệ thống, đây chính là nơi sẽ đăng ký nhận dữ liệu với Dispatcher

Controller Views - Chính là các React Components, làm nhiệm vụ nhận các trạng thái (state) từ Stores và truyền dữ liệu (dưới dạng props) cho các thành phần con v Mô hình hoạt động của Flux (Hình 5)

- Views chính là thành phần làm nhiệm vụ hiển thị nội dung ứng dụng (có thể hiểu giống như thành phần V trong mô hình MVC)

- Khi người dùng tương tác với ứng dụng làm thay đổi trạng thái (state) của ứng dụng (VD: thêm, sửa, xóa dữ liệu cá nhân), View sẽ thông qua Action gửi các thông tin thay đổi tới Dispatcher gồm có:

+ action_name: tên của Action (VD: ADD_ITEM - thêm sản phẩm vào giỏ hàng)

+ action_payload: thông tin chi tiết nội dung muốn gửi (VD: Object chứa thông tin ID, quantity, price, của sản phẩm)

- Sau khi nhận được thông tin từ Action, Dispatcher làm nhiệm vụ truyền tải (broadcast) nội dung nhận được tới các Store đăng ký lắng nghe sự kiện thay đổi từ trước đó

- Store sau khi nhận thông tin, tiến hành cập nhật dữ liệu (có thể hiểu việc cập nhật dữ liệu ở đây giống việc cập nhật state của Component)

- Sau khi cập nhật, Store bắn sự kiện xuống View để tiến hành cập nhật hiển thị cho người dùng

- Ngoài ra trong sơ đồ trên còn có một thành phần API để lấy dữ liệu từ Remote Server

Hình 6 Mô hình hoạt động của Redux

Redux là một thư viện Javascript giúp tạo ra thành một lớp quản lý trạng thái của ứng dụng Redux được xây dựng dựa trên kiến trúc Flux do Facebook giới thiệu v Nguyên lý hoạt động của Redux

- Nguồn dữ liệu tin cậy duy nhất: State của toàn bộ ứng được chứa trong một object tree nằm trong Store duy nhất

- Trạng thái chỉ được phép đọc: Cách duy nhất để thay đổi State của ứng dụng là phát một Action (là 1 object mô tả những gì xảy ra)

- Thay đổi chỉ bằng hàm thuần túy: Để chỉ ra cách mà State được biến đổi bởi Action chúng ta dùng các pure function gọi là Reducer v Cấu trúc của Redux

- Action: Là nơi mang các thông tin dùng để gửi từ ứng dụng đến Store Các thông tin này là 1 object mô tả những gì đã xảy ra

- Reducer: Là nơi xác định State thay đổi như thế nào

- Store: Là nơi quản lý State, cho phép truy cập State qua getState(), update State qua dispatch(action), đăng ký listener qua subscribe (listener)

- View: Hiển thị dữ liệu được cung cấp bởi Store v Mô hình hoạt động của Redux (Hình 6)

Cấu trúc của Redux được giải quyết theo dòng dữ liệu một chiều Nghĩa là tất cả các dữ liệu được xử lý theo một chu trình giống nhau, điều này giúp cho chúng ta dễ dàng nắm bắt cũng như hiểu chúng dễ dàng hơn

Vòng đời của dữ liệu trong redux bao gồm 4 bước:

1 Chúng ta gọi store.dispatch(action)

2 Redux store sẽ gọi hàm reducer mà chúng ta đã gọi từ action tương ứng

3 Reducer gốc sẽ tổng hợp tất các các kết quả từ nhiều reducer khác nhau vào cây trạng thái đơn

4 Store sẽ lưu lại trạng thái cuối cùng của cây trạng thái đơn được trả về

Hiện tại, đề tài luận văn của nhóm đã và đang dùng thư viện Redux để quản lý các state của component.

Front-end

HTML (HyperText Markup Language) là một ngôn ngữ đánh dấu được thiết kế ra để tạo nên các trang web, nghĩa là các mẩu thông tin được trình bày trên World Wide Web

CSS (Cascading Style Sheets) định nghĩa về cách hiển thị của một tài liệu HTML các phong cách đã được thiết kế lên bất kì page nào của website một cách nhanh chóng, đồng bộ

SASS/SCSS là một chương trình tiền xử lý CSS (CSS preprocessor) Nó giúp việc viết CSS theo cách của một ngôn ngữ lập trình, có cấu trúc rõ ràng, rành mạch, dễ phát triển và bảo trì code hơn Ngoài ra nó có rất nhiều các thư viện hỗ trợ kèm theo giúp bạn viết code CSS một cách dễ dàng vào đơn giản hơn SASS và SCSS về bản chất vấn đề là giống nhau, chỉ khác nhau ở cách viết v Đặc điểm của SCSS/SASS

- Các câu lệnh điều khiển

Bootstrap là một thư viện miễn phí, mã nguồn mở, dựa trên HTML, CSS và Javascript, nó được phát triển để xây dựng các giao diện website tương thích với tất cả các thiết bị có kích thước màn hình khác nhau (responsive) Hiện nay Bootstrap là một trong những thư viện được sử dụng nhiều nhất để tạo ra các Responsive Website (trang web phù hợp với nhiều loại màn hình) v Đặc điểm và thế mạnh

- Tiết kiệm thời gian cho người dùng khi cần tạo ra các trang web tương thích với nhiều loại thiết bị khác nhau

- Tương thích với nhiều loại trình duyệt

3.5.4 jQuery jQuery là một thư viện Javascript nhanh, gọn và nhiều tính năng Nó làm cho mọi thứ như chuyển đổi và thao tác đối với HTML, xử lý sự kiện, hiệu ứng và ajax đơn giản hơn nhiều, với API dễ sử dụng và hoạt động với vô số trình duyệt Với sự kết hợp giữa tính linh hoạt và khả năng mở rộng, jQuery đã thay đổi các hàng triệu người dùng Javascript v Đặc điểm và thế mạnh

- Dễ sử dụng: đây là lợi thế chính khi sử dụng jQuery Nó dễ dàng hơn so với nhiều thư viện Javascript chuẩn khác bởi cú pháp đơn giản và bạn chỉ phải viết ít dòng lệnh để tạo các chức năng tương tự

- Là một thư viện lớn của Javascript: thực thi được nhiều chức năng hơn so với các thư viện Javascript khác

- Cộng đồng lớn: jQuery có một cộng đồng lập trình viên dành thời gian của họ để nghiên cứu, phát triển các plugin của jQuery Như vậy có rất nhiều plugin được viết sẵn để sử dụng giúp đẩy nhanh quá trình thực hiện các sản phẩm

- Có nhiều tài liệu và hướng dẫn chi tiết: các trang web jQuery có đầy đủ tài liệu hướng dẫn cách sử dụng thư viện này

- Hỗ trợ Ajax: jQuery cho phép bạn phát triển các Ajax một cách dễ dàng Ajax cho phép một giao diện kiểu dáng đẹp trên trang web, có các chức năng có thể thực hiện trên trang mà không cần tải lại toàn bộ trang.

Back-end

Java (Hình 7) là một trong những ngôn ngữ lập trình hướng đối tượng Nó được sử dụng trong phát triển phần mềm, trang web, game hay ứng dụng trên các thiết bị di động Java được khởi đầu bởi James Gosling và bạn đồng nghiệp ở Sun MicroSystem năm 1991 v Đặc điểm của ngôn ngữ lập trình Java

- Hướng đối tượng thuần tuý, cú pháp được vay mượn nhiều từ ngôn ngữ C/C++

- Độc lập phần cứng và hệ điều hành do chỉ cần có máy ảo JVM để chạy bytecode

- Mạnh mẽ và bảo mật

- Kiến trúc trung lập và di động

- Thông dịch (Java bytecode) và đa luồng v Ứng dụng của ngôn ngữ lập trình Java

- Ứng dụng di động Android

- Ứng dụng web: ứng dụng web đơn giản như Servlet, JSP và các framework lớn như Spring, Struts

- Các ứng dụng máy chủ dùng trong dịch vụ tài chính

ASP.NET (Hình 8) là một nền tảng dành cho phát triển web, được Microsoft phát hành và cung cấp lần đầu tiên vào năm 2002 Nền tảng được sử dụng để tạo ra các ứng dụng web-based Một số ngôn ngữ lập trình được sử dụng phổ biến trong ASP.NET là Visual Basic và C# Hai ngôn ngữ này thường được sử dụng để phát triển cho các ứng dụng web v Đặc điểm của ASP.NET

- Trạng thái code rời: tách rời các mã code và cả thiết kế để đảm bảo khả năng duy trì ứng dụng Các file trong ASP.NET được tách rời thành nhiều tệp, giúp nhà phát triển có khả năng giữ cho ASP.NET dễ dàng và đơn giản

- Quản lý trạng thái: có sẵn các phương tiện quản lý, kiểm soát trạng thái Đặc trưng này giúp cho các ứng dụng, dịch vụ web ghi nhớ trạng thái nên thường được sử dụng trong việc thiết kế tính năng giỏ hàng trong các trang thương mại điện tử

- Bộ nhớ cache: thực hiện lưu trữ bộ nhớ Cache nhằm cải thiện hiệu suất làm việc của ứng dụng Điều này hỗ trợ lưu trữ thông tin, hỗ trợ truy xuất, phản hồi trong thời gian ngắn, từ đó tăng hiệu suất làm việc của ứng dụng v Ứng dụng của ASP.NET

- Ứng dụng web và API

- Ứng dụng giao tiếp real-time giữa client và server

- Ứng dụng trong việc tạo các microservice

NodeJS (Hình 9) là một nền tảng (platform) phát triển độc lập được xây dựng ở trên Javascript Runtime của Chrome mà chúng ta có thể xây dựng được các ứng dụng mạng một cách nhanh chóng và dễ dàng mở rộng Nodejs được xây dựng và phát triển từ năm 2009, bảo trợ bởi công ty Joyent, trụ sở tại California, Hoa Kỳ

NodeJS sử dụng mô hình event-driven (hướng sự kiện), hoạt động theo cơ chế non-blocking I/O (bất đồng bộ vào/ra)

- Mô hình event-driven: là mô hình lập trình dựa trên các sự kiện từ đầu vào, hoặc các thông điệp (message) từ các ứng dụng khác Trong event-driven, các event có thể xảy ra khi người dùng tương tác sẽ được tạo ra sẵn Thay vì người dùng phải chờ chương trình, thì ngược lại là chương trình lại đang chờ tương tác của người dùng là sẽ lập tức phản ứng ngay

- Cơ chế non-blocking I/O: là cơ chế cung cấp cách thức khiến các thread không cần thiết chờ đợi việc đọc/ghi I/O Như vậy, các thread có thể tiếp tục thực hiện tác vụ khác qua đó giúp ứng dụng giảm bớt độ trễ do chờ đợi không cần thiết v Đặc điểm của NodeJS

- Phần lõi bên dưới của Nodejs được viết hầu hết bằng C++ nên cho tốc độ xử lý và hiệu năng khá cao

- NodeJS tạo ra được các ứng dụng có tốc độ xử lý nhanh, realtime thời gian thực

- NodeJS áp dụng cho các sản phẩm có lượng truy cập lớn, cần mở rộng nhanh, cần đổi mới công nghệ, hoặc tạo ra các dự án Startup nhanh nhất có thể v Ứng dụng của NodeJS

- Websocket server: các server web socket như là Online Chat, Game Server,…

- Cloud Services: các dịch vụ đám mây

- RESTful API: là những ứng dụng mà được sử dụng cho các ứng dụng khác thông qua API

- Ad Server: các server quảng cáo

- Real-time Data Application: ứng dụng dữ liệu thời gian thực

3.6.4 Kết luận và lựa chọn

Như vậy, theo những nội dung đã tìm hiểu về back-end có thể thấy rằng Java là ngôn ngữ vô cùng phổ biến, được sử dụng trong rất nhiều lĩnh vực như tài chính, bảo hiểm, giáo dục,… còn ASP.NET là một nền tảng lớn dùng để phát triển các ứng dụng web và microservice Tuy nhiên nhóm cũng nhận thấy rằng, việc sử dụng Java hay ASP.NET phải tốn rất nhiều công sức để cài đặt, thiết lập và khó khăn trong việc sử dụng Bên cạnh đó, với tính chất của đề tài và yêu cầu của hệ thống đòi hỏi sẽ có khả năng mở rộng lớn, phát triển trong tương lai nên nhóm quyết định lựa chọn NodeJS để sử dụng cho back-end của đề tài này.

Cơ sở dữ liệu

Cơ sở dữ liệu (Database) là một tập hợp các dữ liệu có tổ chức, thường được lưu trữ và truy cập điện tử từ hệ thống máy tính Khi cơ sở dữ liệu phức tạp hơn, chúng thường được phát triển bằng cách sử dụng các kỹ thuật thiết kế và mô hình hóa chính thức

Có 2 loại cơ sở dữ liệu phổ biến hiện nay:

- Cơ sở dữ liệu quan hệ (SQL - Structured Query Language)

- Cơ sở dữ liệu phi quan hệ (NoSQL - Non-Structured Query Language)

3.7.1 Hệ cơ sở dữ liệu quan hệ v Khái niệm

SQL là loại ngôn ngữ máy tính, giúp cho thao tác lưu trữ và truy xuất dữ liệu được lưu trữ trong một cơ sở dữ liệu quan hệ SQL là viết tắt của Structured Query Language (ngôn ngữ truy vấn có cấu trúc)

RDBMS (Relational Database Management System) là hệ quản trị cơ sỡ dữ liệu quan hệ RDBMS là cơ sở cho SQL, và cho tất cả các hệ thống cơ sở dữ liệu hiện đại như MS SQL Server, IBM DB2, Oracle, MySQL và Microsoft Access v Bảng

Dữ liệu trong một RDBMS được lưu trữ trong các đối tượng cơ sở dữ liệu được gọi là các bảng (table) Bảng này về cơ bản là một bộ sưu tập các mục nhập dữ liệu có liên quan và nó bao gồm nhiều cột và hàng Bảng là hình thức lưu trữ dữ liệu phổ biến và đơn giản nhất trong một cơ sở dữ liệu quan hệ v Trường

Mỗi bảng được chia thành các thực thể nhỏ gọi là các trường (field) Trường là một cột trong một bảng được thiết kế để lưu trữ thông tin cụ thể về mỗi bản ghi trong bảng v Bản ghi, hàng

Một bản ghi (record) cũng được gọi là một hàng (row) dữ liệu là từng mục riêng lẻ, tồn tại trong một bảng v Ràng buộc

Ràng buộc (constraint) là các quy tắc được thi hành trên các cột dữ liệu trên một bảng Chúng được sử dụng để giới hạn loại dữ liệu có thể insert vào một bảng Điều này đảm bảo tính chính xác và độ tin cậy của dữ liệu trong cơ sở dữ liệu Constraint có thể là cấp độ cột hoặc cấp độ bảng Các ràng buộc cấp độ cột chỉ được áp dụng cho một cột trong khi các ràng buộc mức bảng được áp dụng cho toàn bộ bảng v Toàn vẹn dữ liệu

Mỗi RDBMS có các loại toàn vẹn dữ liệu sau:

Thực thể toàn vẹn: không có hàng trùng lặp trong một bảng

Domain Integrity: thực thi kiểm tra tính hợp lệ cho một cột nhất định bằng cách hạn chế kiểu, định dạng hoặc phạm vi giá trị

Tính toàn vẹn tham chiếu: các hàng không thể bị xóa, được sử dụng bởi các bản ghi khác

Tính toàn vẹn do người dùng định nghĩa: thực thi một số quy tắc kinh doanh cụ thể không rơi vào thực thể, miền hoặc toàn vẹn tham chiếu v Các hệ quản trị cơ sở dữ liệu quan hệ phổ biến

Hiện nay, có rất nhiều RDBMS (hệ quản trị cơ sở dữ liệu quan hệ) phổ biến có sẵn để làm việc Bảng 1 đưa ra một cái nhìn ngắn gọn về một số các RDBMS phổ biến nhất

Bảng 1 Một số RDBMS phổ biến nhất

RDBMS Giới thiệu Tính năng, đặc điểm

Oracle Là một RDBMS thương mại Nó được đánh giá là hệ quản trị cơ sở dữ liệu quan hệ đối tượng được sử dụng rộng rãi nhất hiện nay Khởi đầu với phần mềm quản trị cơ sở dữ liệu từ cách đây hơn 50 năm, cho đến hiện tại, ngoài Oracle Database Server, Oracle còn cung cấp khá nhiều sản phẩm khác để phục vụ cho các doanh nghiệp

- Hoạt động trên Windows, Linux, UNIX

- Ít chiếm không gian bộ nhớ

- Hỗ trợ được cho cơ sở dữ liệu lớn, giảm thời gian CPU xử lý dữ liệu

Microsoft SQL Server được phát triển từ năm 1989, sử dụng ngôn ngữ Assembly

C, Linux, C++ Đây là một DBMS thương mại được rất nhiều người yêu

- Được viết bởi ngôn ngữ Assembly, C, C++

- Hoạt động trên hệ điều hành Windows và Linux

RDBMS Giới thiệu Tính năng, đặc điểm thích và lựa chọn sử dụng bởi những tiện ích của nó

- Cung cấp, quản lý hiệu quả khối lượng của công việc

MySQL Là một RDBMS thương mại, sử dụng mã nguồn mở Hệ quản trị cơ sở dữ liệu này rất phổ biến, và thường được các lập trình web ưa chuộng sử dụng trong quá trình phát triển các ứng dụng hay website Với ưu điểm về tốc độ cũng như tính bảo mật được đánh giá cao, MySQL thích hợp với các ứng dụng có truy cập cơ sở dữ liệu trên Internet

- Được viết bởi ngôn ngữ C/C++

- Hoạt động trên Windows, Linux

- Tốc độ xử lý dữ liệu cao

- Có thể khôi phục dữ liệu nếu cần

3.7.2 Hệ cơ sở dữ liệu phi quan hệ

Hệ cơ sở dữ liệu phi quan hệ là cơ sở dữ liệu không kết hợp mô hình table/key như các RDBMS khác Những loại cơ sở dữ liệu này đòi hỏi các kỹ thuật và quy trình xử lý dữ liệu để cung cấp các giải pháp cho các vấn đề dữ liệu lớn mà các công ty lớn gặp phải Cơ sở dữ liệu phi quan hệ (Non-relational database) phổ biến nhất được gọi là NoSQL

Hầu hết các hệ cơ sở dữ liệu phi quan hệ được kết hợp vào các trang Web lớn như Google, Yahoo!, Amazon, Facebook,… Các trang web này đưa ra một loạt các ứng dụng mới mỗi ngày với hàng triệu và hàng triệu người dùng, vì vậy họ sẽ không thể xử lý các lưu lượng truy cập lớn với các giải pháp RDBMS hiện có Do RDBMS không thể xử lý vấn đề, nên họ đã chuyển sang một loại DBMS mới có khả năng xử lý dữ liệu quy mô web theo cách phi quan hệ

NoSQL có khả năng mở rộng NoSQL sử dụng hệ thống BASE (về cơ bản là có sẵn và nhất quán) Non-RDBMS từ bỏ dạng bảng của các hàng và cột cơ sở dữ liệu quan hệ sử dụng có lợi cho các khung chuyên dụng để lưu trữ dữ liệu, có thể được truy cập bằng các API truy vấn đặc biệt Sự tồn lưu (Persistence) là một yếu tố quan trọng trong các cơ sở dữ liệu này Để cho phép thông lượng nhanh với số lượng lớn dữ liệu, tuỳ chọn tốt nhất cho hiệu suất là "bộ nhớ trong", thay vì đọc và ghi từ ổ đĩa

Cơ sở dữ liệu quan hệ sử dụng ACID, đảm bảo tính thống nhất của dữ liệu trong mọi tình huống quản lý dữ liệu nhưng rõ ràng mất nhiều thời gian hơn để xử lý vì tất cả các mối quan hệ đó và tính chất phân nhánh của nó Tuy nhiên hệ thống BASE đã nới lỏng các yêu cầu về tính nhất quán để đạt được tính sẵn sàng và phân vùng tốt hơn để có khả năng mở rộng tốt hơn v Các Non-RDBMS phổ biến hiện nay

- Document database (CouchDB, MongoDB): dữ liệu thêm vào sẽ được lưu trữ dưới dạng cấu trúc JSON tự do hoặc document, ở đó dữ liệu có thể là bất kỳ dạng nào từ số nguyên đến chuỗi dữ liệu đến văn bản dạng tự do

Websocket và SocketIo

Websocket là giao thức chuẩn cho trao đổi dữ liệu hai chiều giữa client và server Giao thức WebSocket không chạy trên HTTP, thay vào đó nó thực hiện trên giao thức TCP Người ta thường dùng Websocket thay vì HTTP cho những trường hợp yêu cầu real time (thời gian thực) Ví dụ bạn muốn hiển thị biểu đồ, chỉ số chứng khoán, web chat,… thì không thể gửi lệnh AJAX liên tiếp tới server để lấy dữ liệu mới rồi cập nhật lên màn hình, như thế sẽ tốn nhiều tài nguyên, traffic

Socket.io là một module của NodeJs Được xây dựng nhằm mục đích tạo ra real time NodeJS application Socket.io cung cấp cho lập trình viên các đặc trưng như event, room và tự động phục hồi lại kết nối Khi include Socket.io module vào trong ứng dụng thì nó sẽ cung cấp hai object đó là: socket server quản lý functionality phía server và socket client điều khiển functionality phía client Khi client muốn kết nối tới Socket.io server, nó sẽ gửi cho server một “handshake HTTP request” Server sẽ phân tích request đó với những thông tin cần thiết trong suốt quá trình kết nối Nó sẽ tìm cấu hình của middleware mà đã được đăng ký với server và thực thi chúng trước khi đưa ra sự kiện kết nối Khi kết nối thành công thì connection event listener được thực thi, tạo ra một instance mới của socket có thể coi như định danh của client mà mỗi một client kết nối tới sẽ có một định danh.

Giới thiệu về hệ thống đã phát triển

Các module của hệ thống đã phát triển

Hệ thống quản lý trong luận văn tốt nghiệp này đang được xây dựng từ hệ thống đã được phát triển trước đó theo nhiều module Cụ thể các module đó như sau

4.1.1 Quản lý các hoạt động khoa học, công nghệ và dự án của cán bộ v Quản lý lý lịch khoa học: bao gồm các nghiệp vụ liên quan đến lý lịch khoa học của một cán bộ:

- Thống kê thông tin cán bộ theo các mẫu

- Hỗ trợ cho cán bộ tải về các mẫu lý lịch khoa học của cá nhân

- Phân loại, tổng hợp các mẫu lý lịch khoa học cá nhân theo từng loại mẫu phục vụ công tác quản lý của người quản lý thuộc phòng Khoa học Công nghệ và Dự án v Quản lý đăng ký thuyết minh đề tài: bao gồm các nghiệp vụ liên quan đến đăng ký thuyết minh đề tài của một cán bộ:

- Đăng ký thông tin về thuyết minh đề tài

- Hiển thị danh sách các thuyết minh đề tài đã đăng ký

- Hiển thị thông tin các cấp đề tài về thời gian cho phép đăng ký

- Chỉnh sửa các thông tin đăng ký trong điều kiện cho phép

- Hỗ trợ tải lên tài liệu về dự toán và nội dung thuyết minh đề tài

- Phân chia cán bộ phản biện cho thuyết minh đề tài v Quản lý phản biện đề tài: bao gồm các nghiệp vụ liên quan đến phản biện đề tài của một cán bộ:

- Hiển thị danh sách các đề tài cán bộ được phân công phản biện

- Hỗ trợ tải xuống tài liệu về dự toán và nội dung thuyết minh đề tài được phân công phản biện

- Thực hiện nhận xét, đánh giá, chấm điểm cho đề tài được phân công phản biện

- Người quản lý thuộc phòng Khoa học Công nghệ và Dự án tổng hợp và quản lý các phản biện đề tài v Quản lý lĩnh vực nghiên cứu: bao gồm các nghiệp vụ liên quan đến lĩnh vực nghiên cứu của một cán bộ:

- Hiển thị thông tin về lĩnh vực nghiên cứu của cán bộ

- Cán bộ chỉnh sửa, bổ sung lĩnh vực nghiên cứu của cá nhân

- Thống kê nội dung lĩnh vực nghiên cứu của cán bộ vào lý lịch khoa học của cán bộ v Quản lý hướng nghiên cứu: bao gồm các nghiệp vụ liên quan đến hướng nghiên cứu của một cán bộ:

- Hiển thị thông tin về hướng nghiên cứu của cán bộ

- Cán bộ chỉnh sửa, bổ sung hướng nghiên cứu của cá nhân

- Thống kê nội dung hướng nghiên cứu của cán bộ vào lý lịch khoa học của cán bộ v Quản lý đề tài, dự án nghiên cứu khoa học: bao gồm các nghiệp vụ quản lý đề tài, dự án nghiên cứu khoa học của một cán bộ:

- Hiển thị đề tài, dự án nghiên cứu của cán bộ

- Hiển thị đề tài, dự án nghiên cứu thuộc đơn vị của trưởng khoa

- Cán bộ chỉnh sửa, bổ sung cho đề tài, dự án nghiên cứu của cá nhân

- Thống kê nội dung đề tài, dự án nghiên cứu vào lý lịch khoa học của cán bộ v Quản lý sách, tài liệu tham khảo: bao gồm các nghiệp vụ về sách, tài liệu tham khảo được viết bởi cán bộ:

- Hiển thị danh sách sách, tài liệu tham khảo của cán bộ

- Cán bộ chỉnh sửa, bổ sung nội dung thông tin liên quan sách, tài liệu tham khảo của cá nhân

- Thống kê sách, tài liệu tham khảo của cán bộ vào lý lịch khoa học của cá nhân v Quản lý bài báo, tạp chí/hội nghị khoa học: bao gồm các nghiệp vụ liên quan đến bài báo, tạp chí và tham gia hội nghị khoa học của một cán bộ:

- Hiển thị danh sách bài báo, tạp chí và hội nghị khoa học của cán bộ

- Cán bộ chỉnh sửa, bổ sung nội dung liên quan bài báo, tạp chí hay hội nghị khoa học mà cá nhân tham gia

- Thống kê các bài báo, tạp chí hay hội nghị khoa học mà cán bộ tham gia vào lý lịch khoa học cá nhân v Quản lý giải thưởng khoa học công nghệ: bao gồm các nghiệp vụ liên quan đến giải thưởng khoa học công nghệ của cán bộ:

- Hiển thị danh sách thông tin các giải thưởng của cán bộ

- Chỉnh sửa, bổ sung giải thưởng khoa học công nghệ mà cán bộ đạt được

- Thống kê giải thưởng khoa học công nghệ của cán bộ vào lý lịch khoa học cá nhân v Quản lý sở hữu trí tuệ: bao gồm các nghiệp vụ liên quan đến bằng sở hữu trí tuệ của một cán bộ:

- Hiển thị danh sách bằng sở hữu trí tuệ mà cán bộ đạt được

- Cán bộ chỉnh sửa, bổ sung bằng sở hữu trí tuệ của cá nhân

- Thống kê bằng sở hữu trí tuệ của cán bộ vào lý lịch khoa học của cá nhân v Quản lý chuyển giao công nghệ và lao động sản xuất: bao gồm các nghiệp vụ liên quan đến thành tựu và ứng dụng thực tiễn của một cán bộ:

- Hiển thị danh sách công tác chuyển giao công nghệ và lao động sản xuất của cán bộ

- Cán bộ chỉnh sửa nội dung công tác chuyển giao công nghệ và lao động sản xuất của cá nhân

- Thống kê nội dung chuyển giao công nghệ và lao động sản xuất vào lý lịch khoa học của cán bộ v Quản lý tham gia chương trình: bao gồm các nghiệp vụ liên quan đến nội dung tham gia chương trình của một cán bộ:

- Hiển thị danh sách nội dung tham gia chương trình của cán bộ

- Cán bộ chỉnh sửa, bổ sung nội dung tham gia chương trình của cá nhân

- Tổng hợp nội dung tham gia chương trình của cán bộ vào lý lịch khoa học phù hợp của cá nhân v Quản lý tham gia hiệp hội, tạp chí, hội nghị: bao gồm các nghiệp vụ liên quan đến nội dung tham gia hiệp hội, tạp chí, hội nghị của một cán bộ:

- Hiển thị danh sách các hiệp hội, tạp chí, hội nghị tham gia của một cán bộ

- Cán bộ chỉnh sửa, bổ sung nội dung hiệp hội, tạp chí và hội nghị cá nhân tham gia

- Tổng hợp nội dung hiệp hội, tạp chí, hội nghị cán bộ tham gia vào lý lịch khoa học phù hợp của cán bộ v Quản lý tham gia trường viện: bao gồm các nghiệp vụ liên quan đến nội dung tham gia trường, viện của một cán bộ:

- Hiển thị danh sách các trường, viện cán bộ tham gia

- Cán bộ chỉnh sửa, bổ sung tham gia trường viện của cá nhân

Kiến trúc hệ thống đã phát triển

Hệ thống được xây dựng theo mô hình MVC kết hợp với REST API (RESTful) và Controller Các API trong hệ thống phòng Khoa học Công nghệ và Dự án được thiết kế theo các nguyên tắc chung, nhất quán giữa các module v Sử dụng các phương thức HTTP (GET, POST, PUT, DELETE) để truy cập và xử lý dữ liệu (mô phỏng trên bảng Thuyết minh đề tài)

- GET /api/khcn/thuyet-minh-de-tai/all: phương thức để lấy dữ liệu

- POST /api/khcn/thuyet-minh-de-tai: phương thức để thêm dữ liệu

- PUT /api/khcn/thuyet-minh-de-tai: phương thức để sửa đổi dữ liệu

- DELETE /api/khcn/thuyet-minh-de-tai: phương thức để xoá dữ liệu v API định dạng theo cấu trúc khác nhau, để phân loại về công dụng, quyền của API khác nhau (mô phỏng trên bảng tham gia trường viện)

- ‘/api/khcn/tham-gia-truong-vien/all’: API lấy tất cả dữ liệu của một bảng

- ‘/api/khcn/tham-gia-truong-vien/user’: API lấy tất cả dữ liệu của một cán bộ

- ‘/api/khcn/tham-gia-truong-vien/page/:pageNumber/:pageSize’: API lấy dữ liệu được phân theo các trang v Dữ liệu được server trả về theo định dạng JSON Ở tầng View sử dụng thư viện ReactJS và dùng thư viện quản lý state cho các component là Redux, Controller và Model sử dụng NodeJS với framework ExpressJS Kết hợp node-oracledb để kết nối với hệ cơ sở dữ liệu Oracle Database

Hình 15 Kiến trúc hệ thống đã phát triển

Use-case hệ thống đã phát triển

Phân tích hệ thống cũ với phạm vi giới hạn là các tính năng sẽ mở rộng, nhóm em đã được xây dựng sơ đồ use-case bên dưới bao gồm chức năng nền tảng như xác thực người dùng và quản lý các nghiệp vụ trong phòng Khoa học Công nghệ như sau

Hình 16 Sơ đồ use-case các tính năng trong trang cá nhân của người sử dụng và người quản lý

Hình 17 Sơ đồ use-case các tính năng của phòng Khoa học Công nghệ và Dự án đối với người sử dụng

Hình 18 Sơ đồ use-case các tính năng của phòng Khoa học Công nghệ và Dự án đối với người quản lý

Hình 19 Sơ đồ use-case các tính năng đồng bộ dữ liệu giữa các actor

Cơ sở dữ liệu hệ thống đã phát triển

4.4.1 Lược đồ ERD hệ thống đã phát triển

Hình 20 Lược đồ ERD hệ thống đã phát triển

4.4.2 Lược đồ cơ sở dữ liệu hệ thống đã phát triển

Hình 21 Lược đồ cơ sở dữ liệu hệ thống đã phát triển

Hình 22 Lược đồ cơ sở dữ liệu hệ thống đã phát triển

Phân tích yêu cầu mới đối với hệ thống quản lý phòng Khoa học công nghệ & Dự án

Yêu cầu chức năng

5.1.1 Chức năng thuộc lý lịch khoa học cá nhân

Nhằm hỗ trợ đáp ứng các nhu cầu nâng cao của cá nhân cũng như đáp ứng kịp thời đối với các nghiệp vụ thay đổi, phòng Khoa học công nghệ và Dự án yêu cầu thêm một số chức năng sau dùng cho đối tượng người dùng bao gồm:

• Chức năng tìm kiếm nâng cao dữ liệu với một số điều kiện nhất định

• Chức năng xem thêm các dữ liệu mà cá nhân có tham gia ở một số module như: đề tài nghiên cứu khoa học, công trình khoa học, sở hữu trí tuệ, chuyển giao công nghệ, lao động sản xuất

• Thay đổi các chức năng xem, thêm, xóa, sửa theo nghiệp vụ mới của phòng Khoa học công nghệ và Dự án

5.1.2 Chức năng thuộc quản lý khoa học cá nhân

Nhằm hỗ trợ đáp ứng các nhu cầu nâng cao của người quản lý cũng như đáp ứng kịp thời đối với các nghiệp vụ thay đổi, phòng Khoa học công nghệ và Dự án yêu cầu thêm một số chức năng sau dùng cho đối tượng người quản lý bao gồm: v Chức năng quản lý khoa học công nghệ

• Quản lý lĩnh vực nghiên cứu

• Quản lý hướng nghiên cứu

• Quản lý giới thiệu chuyên gia

• Quản lý kinh nghiệm quản lý đánh giá

• Quản lý tham gia chương trình

• Quản lý tham gia hiệp hội, tạp chí, hội nghị

• Quản lý tham gia trường viện v Chức năng đồng bộ dữ liệu đề tài nghiên cứu khoa học

• Đồng bộ dữ liệu Quản lý đề tài

• Đồng bộ dữ liệu Đề tài lý lịch khoa học

• Đồng bộ tỷ lệ chia giờ giữa Quản lý dữ liệu đề tài và Đề tài lý lịch khoa học v Chức năng trực quan thông tin thống kê

• Thống kê bài báo, sở hữu trí tuệ, kinh phí đề tài nghiên cứu khoa học qua các năm

• Dashboard thể hiện số nhân sự Phòng Khoa học công nghệ & Dự án, biểu đồ thống kê số lượng bài báo khoa học và sở hữu trí tuệ qua các năm, biểu đồ thống kê số lượng loại Công trình khoa học năm hiện tại v Chức năng quản lý khoa học công nghệ Khoa

• Quản lý lĩnh vực nghiên cứu Khoa

• Quản lý hướng nghiên cứu Khoa

• Quản lý giới thiệu chuyên gia Khoa

• Quản lý kinh nghiệm quản lý đánh giá Khoa

• Quản lý hoạt động khác

• Quản lý dữ liệu sách, giải thưởng, sản phẩm đào tạo v Chức năng trực quan thông tin thống kê Khoa

• Thống kê bài báo, sở hữu trí tuệ, kinh phí đề tài nghiên cứu khoa học của Khoa qua các năm

• Dashboard thể hiện số nhân sự Khoa, biểu đồ thống kê số lượng bài báo khoa học và sở hữu trí tuệ qua các năm, biểu đồ thống kê số lượng loại Công trình khoa học của Khoa năm hiện tại v Chức năng quản lý khoa học công nghệ thuộc Phòng thí nghiệm

Bên cạnh việc quản lý dữ liệu công nghệ của cá nhân, phòng Khoa học công nghệ

& Dự án cần phải quản lý thêm danh sách dữ liệu khoa học công nghệ thuộc phòng thí nghiệm để phục vụ cho các nghiệp vụ khác Với việc thay đổi nghiệp vụ, nhóm sẽ tập trung thực hiện một số yêu cầu chức năng mới phát sinh như sau:

• Quản lý giải thưởng mà cá nhân thuộc phòng thí nghiệm đạt được

• Quản lý đề tài nghiên cứu khoa học mà cá nhân thuộc phòng thí nghiệm đạt được

• Quản lý bài báo thuộc tạp chí, hội nghị mà cá nhân thuộc phòng thí nghiệm đạt được

• Quản lý hợp tác mà cá nhân thuộc phòng thí nghiệm đạt được

• Quản lý thông tin tài sản trí tuệ mà cá nhân thuộc phòng thí nghiệm đạt được

• Quản lý hợp đồng cá nhân thuộc phòng thí nghiệm đạt được

• Quản lý sản phẩm ứng dụng, chuyển giao mà cá nhân thuộc phòng thí nghiệm đạt được

• Quản lý thành tựu, sản phẩm đặc trưng mà cá nhân thuộc phòng thí nghiệm đạt được

• Thêm dữ liệu mà người dùng khai trong lý lịch khoa học vào danh sách dữ liệu tương ứng của phòng thí nghiệm v Chức năng quản lý khoa học công nghệ thuộc Trung tâm

Bên cạnh việc quản lý dữ liệu công nghệ của cá nhân, Phòng khoa học công nghệ

& Dự án cần phải quản lý thêm danh sách dữ liệu khoa học công nghệ thuộc trung tâm để phục vụ cho các nghiệp vụ khác Với việc thay đổi nghiệp vụ, nhóm sẽ tập trung thực hiện một số yêu cầu chức năng mới phát sinh như sau:

• Quản lý giải thưởng mà cá nhân thuộc trung tâm đạt được

• Quản lý đề tài nghiên cứu khoa học mà cá nhân thuộc trung tâm đạt được

• Quản lý bài báo thuộc tạp chí, hội nghị mà cá nhân thuộc trung tâm đạt được

• Quản lý hợp tác mà cá nhân thuộc trung tâm đạt được

• Quản lý thông tin tài sản trí tuệ mà cá nhân thuộc trung tâm đạt được

• Quản lý hợp đồng cá nhân thuộc trung tâm đạt được

• Quản lý sản phẩm ứng dụng, chuyển giao mà cá nhân thuộc trung tâm đạt được

• Quản lý thành tựu, sản phẩm đặc trưng mà cá nhân thuộc trung tâm đạt được

• Thêm dữ liệu mà người dùng khai trong lý lịch khoa học vào danh sách dữ liệu tương ứng của trung tâm v Chức năng gửi email tự động thông báo tình trạng bài báo khoa học

Việc quản lý tính đầy đủ dữ liệu của một bài báo khoa học được người dùng nhập vào hệ thống là cần thiết để người khai, các tác giả tham gia có thể biết được tình trạng hiện tài của bài báo là đã đủ hay không đủ thông tin hay chưa Bên cạnh đó, việc theo dõi các tác giả mới được thêm vào bài báo phải được thông báo đến các tác giả khác Như vậy chức năng của hệ thống gửi email tự động thông báo tình trạng bài báo khoa học như sau:

• Hệ thống tự động gửi email thông báo tác giả mới được cập nhật vào bài báo

• Hệ thống tự động gửi email thông báo với tất cả các tác giả bài báo được tạo mới và tình trạng hiện tại của bài báo (gồm: đầy đủ hay không đầy đủ)

• Hệ thống tự động gửi email thông báo bài báo không đủ thông tin ở ngày thứ 23 sau khi bài báo được đạo mà bài báo đó không đủ thông tin

• Hệ thống tự động gửi email thông báo xóa bài báo ở ngày thứ 30 kể từ ngày tạo bài báo mà bài báo đó không đủ thông tin

• Người quản lý có thể chỉnh sửa được nội dung email thông báo bài báo được mới được tạo cho người khai

• Người quản lý có thể chỉnh sửa được nội dung email thông báo bài báo được mới được tạo cho các tác giả tham gia

• Người quản lý có thể chỉnh sửa được nội dung email thông báo bài báo đủ thông tin cho các tác giả tham gia

• Người quản lý có thể chỉnh sửa được nội dung email thông báo bài báo không đủ thông tin tác giả tham gia

• Người quản lý có thể chỉnh sửa được nội dung email thông báo xóa bài báo không đủ thông tin.

Yêu cầu phi chức năng

• Giao diện dễ sử dụng, người dùng chỉ cần bấm 4 lần là sẽ hoàn thành tác vụ nào đó

• Nội dung email tự động dễ đọc vào trọng tâm, dưới 300 từ

• Tốc độ tải trang quản lý công trình khoa học tối đa 6 giây

• Tốc độ tìm kiếm nâng cao dữ liệu ở trang cá nhân và quản lý không quá 5 giây

• Thanh tìm kiếm nâng cao nằm ở vị trí dễ thấy, truy cập bằng 1 cú bấm chuột

• Để tải về dữ liệu của một chức năng không quá 3 cú bấm chuột.

Thiết kế hệ thống mới và hệ thống mở rộng

Use-case đối với actor - người sử dụng

Hình 23 Sơ đồ use-case với actor - người sử dụng v Danh sách chức năng của người sử dụng

Bảng 3 Danh sách chức năng của người sử dụng

2 Đề tài, dự án nghiên cứu khoa học

3 Sách, tài liệu tham khảo

4 Bài báo, tạp chí, hội nghị khoa học

5 Giải thưởng nghiên cứu khoa học

7 Chuyển giao công nghệ và lao động sản xuất

9 Tham gia hiệp hội khoa học, ban biên tập tạp chí, ban tổ chức hội nghị khoa học công nghệ

11 Tham gia trường Đại Học - Viện - Trung tâm nghiên cứu

12 Kinh nghiệm quản lý đánh giá khoa học công nghệ

14 Các hoạt động khoa học và công nghệ khác

15 Khởi nghiệp đổi mới sáng tạo sản xuất

16 Phản biện Murata v Đặc tả use-case chung cho 15 chức năng

6.1.1 Xem, thêm, sửa, xóa, phân trang dữ liệu

Bảng 4 Đặc tả use-case xem, thêm, sửa, xóa, phân trang dữ liệu

Người dùng Người sử dụng bao gồm: thầy, cô, sinh viên, học viên

Mô tả Người sử dụng đăng nhập và thực hiện việc xem, thêm, sửa, xóa, chọn trang chứa dữ liệu trong mục khoa học công nghệ và dự án

Người sử dụng đã có tài khoản

Người sử dụng thấy được danh sách các dữ liệu tương ứng với chức năng mà người sử dụng chọn

Dữ liệu lấy từ bảng cán bộ/thầy cô, học viên cao học/nghiên cứu sinh và sinh viên trong trường và các bảng tương ứng với các chức năng đã liệt kê ở bảng trên

Bước 1: Người sử dụng đăng nhập thành công.

Bước 2: Người sử dụng chọn mục Cập nhật thông tin lý lịch khoa học. Bước 3: Tùy vào phân quyền của người sử dụng sẽ thấy được các mục chức năng.

Bước 4: Người dùng bấm vào chức năng tương ứng để vô trang chi tiết dữ liệu.

Bước 5: Người dùng bấm chọn chức năng:

• Thêm: Bấm ‘+’ ở góc phải bên dưới trang hiển thị để tạo dữ liệu mới

• Sửa: Bấm vào nút ‘Chỉnh sửa’ ở các dòng dữ liệu tương ứng để vào trang chi tiết chỉnh sửa

• Xóa: Bấm vào nút ‘Xóa’ ở các dòng dữ liệu để xóa dòng dữ liệu tương ứng

• Phân trang: Người dùng chọn số trang mà mình cần sau đó bấm vào để hệ thống chuyển đến trang tương ứng

Bước 7: Người dùng nhập các thông tin chi tiết của dữ liệu và bấm lưu đối với chức năng thêm mới vào sửa thông tin

6.1.2 Tìm kiếm theo bộ lọc có sẵn

Bảng 5 Đặc tả use-case tìm kiếm theo bộ lọc có sẵn Người dùng Người sử dụng bao gồm: thầy, cô, sinh viên, học viên

Mô tả Người sử dụng đăng nhập và thực hiện việc lọc dữ liệu tương ứng với các chức năng theo các điều kiện có sẵn

Người sử dụng đã có tài khoản

Người sử dụng thấy được danh sách các dữ liệu tương ứng với chức năng mà người sử dụng chọn

Dữ liệu lấy từ bảng cán bộ/thầy cô, học viên cao học/nghiên cứu sinh và sinh viên trong trường và các bảng tương ứng với các chức năng đã liệt kê ở bảng trên

Bước 1: Người sử dụng đăng nhập thành công.

Bước 2: Người sử dụng chọn mục Cập nhật thông tin lý lịch khoa học. Bước 3: Tùy vào phân quyền của người sử dụng sẽ thấy được các mục chức năng.

Bước 4: Người dùng bấm vào chức năng tương ứng để vô trang chi tiết dữ liệu.

Bước 5: Người dùng bấm chọn chức năng bộ lọc có sẵn hình kính lúp trên thanh tìm kiếm.

Bước 6: Người dùng nhập/chọn các điều kiện có sẵn để hệ thống trả về dữ liệu tương ứng v Đặc tả use-case chung cho 4 chức năng số: 2, 4, 6, 7 được liệt kê trên bảng

6.1.3 Xem thêm dữ liệu mà người sử dụng tham gia

Bảng 6 Đặc tả use-case xem thêm dữ liệu mà người sử dụng tham gia

Người dùng Người sử dụng bao gồm: thầy, cô, sinh viên, học viên

Mô tả Người sử dụng đăng nhập và thấy được dữ liệu mà mình có tham gia

Người sử dụng đã có tài khoản

Người sử dụng thấy được danh sách các dữ liệu tương ứng gồm dữ liệu của mình tạo và dữ liệu mà mình có tham gia

Dữ liệu lấy từ bảng cán bộ/thầy cô, học viên cao học/nghiên cứu sinh và sinh viên trong trường và các bảng tương ứng với các chức năng đã liệt kê ở bảng trên

Bước 1: Người sử dụng đăng nhập thành công.

Bước 2: Người sử dụng chọn mục Cập nhật thông tin lý lịch khoa học. Bước 3: Tùy vào phân quyền của người sử dụng sẽ thấy được các mục chức năng.

Bước 4: Người dùng bấm vào chức năng tương ứng để vô trang chi tiết dữ liệu.

Bước 5: Người dùng thấy các dữ liệu mà mình có tham gia sẽ chỉ có một nút để người dùng xem nhưng không chỉnh sửa được

6.1.4 Tải xuống lý lịch khoa học theo mẫu yêu cầu

Bảng 7 Đặc tả use-case tải xuống lý lịch khoa học theo mẫu yêu cầu

Người dùng Người sử dụng bao gồm: thầy, cô, sinh viên, học viên

Mô tả Người sử dụng đăng nhập và tải được dữ liệu theo mẫu yêu cầu

Người sử dụng đã có tài khoản

Người sử dụng tải và tải được dữ liệu theo mẫu yêu cầu

Dữ liệu lấy từ bảng cán bộ/thầy cô, học viên cao học/nghiên cứu sinh và sinh viên trong trường và các bảng tương ứng với các chức năng đã liệt kê ở bảng trên

Bước 1: Người sử dụng đăng nhập thành công.

Bước 2: Người sử dụng chọn chức năng In lý lịch khoa học.

Bước 3: Tùy vào phân quyền của người sử dụng sẽ thấy được các mẫu in như: mẫu của Trường, mẫu Đại học Quốc gia (ĐHQG), tỉnh/thành phố, chất lượng cao,…

Bước 4: Người dùng bấm vào mẫu cần tải, hộp thoại tải xuống hiện ra và người sử dụng bấm lưu để lưu lại dữ liệu tải

Bảng 8 Đặc tả use-case phản biện Murata Người dùng Người sử dụng bao gồm: thầy, cô

Mô tả Người sử dụng đăng nhập và điền phiếu phản biện

Tiền điều kiện Người sử dụng đã có tài khoản

Hậu điều kiện Người sử dụng thấy được dữ liệu phiếu phản biện của mình tạo

Dữ liệu sử dụng Dữ liệu lấy từ bảng phản biện Murata

Bước 1: Người sử dụng đăng nhập thành công.

Bước 2: Người sử dụng chọn chức năng Phản biện đề tài. Bước 3: Người sử dụng chọn tab Đề tài hiện tại

Bước 4: Người sử dụng chọn đề tài Murata cần chấm phản biện

Bước 5: Người sử dụng điền dữ liệu vào phiếu phản biện.

Use-case đối với actor - người quản lý khoa học công nghệ cá nhân

Hình 24 Sơ đồ use-case với actor - người quản lý khoa học công nghệ cá nhân v Danh sách chức năng của người quản lý khoa học công nghệ cá nhân

Bảng 9 Danh sách chức năng của người quản lý khoa học công nghệ cá nhân

1 Quản lý lĩnh vực nghiên cứu

2 Quản lý hướng nghiên cứu

3 Quản lý đề tài, dự án, nghiên cứu khoa học

4 Quản lý sách, tài liệu tham khảo

5 Quản lý sở hữu trí tuệ

6 Quản lý chuyển giao công nghệ và lao động sản xuất

7 Quản lý bài báo, tạp chí, hội nghị khoa học

8 Quản lý tham gia Trường Đại học - Viện - Trung tâm nghiên cứu

9 Quản lý giải thưởng khoa học công nghệ

10 Quản lý tham gia chương trình

11 Quản lý khởi nghiệp đổi mới sáng tạo sản xuất

12 Quản lý các hoạt động khoa học và công nghệ khác

13 Quản lý tham gia hiệp hội khoa học, ban biên tập tạp chí, ban tổ chức hội nghị khoa học công nghệ

14 Quản lý đăng ký thuyết minh đề tài

15 Quản lý phản biện thuyết minh đề tài v Đặc tả use-case chung cho 15 chức năng

6.2.1 Xem, thêm, sửa, xóa, phân trang dữ liệu

Bảng 10 Đặc tả use-case xem, thêm, sửa, xóa, phân trang dữ liệu

Người dùng Người quản lý bao gồm: thầy, cô, chuyên viên quản lý, trưởng phòng

Mô tả Người quản lý đăng nhập và thực hiện việc xem, thêm, sửa, xóa, chọn trang chứa dữ liệu trong mục Quản lý khoa học công nghệ và dự án

Người quản lý đã có tài khoản

Người quản lý thấy được danh sách các dữ liệu tương ứng với chức năng mà người quản lý chọn

Dữ liệu lấy từ bảng cán bộ/thầy cô, học viên cao học/nghiên cứu sinh và sinh viên trong trường và các bảng tương ứng với các chức năng đã liệt kê ở bảng trên

Bước 1: Người quản lý đăng nhập thành công.

Bước 2: Người quản lý chọn mục Quản lý khoa học công nghệ.

Bước 3: Tùy vào phân quyền của người quản lý sẽ thấy được các mục chức năng.

Bước 4: Người quản lý bấm vào chức năng tương ứng để vô trang chi tiết dữ liệu.

Bước 5: Người quản lý bấm chọn chức năng:

• Thêm: Bấm ‘+’ ở góc phải bên dưới trang hiển thị để tạo dữ liệu mới

• Sửa: Bấm vào nút ‘Chỉnh sửa’ ở các dòng dữ liệu tương ứng để vào trang chi tiết chỉnh sửa

• Xóa: Bấm vào nút ‘Xóa’ ở các dòng dữ liệu để xóa dòng dữ liệu tương ứng

• Phân trang: Người quản lý chọn số trang mà mình cần sau đó bấm vào để hệ thống chuyển đến trang tương ứng

Bước 7: Người quản lý nhập các thông tin chi tiết của dữ liệu và bấm lưu đối với chức năng thêm mới vào sửa thông tin

6.2.2 Tìm kiếm theo bộ lọc có sẵn

Bảng 11 Đặc tả use-case tìm kiếm theo bộ lọc có sẵn Người dùng Người quản lý bao gồm: thầy, cô, chuyên viên quản lý, trưởng phòng

Mô tả Người quản lý đăng nhập và thực hiện việc lọc dữ liệu tương ứng với các chức năng theo các điều kiện có sẵn

Người quản lý đã có tài khoản

Người quản lý thấy được danh sách các dữ liệu tương ứng với chức năng mà người sử dụng chọn

Dữ liệu lấy từ bảng cán bộ/thầy cô, học viên cao học/nghiên cứu sinh và sinh viên trong trường và các bảng tương ứng với các chức năng đã liệt kê ở bảng trên

Bước 1: Người quản lý đăng nhập thành công.

Bước 2: Người quản lý chọn mục Quản lý lý lịch khoa học.

Bước 3: Tùy vào phân quyền của người sử dụng sẽ thấy được các mục chức năng.

Bước 4: Người quản lý bấm vào chức năng tương ứng để vô trang chi tiết dữ liệu.

Bước 5: Người quản lý bấm chọn chức năng bộ lọc có sẵn hình kính lúp trên thanh tìm kiếm.

Bước 6: Người quản lý nhập/chọn các điều kiện có sẵn để hệ thống trả về dữ liệu tương ứng v Đặc tả use-case cho chức năng riêng

6.2.3 Tải xuống dữ liệu đề tài nghiên cứu khoa học

Bảng 12 Đặc tả use-case tải xuống dữ liệu đề tài nghiên cứu khoa học

Người dùng Người quản lý bao gồm: thầy, cô, chuyên viên quản lý, trưởng phòng

Mô tả Người quản lý đăng nhập và thực hiện tải dữ liệu đề tài nghiên cứu khoa học

Người quản lý đã có tài khoản

Người quản lý tài được danh sách đề tài hiển thị trên màn hình

Dữ liệu lấy từ bảng đề tài khoa học công nghệ

Bước 1: Người quản lý đăng nhập thành công.

Bước 2: Người quản lý chọn mục Quản lý khoa học công nghệ và vào mục Danh sách đề tài.

Bước 3: Tùy vào phân quyền của người sử dụng sẽ thấy được toàn bộ dữ liệu của người dùng và có thể cập nhật được dữ liệu (thêm, sửa, xóa) và tải dữ liệu.

Bước 4: Người quản lý bấm ‘Tải xuống’ để tiến hành tải dữ liệu được hiển thị trên màn hình

6.2.4 Đồng bộ danh sách đề tài

Bảng 13 Đặc tả use-case đồng bộ danh sách đề tài Người dùng Người quản lý bao gồm: thầy, cô, chuyên viên quản lý, trưởng phòng

Mô tả Người quản lý đăng nhập và thực hiện việc đồng bộ dữ liệu bên ngoài và hệ thống

Người quản lý đã có tài khoản

Người quản lý tải được danh sách đề tài chưa thể đồng bộ hiển thị trên màn hình

Dữ liệu lấy từ bảng đề tài lý lịch khoa học và quản lý dữ liệu đề tài nghiên cứu khoa học và file excel tải lên

Bước 1: Người quản lý đăng nhập thành công.

Bước 2: Người quản lý chọn mục Quản lý khoa học công nghệ.

Bước 3: Người quản lý chọn mục Đồng bộ đề tài.

Bước 4: Người quản lý tải lên các file excel tương ứng với danh sách đề tài thuộc Quản lý dữ liệu và Đề tài Lý lịch khoa học ở phần ‘Upload file excel những đề tài từ năm 2020’

6.2.5 Đồng bộ tỷ lệ chia giờ đề tài

Người dùng Người quản lý bao gồm: thầy, cô, chuyên viên quản lý, trưởng phòng

Mô tả Người quản lý đăng nhập và thực hiện việc đồng bộ dữ liệu giữa

Quản lý dữ liệu đề tài và Đề tài Lý lịch khoa học trong hệ thống

Người quản lý đã có tài khoản

Người quản lý thấy được thông báo trạng thái đồng bộ hiển thị trên màn hình

Dữ liệu lấy từ bảng đề tài lý lịch khoa học và quản lý dữ liệu đề tài nghiên cứu khoa học

Bước 1: Người quản lý đăng nhập thành công.

Bước 2: Người quản lý chọn mục Quản lý khoa học công nghệ.Bước 3: Người quản lý chọn mục Đồng bộ đề tài.

Bước 4: Người quản lý nhấn nút đồng bộ ở phần ‘Đồng bộ tỷ lệ chia giờ năm 2022’

6.2.6 Thay đổi thông tin người tạo

Bảng 14 Đặc tả use-case thay đổi thông tin người tạo Người dùng Người quản lý bao gồm: thầy, cô, chuyên viên quản lý, trưởng phòng

Mô tả Người quản lý đăng nhập và thực hiện việc thay đổi thông tin người tạo đề tài

Người quản lý đã có tài khoản

Người quản lý thấy được đề tài đã thay đổi người tạo

Dữ liệu lấy từ bảng dữ liệu tương ứng

Bước 1: Người quản lý đăng nhập thành công.

Bước 2: Người quản lý chọn mục Quản lý khoa học công nghệ vào trang chức năng và bấm nút ‘Chỉnh sửa’ ở dòng dữ liệu tương ứng để vào trang chỉnh sửa chi tiết.

Bước 3: Tùy vào phân quyền của người quản lý sẽ thấy được toàn bộ dữ liệu của người dùng và có thể cập nhật được dữ liệu (thêm, sửa, xóa) và người quản lý tiến hành cập nhật lại mã số người khai.

Bước 4: Người quản lý bấm ‘Lưu’ để tiến hành lưu dữ liệu được hiển thị trên màn hình

6.2.7 Tải lên đánh giá công trình khoa học

Bảng 15 Đặc tả use-case tải lên đánh giá công trình khoa học

Người dùng Người quản lý bao gồm: thầy, cô, chuyên viên quản lý

Mô tả Người quản lý đăng nhập và thực hiện việc cập nhật đánh giá đề tài hàng loạt bằng tập tin excel

Người quản lý đã có tài khoản

Người quản lý thấy được đề tài đã được cập nhật đánh giá

Dữ liệu lấy từ bảng dữ liệu tương ứng

Bước 1: Người quản lý đăng nhập thành công.

Bước 2: Người quản lý chọn mục Quản lý khoa học công nghệ vào trang chức năng ‘Công trình khoa học’ và bấm vào nút ‘Tải lên’.

Bước 3: Người quản lý tiến hành chọn tập tin đánh giá tải lên.

Bước 4: Người quản lý thấy được thông tin mà hệ thống đọc được từ tập tin.

Bước 5: Người quản lý bấm lưu để nhập thông tin vào công trình khoa học.

Bước 6: Hệ thống sẽ tự nhận biết cập nhật thông tin và trả về một tập tin lưu chi tiết danh sách lỗi cho người quản lý biết để xử lý

6.2.8 Xem lịch sử tải lên tập tin thuyết minh

Bảng 16 Đặc tả use-case xem lịch sử tải lên tập tin thuyết minh

Người dùng Người quản lý bao gồm: thầy, cô, chuyên viên quản lý

Mô tả Người quản lý đăng nhập và thực hiện việc xem lịch sử tải lên tập tin thuyết minh theo từng giai đoạn:

• Đăng ký, hoàn tất đăng ký: một tập tin

• Hoàn chỉnh đăng ký: một tập tin

• Hoàn chỉnh thuyết minh: một tập tin

• Hoàn chỉnh phản biện: một tập tin

Người quản lý đã có tài khoản

Người quản lý thấy được bảng lịch sử thay đổi tập tin, tải tập tin thuyết minh nằm bên dưới phần tải lên tập tin thuyết minh theo từng giai đoạn như mô tả

Dữ liệu lấy từ bảng dữ liệu thuyết minh đề tài, sinh viên, học viên, thầy cô, sản phẩm cứng, sản phẩm mềm, ấn phẩm, sở hữu trí tuệ,

Bước 1: Người quản lý đăng nhập thành công.

Bước 2: Người quản lý chọn mục Quản lý khoa học công nghệ vào trang chức năng ‘Quản lý đăng ký đề tài’ danh sách đề tài của cá nhân hiện lên

Bước 3: Người quản lý tiến hành chọn dữ liệu thuyết minh mà mình cần xem lịch sử tập tin thuyết minh.

Bước 4: Ở trang chi tiết, người sử dụng sẽ kiểm tra mục tải lên tập tin thuyết minh để có thể quan sát được lịch sử các tập tin ở bên dưới.

Bước 5: Người quản lý bấm tải xuống tập tin thuyết minh mà mình cần.

Bước 6: Hộp thoại tải xuống xuất hiện thông báo tải xuống thành công

6.2.9 Sắp xếp thuyết minh đề tài theo điều kiện

Bảng 17 Đặc tả use-case sắp xếp thuyết minh đề tài theo điều kiện

Người dùng Người quản lý bao gồm: thầy, cô, chuyên viên quản lý

Mô tả Người quản lý đăng nhập và thực hiện việc sắp xếp dữ liệu

Người quản lý đã có tài khoản

Người quản lý thấy được đề tài đã được cập nhật đánh giá

Dữ liệu lấy từ bảng dữ liệu tương ứng

Bước 1: Người quản lý đăng nhập thành công.

Bước 2: Người quản lý chọn mục Quản lý khoa học công nghệ vào trang chức năng ‘Công trình khoa học’ và bấm vào nút ‘Sắp xếp’.

Bước 3: Người quản lý tiến hành chọn các trường cần sắp xếp.

Bước 4: Người quản lý thấy được thông tin mà hệ thống phản hồi.

6.2.10 Tải xuống dữ liệu đổi mới sáng tạo

Bảng 18 Đặc tả use-case tải xuống dữ liệu đổi mới sáng tạo

Người dùng Người quản lý bao gồm: thầy, cô, chuyên viên quản lý

Mô tả Người quản lý đăng nhập và thực hiện việc tải xuống dữ liệu sở hữu trí tuệ của các cá nhân

Người quản lý đã có tài khoản

Người quản lý thấy tải được dữ liệu sở hữu trí tuệ của các cá nhân

Dữ liệu lấy từ bảng dữ liệu sở hữu trí tuệ

Bước 1: Người quản lý đăng nhập thành công.

Bước 2: Người quản lý chọn mục Quản lý khoa học công nghệ vào trang chức năng ‘Công trình khoa học’ và chức năng ‘Danh sách bằng sở hữu trí tuệ’.

Bước 3: Người quản lý bấm vào nút ‘Tải xuống’ hộp thoại tải xuống xuất hiện để người quản lý chọn vị trí lưu.

Bước 4: Người quản lý thấy hộp thoại tải xuống thông báo thành công

6.2.11 Cập nhật dữ liệu thêm mẫu nhập liệu R01

Bảng 19 Đặc tả use-case cập nhật dữ liệu thêm mẫu nhập liệu R01

Người dùng Người quản lý bao gồm: thầy, cô, chuyên viên quản lý

Mô tả Người quản lý đăng nhập và chọn chức năng ‘Quản lý đăng ký đề tài’ sau đó bấm vào nút R01 để thay đổi mẫu nhập liệu có sẵn thành mẫu mới

Người quản lý đã có tài khoản

Người quản lý thấy dữ liệu được lưu theo mẫu mới R01

Dữ liệu lấy từ bảng dữ liệu thuyết minh đề tài, tham gia thuyết minh đề tài, danh mục kpi, kpi khoa học công nghệ, sản phẩm cứng, sản phẩm mềm, đóng góp đào tạo,…

Bước 1: Người quản lý đăng nhập thành công.

Bước 2: Người quản lý chọn mục Quản lý khoa học công nghệ vào trang chức năng ‘Quản lý thuyết minh đề tài’.

Bước 3: Người quản lý bấm chọn đề tài cần thay đổi thông tin nhập liệu theo mẫu R01.

Bước 4: Người quản lý chọn nút gạt để thay đổi mẫu mặc định thành mẫu R01.

Bước 5: Người quản lý nhập thông tin theo mẫu mới và bấm ‘Lưu’ để hoàn thành

6.2.12 Thông báo khi tải lên tập tin thành công

Bảng 20 Đặc tả use-case thông báo khi tải lên tập tin thành công

Người dùng Người quản lý bao gồm: thầy, cô, chuyên viên quản lý

Mô tả Người quản lý đăng nhập tải lên tập tin và nhận được thông báo tải lên thành công

Tiền điều kiện Người quản lý đã có tài khoản

Hậu điều kiện Người quản lý thấy thông báo tải tập tin lên thành công

Dữ liệu lấy từ bảng dữ liệu thuyết minh đề tài

Bước 1: Người quản lý đăng nhập thành công.

Bước 2: Người quản lý chọn mục Quản lý khoa học công nghệ vào trang chức năng ‘Quản lý thuyết minh đề tài’.

Bước 3: Người quản lý chọn dòng dữ liệu cần thay đổi tập tin và tải lên tập tin mới và lưu lại.

Bước 4: Người quản lý thấy hộp thoại thông báo tải lên thành công

6.2.13 Tải lên tập tin hướng dẫn và mời phản biện

Bảng 21 Đặc tả use-case tải lên tập tin hướng dẫn và mời phản biện

Người dùng Người quản lý bao gồm: thầy, cô, chuyên viên quản lý

Mô tả Người quản lý đăng nhập tải lên tập tin hướng dẫn và mời phản biện

Người quản lý đã có tài khoản

Hậu điều kiện Người quản lý thấy thông báo tải lên tập tin lên thành công

Dữ liệu lấy từ bảng dữ liệu thuyết minh đề tài

Bước 1: Người quản lý đăng nhập thành công.

Bước 2: Người quản lý chọn mục Quản lý khoa học công nghệ vào trang chức năng ‘Quản lý phản biện thuyết minh đề tài’.

Bước 3: Người quản lý bấm nút ‘Tải lên’.

Bước 4: Hộp thoại xuất hiện, người quản lý chọn ô ‘Tải lên’ hoặc kéo tập tin thả vào ô để hệ thống tải tập tin.

Bước 5: Người quản lý thấy hộp thoại thông báo tải lên thành công

6.2.14 Tải xuống tập tin hướng dẫn và mời phản biện

Bảng 22 Đặc tả use-case tải xuống tập tin hướng dẫn và mời phản biện Người dùng Người quản lý bao gồm: thầy, cô, chuyên viên quản lý

Mô tả Người quản lý đăng nhập tải xuống tập tin hướng dẫn và mời phản biện

Người quản lý đã có tài khoản

Người quản lý thấy thông báo tải xuống tập tin lên thành công

Dữ liệu lấy từ bảng dữ liệu thuyết minh đề tài

Bước 1: Người quản lý đăng nhập thành công.

Bước 2: Người quản lý chọn mục Quản lý khoa học công nghệ vào trang chức năng ‘Quản lý phản biện thuyết minh đề tài’.

Bước 3: Người quản lý bấm nút ‘Tải lên’ hộp thoại xuất, người dùng chọn biểu tượng tương ứng mới tập tin hướng dẫn và mời phản biện.

Bước 4: Người quản lý thấy hộp thoại thông báo tải xuống thành công

6.2.15 Chỉnh sửa thông tin email thông báo không đủ thông tin

Bảng 23 Đặc tả use-case chỉnh sửa thông tin email thông báo không đủ thông tin Người dùng Người quản lý bao gồm: thầy, cô, chuyên viên quản lý

Use-case đối với actor - người quản lý trung tâm

Hình 25 Sơ đồ use-case với actor - người quản lý trung tâm v Danh sách chức năng của người quản lý khoa học công nghệ thuộc trung tâm

Bảng 28 Danh sách chức năng của người quản lý khoa học công nghệ thuộc trung tâm

1 Quản lý giải thưởng khoa học công nghệ TT

2 Quản lý thông tin tài sản trí tuệ TT

3 Quản lý sản phẩm ứng dụng, chuyển giao TT

4 Quản lý bài báo thuộc tạp chí, hội nghị TT

5 Quản lý đề tài nghiên cứu TT

6 Quản lý hợp đồng TT

7 Quản lý kết quả đào tạo TT

8 Quản lý thành tựu sản phẩm đặc trưng TT

9 Quản lý sản phẩm ứng dụng chuyển giao TT v Đặc tả use-case chung cho các chức năng của bảng trên

6.3.1 Xem, thêm, sửa, xóa, phân trang dữ liệu

Bảng 29 Đặc tả use-case xem, thêm, sửa, xóa, phân trang dữ liệu

Người quản lý trung tâm bao gồm: thầy, cô, chuyên viên quản lý, trưởng trung tâm

Mô tả Người quản lý trung tâm muốn quản lý được số lượng dữ liệu thuộc trung tâm như: đề tài trung tâm, bài báo thuộc trung tâm, sở hữu trí tuệ thuộc trung tâm…

Người quản lý đã có tài khoản thuộc trung tâm mà mình quản lý

Người quản lý trung tâm có thể cập nhật dữ liệu khoa học công nghệ của cá nhân vào trung tâm mà mình quản lý

Dữ liệu lấy từ bảng tùy thuộc vào chức năng mà người sử dụng chọn tương ứng

Bước 1: Người quản lý trung tâm đăng nhập thành công.

Bước 2: Người quản lý trung tâm chọn mục Quản lý khoa học công nghệ và vào phần ‘Quản lý trung tâm’.

Bước 3: Tùy vào phân quyền của người quản lý sẽ thấy được các mục chức năng.

Bước 4: Người quản lý bấm vào chức năng tương ứng để vô trang chi tiết dữ liệu.

Bước 5: Người quản lý bấm chọn chức năng:

• Thêm: Bấm ‘+’ ở góc phải bên dưới trang hiển thị để tạo dữ liệu mới

• Sửa: Bấm vào nút ‘Chỉnh sửa’ ở các dòng dữ liệu tương ứng để vào trang chi tiết chỉnh sửa

• Xóa: Bấm vào nút ‘Xóa’ ở các dòng dữ liệu để xóa dòng dữ liệu tương ứng

• Phân trang: Người quản lý chọn số trang mà mình cần sau đó bấm vào để hệ thống chuyển đến trang tương ứng

• Thêm dữ liệu từ lý lịch khoa học cá nhân vào trung tâm: Người quản lý chọn nút ‘Thêm từ lý lịch khoa học’ hệ thống hiển thị hộp thoại liệt kê danh sách lý lịch khoa học của cá nhân

Bước 7: Người quản lý trung tâm:

• Nhập các thông tin chi tiết của dữ liệu và bấm lưu đối với chức năng thêm mới vào sửa thông tin

Chọn dữ liệu khoa học công nghệ cá nhân cần thêm vào trung tâm sau đó bấm ‘Lưu’ đối với chức năng thêm dữ liệu từ lý lịch khoa học cá nhân

Bảng 30 Đặc tả use-case tải xuống dữ liệu

Người dùng Người quản lý trung tâm bao gồm: thầy, cô, chuyên viên quản lý, trưởng trung tâm

Mô tả Người quản lý trung tâm muốn tải xuống dữ liệu các chức năng tương ứng

Tiền điều kiện Người quản lý đã có tài khoản thuộc trung tâm mà mình quản lý

Hậu điều kiện Người quản lý trung tâm có thể tải xuống tập tin ở các chức năng tương ứng

Dữ liệu lấy từ bảng tùy thuộc vào chức năng mà người sử dụng chọn tương ứng

Bước 1: Người quản lý trung tâm đăng nhập thành công.

Bước 2: Người quản lý trung tâm chọn mục Quản lý khoa học công nghệ và vào phần ‘Quản lý trung tâm’.

Bước 3: Tùy vào phân quyền của người quản lý sẽ thấy được các mục chức năng.

Bước 4: Người quản lý trung tâm bấm vào chức năng tương ứng để vô trang chi tiết dữ liệu.

Bước 5: Tại trang quản lý trung tâm người quản lý bấm vào biểu tượng ‘Tải xuống’ để hệ thống gửi tập tin.

Bước 6: Hộp thoại trên trình duyệt xuất hiện thông báo tập tin đang tải.

Use-case đối với actor - người quản lý phòng thí nghiệm

Hình 26 Sơ đồ use-case với actor - người quản lý phòng thí nghiệm v Danh sách chức năng của người quản lý khoa học công nghệ thuộc phòng thí nghiệm (PTN)

Bảng 31 Danh sách chức năng của người quản lý khoa học công nghệ thuộc phòng thí nghiệm (PTN)

1 Quản lý giải thưởng khoa học công nghệ PTN

2 Quản lý thông tin tài sản trí tuệ PTN

3 Quản lý sản phẩm ứng dụng, chuyển giao PTN

4 Quản lý bài báo thuộc tạp chí, hội nghị PTN

5 Quản lý đề tài nghiên cứu PTN

6 Quản lý hợp đồng PTN

7 Quản lý kết quả đào tạo PTN

8 Quản lý thành tựu sản phẩm đặc trưng PTN v Đặc tả use-case chung cho các chức năng của bảng trên

6.4.1 Xem, thêm, sửa, xóa, phân trang dữ liệu

Bảng 32 Đặc tả use-case xem, thêm, sửa, xóa, phân trang dữ liệu

Người quản lý PTN bao gồm: thầy, cô, chuyên viên quản lý, trưởng PTN

Mô tả Người quản lý PTN muốn quản lý được số lượng dữ liệu thuộc PTN như: đề tài PTN, bài báo thuộc PTN, sở hữu trí tuệ thuộc PTN,…

Người quản lý đã có tài khoản thuộc PTN mà mình quản lý

Người quản lý PTN có thể cập nhật dữ liệu khoa học công nghệ của cá nhân vào PTN mà mình quản lý

Dữ liệu lấy từ bảng tùy thuộc vào chức năng mà người sử dụng chọn tương ứng

Bước 1: Người quản lý PTN đăng nhập thành công.

Bước 2: Người quản lý PTN chọn mục Quản lý khoa học công nghệ và vào phần ‘Quản lý phòng thí nghiệm’.

Bước 3: Tùy vào phân quyền của người quản lý sẽ thấy được các mục chức năng.

Bước 4: Người quản lý bấm vào chức năng tương ứng để vô trang chi tiết dữ liệu.

Bước 5: Người quản lý bấm chọn chức năng:

• Thêm: Bấm ‘+’ ở góc phải bên dưới trang hiển thị để tạo dữ liệu mới

• Sửa: Bấm vào nút ‘Chỉnh sửa’ ở các dòng dữ liệu tương ứng để vào trang chi tiết chỉnh sửa

• Xóa: Bấm vào nút ‘Xóa’ ở các dòng dữ liệu để xóa dòng dữ liệu tương ứng

• Phân trang: Người quản lý chọn số trang mà mình cần sau đó bấm vào để hệ thống chuyển đến trang tương ứng

• Thêm dữ liệu từ lý lịch khoa học cá nhân vào PTN: Người quản lý chọn nút ‘Thêm từ lý lịch khoa học’ hệ thống hiển thị hộp thoại liệt kê danh sách lý lịch khoa học của cá nhân

Bước 7: Người quản lý PTN:

• Nhập các thông tin chi tiết của dữ liệu và bấm lưu đối với chức năng thêm mới vào sửa thông tin

Chọn dữ liệu khoa học công nghệ cá nhân cần thêm vào PTN sau đó bấm ‘Lưu’ đối với chức năng thêm dữ liệu từ lý lịch khoa học cá nhân

Bảng 33 Đặc tả use-case tải xuống dữ liệu

Người dùng Người quản lý PTN bao gồm: thầy, cô, chuyên viên quản lý, trưởng trung tâm

Mô tả Người quản lý PTN muốn tải xuống dữ liệu các chức năng tương ứng

Tiền điều kiện Người quản lý đã có tài khoản thuộc PTN mà mình quản lý

Hậu điều kiện Người quản lý PTN có thể tải xuống tập tin ở các chức năng tương ứng

Dữ liệu lấy từ bảng tùy thuộc vào chức năng mà người sử dụng chọn tương ứng

Bước 1: Người quản lý PTN đăng nhập thành công.

Bước 2: Người quản lý PTN chọn mục Quản lý khoa học công nghệ và vào phần ‘Quản lý Phòng thí nghiệm’.

Bước 3: Tùy vào phân quyền của người quản lý sẽ thấy được các mục chức năng.

Bước 4: Người quản lý PTN bấm vào chức năng tương ứng để vô trang chi tiết dữ liệu.

Bước 5: Tại trang quản lý PTN người quản lý bấm vào biểu tượng

‘Tải xuống’ để hệ thống gửi tập tin.

Bước 6: Hộp thoại trên trình duyệt xuất hiện thông báo tập tin đang tải.

Use-case đối với actor - người quản lý Khoa

Hình 27 Sơ đồ use-case với actor - người quản lý Khoa v Danh sách chức năng của người quản lý khoa học công nghệ Khoa

Bảng 34 Danh sách chức năng của người quản lý khoa học công nghệ Khoa

1 Quản lý hướng nghiên cứu Khoa

2 Quản lý lĩnh vực nghiên cứu Khoa

3 Quản lý kinh nghiệm quản lý đánh giá Khoa

4 Quản lý giới thiệu chuyên gia Khoa

5 Quản lý giải thưởng Khoa

7 Quản lý hoạt động khác Khoa

8 Thống kê bài báo khoa học Khoa

9 Thống kê sở hữu trí tuệ Khoa

10 Thống kê đề tài Khoa

11 Dashboard Khoa v Đặc tả use-case chung cho các chức năng số: 1, 2, 3, 4, 5, 6, 7

6.5.1 Xem, thêm, sửa, xóa, phân trang dữ liệu

Bảng 35 Đặc tả use-case xem, thêm, sửa, xóa, phân trang dữ liệu

Người dùng Người quản lý khoa học công nghệ Khoa bao gồm: thầy, cô, chuyên viên quản lý, trưởng khoa

Mô tả Người quản lý khoa học công nghệ Khoa muốn quản lý được số lượng dữ liệu thuộc khoa như: đề tài trung tâm, bài báo thuộc trung tâm, sở hữu trí tuệ thuộc trung tâm,…

Người quản lý đã có tài khoản thuộc khoa mà mình quản lý

Người quản lý khoa học công nghệ Khoa có thể cập nhật dữ liệu khoa học công nghệ của cá nhân vào khoa mà mình quản lý

Dữ liệu lấy từ bảng tùy thuộc vào chức năng mà người sử dụng chọn tương ứng

Bước 1: Người quản lý khoa học công nghệ Khoa đăng nhập thành công.

Bước 2: Người quản lý khoa học công nghệKhoa chọn mục Quản lý khoa học công nghệ và vào phần ‘Quản lý khoa học công nghệKhoa’.

Bước 3: Tùy vào phân quyền của người quản lý sẽ thấy được các mục chức năng.

Bước 4: Người quản lý bấm vào chức năng tương ứng để vô trang chi tiết dữ liệu.

Bước 5: Người quản lý bấm chọn chức năng:

• Thêm: Bấm ‘+’ ở góc phải bên dưới trang hiển thị để tạo dữ liệu mới

• Sửa: Bấm vào nút ‘Chỉnh sửa’ ở các dòng dữ liệu tương ứng để vào trang chi tiết chỉnh sửa

• Xóa: Bấm vào nút ‘Xóa’ ở các dòng dữ liệu để xóa dòng dữ liệu tương ứng

• Phân trang: Người quản lý chọn số trang mà mình cần sau đó bấm vào để hệ thống chuyển đến trang tương ứng

Bước 7: Người quản lý khoa học công nghệKhoa:

Nhập các thông tin chi tiết của dữ liệu và bấm lưu đối với chức năng thêm mới vào sửa thông tin v Đặc tả use-case chung cho các chức năng số: 5, 6, 7, 8, 9, 10

Bảng 36 Đặc tả use-case tải xuống dữ liệu

Người dùng Người quản lý khoa học công nghệ Khoa bao gồm: thầy, cô, chuyên viên quản lý, trưởng trung tâm

Mô tả Người quản lý khoa học công nghệ Khoa muốn tải xuống dữ liệu các chức năng tương ứng

Người quản lý đã có tài khoản thuộc khoa mà mình quản lý

Hậu điều kiện Người quản lý khoa học công nghệ Khoa có thể tải xuống tập tin ở các chức năng tương ứng

Dữ liệu lấy từ bảng tùy thuộc vào chức năng mà người sử dụng chọn tương ứng

Bước 1: Người quản lý trung tâm đăng nhập thành công.

Bước 2: Người quản lý trung tâm chọn mục Quản lý khoa học công nghệ và vào phần ‘Quản lý khoa học công nghệKhoa’.

Bước 3: Tùy vào phân quyền của người quản lý sẽ thấy được các mục chức năng.

Bước 4: Người quản lý trung tâm bấm vào chức năng tương ứng để vô trang chi tiết dữ liệu.

Bước 5: Tại trang quản lý trung tâm người quản lý bấm vào biểu tượng ‘Tải xuống’ để hệ thống gửi tập tin.

Bước 6: Hộp thoại trên trình duyệt xuất hiện thông báo tập tin đang tải

6.5.3 Thể hiện trực quan thông tin thống kê

Bảng 37 Đặc tả use-case thể hiện trực quan thông tin thống kê

Người quản lý bao gồm: thầy, cô, chuyên viên quản lý, trường khoa, hiệu trưởng

Mô tả Người quản lý đăng nhập vào mục ‘Khoa học công nghệ và dự án’ sau đó bấm vào cấu hình và chọn mục ‘Quản lý khoa học công nghệ Khoa’ bấm vào mục chức năng ‘Dashboard’

Người quản lý khoa học công nghệ Khoa đã có tài khoản

Người quản lý khoa học công nghệ Khoa thấy được số liệu thống kê về mảng khoa học công nghệ

Dữ liệu lấy từ bảng công trình khoa học, bằng sở hữu trí tuệ, nhân sự, sinh viên, học viên,…

Bước 1: Người quản lý đăng nhập thành công.

Bước 2: Người quản lý chọn mục ‘Khoa học công nghệ & dự án’ vào trang chức năng ‘Quản lý khoa học công nghệ Khoa’, chọn chức năng

Bước 3: Người quản lý thấy được thông tin thống kế đã được trực quan hóa bằng biểu đồ, hình ảnh.

Use-case đối với actor - quản lý công trình khoa học

Hình 28 Sơ đồ use-case với actor - quản lý công trình khoa học

6.6.1 Tự động gửi email sau 23 ngày bài báo, công trình khoa học không đủ thông tin

Bảng 38 Đặc tả use-case tự động gửi email sau 23 ngày bài báo, công trình khoa học không đủ thông tin Người dùng Hệ thống khoa học công nghệ chức năng công trình khoa học

Mô tả Người quản lý khoa học công nghệ muốn hệ thống tự động gửi email đến các bài báo, công trình khoa học nào sau 23 ngày kể từ ngày tạo mà người tạo không nhập đủ thông tin

Hệ thống được khởi chạy và không gặp lỗi

Người dùng nhận được email thông báo về bài báo, công trình khoa học không đủ thông tin để người dùng cập nhật

Dữ liệu lấy từ bảng công trình khoa học, tác giả tham gia công trình khoa học

Bước 1: Người dùng cập nhật thông tin bài báo, công trình khoa học trong lý lịch khoa học của mình.

Bước 2: Sau 23 ngày, hệ thống sẽ kiểm tra nếu bài báo, công trình khoa học được nhập vào cuối ngày (23 giờ 59 phút) và gửi email thông báo

6.6.2 Tự động gửi email thông báo xóa bài báo sau 30 ngày bài báo, công trình khoa học không đủ thông tin

Bảng 39 Đặc tả use-case tự động gửi email thông báo xóa bài báo sau 30 ngày bài báo, công trình khoa học không đủ thông tin Người dùng Hệ thống khoa học công nghệ chức năng công trình khoa học

Mô tả Người quản lý khoa học công nghệ muốn hệ thống tự động gửi email thông báo đã xóa đến các bài báo, công trình khoa học nào sau 30 ngày kể từ ngày tạo mà người tạo không nhập đủ thông tin

Hệ thống được khởi chạy và không gặp lỗi

Người dùng nhận được email thông báo về bài báo, công trình khoa học không đủ thông tin đã bị xóa để người dùng biết thông tin

Dữ liệu lấy từ bảng công trình khoa học, tác giả tham gia công trình khoa học

Bước 1: Người dùng cập nhật thông tin bài báo, công trình khoa học trong lý lịch khoa học của mình.

Bước 2: Sau 30 ngày, hệ thống sẽ kiểm tra nếu bài báo, công trình khoa học được nhập vào cuối ngày (23 giờ 59 phút) và gửi email thông báo

6.6.3 Tự động gửi email thông báo sau khi bài báo, công trình khoa học được tạo

Bảng 40 Đặc tả use-case tự động gửi email thông báo sau khi bài báo, công trình khoa học được tạo Người dùng Hệ thống khoa học công nghệ chức năng công trình khoa học

Mô tả Người quản lý khoa học công nghệ muốn hệ thống tự động gửi email đến các bài báo, công trình khoa học nào sau khi người dùng nhập thông tin

Hệ thống được khởi chạy và không gặp lỗi

Người dùng nhận được email thông báo về bài báo, công trình khoa học vừa mới được người dùng tạo

Dữ liệu lấy từ bảng công trình khoa học, tác giả tham gia công trình khoa học

Bước 1: Người dùng cập nhật thông tin bài báo, công trình khoa học trong lý lịch khoa học của mình.

Bước 2: Cuối ngày, hệ thống sẽ kiểm tra nếu bài báo, công trình khoa học được nhập vào cuối ngày (23 giờ 59 phút) và gửi email thông báo bài báo được tạo mới cho các tác giả tham gia

6.6.4 Tự động gửi email thông báo sau khi bài báo, công trình khoa học được cập nhật tác giả

Bảng 41 Đặc tả use-case tự động gửi email thông báo sau khi bài báo, công trình khoa học được cập nhật tác giả Người dùng Hệ thống khoa học công nghệ chức năng công trình khoa học

Mô tả Người quản lý khoa học công nghệ muốn hệ thống tự động gửi email đến các bài báo, công trình khoa học nào được người dùng cập nhật tác giả

Hệ thống được khởi chạy và không gặp lỗi

Người dùng nhận được email thông báo về bài báo, công trình khoa học vừa mới được người dùng cập nhật tác giả

Dữ liệu lấy từ bảng công trình khoa học, tác giả tham gia công trình khoa học

Bước 1: Người dùng cập nhật tác giả bài báo, công trình khoa học trong lý lịch khoa học của mình.

Bước 2: Cuối ngày, hệ thống sẽ kiểm tra nếu bài báo, công trình khoa học được nhập vào cuối ngày (23 giờ 59 phút) và gửi email thông báo cập nhật tác giả cho người được cập nhật.

Thiết kế cơ sở dữ liệu cho hệ thống mới và mở rộng

Theo như các yêu cầu tích hợp nghiệp vụ của phòng Khoa học công nghệ và Dự án đã trình bày ở mục 5, nhóm em xây dựng lược đồ ERD như Hình 29

Hình 29 Lược đồ ERD cơ sở dữ liệu cho hệ thống mới và mở rộng

Hình 30 Thiết kế cơ sở dữ liệu cho hệ thống mới và mở rộng

Hiện thực và phát triển hệ thống

Cấu trúc cây thư mục

Kiến trúc cây thư mục của hệ thống đã phát triển như sau

Hình 31 Cấu trúc cây thư mục

• Thư mục asset: chứa các tool đa dụng

• Thư mục config: chứa các file cấu hình hệ thống, xác thực người dùng, kết nối database và một số thư viện hỗ trợ

• Thư mục modules: chứa các module, mỗi module bao gồm các file Model, View và Controller

• Thư mục public: chứa các file css, document, download, font, hình ảnh và js

• Thư mục view: chứa các file template và component

Nhóm em sử dụng cấu trúc cây thư mục trên để tiếp tục hiện thực và phát triển hệ thống.

Hiện thực và phát triển hệ thống theo chức năng của từng đối tượng

8.2.1 Đối tượng Người dùng v Chức năng Quản lý lý lịch khoa học

Quản lý lý lịch khoa học bao gồm các hoạt động: xem, tìm kiếm, sửa, xoá và tải xuống dữ liệu

Hình 32 Lược đồ Activity quản lý dữ liệu lý lịch khoa học v Chức năng Phản biện Murata

Phản biện Murata: thầy, cô chấm phản biện đề tài Murata

Hình 33 Lược đồ Activity phản biện Murata

8.2.2 Đối tượng Người quản lý v Chức năng Quản lý khoa học công nghệ

Quản lý khoa học công nghệ bao gồm các hoạt động: xem, tìm kiếm, sửa, xoá và tải xuống dữ liệu

Hình 35 Lược đồ Activity quản lý khoa học công nghệ

Bên dưới là giao diện các loại dữ liệu

Lĩnh vực nghiên cứu: cho phép xem/thêm/sửa/xoá thông tin năm bắt đầu, năm kết thúc, lĩnh vực nghiên cứu của cán bộ và lĩnh vực nghiên cứu khác

Hình 36 Giao diện quản lý lĩnh vực nghiên cứu

Hình 37 Giao diện tạo mới lĩnh vực nghiên cứu

Hình 38 Giao diện cập nhật lĩnh vực nghiên cứu

Hướng nghiên cứu: cho phép xem/thêm/sửa/xoá thông tin thời gian bắt đầu, thời gian kết thúc, bậc đào tạo, tên và mô tả hướng nghiên cứu của cán bộ đang đăng nhập

Hình 39 Giao diện quản lý hướng nghiên cứu

Hình 40 Giao diện tạo mới hướng nghiên cứu

Hình 41 Giao diện cập nhật hướng nghiên cứu

Kinh nghiệm quản lý đánh giá: cho phép xem/thêm/sửa/xoá thông tin mã, cán bộ, hình thức hội đồng, năm và thời gian của kinh nghiệm quản lý đánh giá

Hình 42 Giao diện quản lý kinh nghiệm quản lý đánh giá

Hình 43 Giao diện tạo mới kinh nghiệm quản lý đánh giá

Hình 44 Giao diện cập nhật kinh nghiệm quản lý đánh giá

Giới thiệu chuyên gia: cho phép xem/thêm/sửa/xoá thông tin mã, cán bộ, họ tên, nơi công tác, địa chỉ, điện thoại, email và thời gian của chuyên gia được giới thiệu

Hình 45 Giao diện quản lý giới thiệu chuyên gia

Hình 46 Giao diện tạo mới giới thiệu chuyên gia

Hình 47 Giao diện cập nhật giới thiệu chuyên gia

Tham gia chương trình: cho phép xem thông tin cán bộ, chương trình, chức danh, trạng thái ở nước ngoài, thời gian bắt đầu và kết thúc của chương trình tham gia

Hình 48 Giao diện quản lý tham gia chương trình

Tham gia hiệp hội tạp chí hội nghị: cho phép xem thông tin cán bộ, tham gia, chức danh, loại, thời gian bắt đầu và kết thúc của loại tham gia

Hình 49 Giao diện quản lý tham gia hiệp hội quản lý hội nghị

Tham gia trường viện: cho phép xem thông tin cán bộ, tham gia, chức danh, thời gian bắt đầu và kết thúc của trường viện tham gia

Hình 50 Giao diện quản lý tham gia trường viện v Chức năng Đồng bộ dữ liệu đề tài khoa học công nghệ

Hình 51 Lược đồ Activity đồng bộ dữ liệu đề tài Đồng bộ dữ liệu Quản lý dữ liệu đề tài:

- Yêu cầu: đồng bộ các trường dữ liệu ngayBD, ngayKT, tongKP, tenTinhTrang, thanhLyNgay, ngayNghiemThu, ntctNgay, loaiNghiemThu từ file excel upload với dữ liệu của hệ thống từ năm 2020

- Đầu vào: File excel upload

- Đầu ra: File excel chứa danh sách các đề tài chưa thể đồng bộ (nếu có)

Bước 1: Đọc file excel upload được danh sách các đề tài, gọi là xlsxQldtList

Bước 2: Lấy ra danh sách tất cả các đề tài từ Quản lý dữ liệu đề tài trong database có năm bắt đầu từ 2020 trở về sau, gọi là qldtDeTaiList

Bước 3: Khai báo một danh sách rỗng trungDeTaiList

Bước 4: Với mỗi đề tài trong qldtDeTaiList, tìm trong xlsxQldtList một đề tài trùng với đề tài trong qldtDeTaiList đang xét, gọi là xlsxDeTai

Bước 5: Nếu tồn tại đề tài xlsxDeTai, thì thêm đề tài đó vào danh sách trungDeTaiList

Bước 6: Với mỗi trùng đề tài trong trungDeTaiList, cập nhật dữ liệu tương ứng từ file excel vào dữ liệu trong database hệ thống

Bước 7: Lọc ra các đề tài chưa thể đồng bộ từ xlsxQldtList bằng cách loại trừ các đề tài từ trungDeTaiList Đồng bộ dữ liệu Đề tài Lý lịch khoa học:

- Yêu cầu: đồng bộ trường dữ liệu maSoDeTai từ file excel upload với dữ liệu của hệ thống từ năm 2020

- Đầu vào: File excel upload

- Đầu ra: File excel chứa danh sách các đề tài chưa thể đồng bộ (nếu có)

Bước 1: Đọc file excel upload được danh sách các đề tài, gọi là xlsxLlkhList

Bước 2: Lấy ra danh sách tất cả các đề tài từ Đề tài Lý lịch khoa học trong database có năm bắt đầu từ 2020 trở về sau, gọi là llkhDeTaiList

Bước 3: Khai báo một danh sách rỗng trungDeTaiList

Bước 4: Với mỗi đề tài trong llkhDeTaiList, tìm trong xlsxLlkhList một đề tài trùng với đề tài trong llkhDeTaiList đang xét, gọi là xlsxDeTai

Bước 5: Nếu tồn tại đề tài xlsxDeTai, thì thêm đề tài đó vào danh sách trungDeTaiList Bước 6: Với mỗi trùng đề tài trong trungDeTaiList, cập nhật dữ liệu tương ứng từ file

Bước 7: Lọc ra các đề tài chưa thể đồng bộ từ xlsxLlkhList bằng cách loại trừ các đề tài từ trungDeTaiList Đồng bộ tỷ lệ chia giờ giữa Quản lý dữ liệu đề tài và Đề tài Lý lịch khoa học:

- Yêu cầu: đồng bộ tỷ lệ chia giờ của các thành viên tham gia đề tài giữa các trùng đề tài từ Quản lý dữ liệu đề tài và Đề tài Lý lịch khoa học năm hiện tại Nếu tỷ lệ chia giờ của một bên là 0 còn bên kia khác 0 thì cập nhật dữ liệu từ bên này sang bên kia và ngược lại Nếu cả hai bên đều có dữ liệu tỷ lệ chia giờ thì ưu tiên dữ liệu từ Quản lý dữ liệu đề tài Nếu danh sách thành viên tham gia bên Đề tài Lý lịch khoa học thiếu so với Quản lý dữ liệu đề tài thì tạo mới những thành viên còn thiếu bên Đề tài Lý lịch khoa học

Bước 1: Lấy ra danh tất cả các trùng đề tài từ Quản lý dữ liệu đề tài và Đề tài Lý lịch khoa học năm hiện tại trong database, gọi là trungDeTaiList

Bước 2: Với mỗi trùng đề tài trong trungDeTaiList, lấy ra danh sách thành viên tham gia vào đề tài đó từ Quản lý dữ liệu đề tài trong database, gọi là QLDT

Bước 3: Với mỗi trùng đề tài trong trungDeTaiList, lấy ra danh sách thành viên tham gia vào đề tài đó từ Đề tài Lý lịch khoa học trong database, gọi là LLKH

Kiểm thử hệ thống

Kiểm thử API

Nhóm em sử dụng chương trình Postman và thư viện Chai Assertion để kiểm thử API của hệ thống

Postman hiện nay là một trong những công cụ phổ biến nhất được sử dụng trong việc kiểm thử API Nhờ chương trình này, lập trình viên có thể gọi REST API mà không cần phải viết bất kỳ dòng code nào Postman có khả năng hỗ trợ mọi phương thức HTTP bao gồm: POST, PUT, DELETE, PATCH, GET,… Ngoài ra, Postman còn cho phép lập trình viên lưu lại lịch sử của các lần request nên vô cùng tiện lợi cho nhu cầu sử dụng lại

Hình 85 Giao diện chương trình Postman

Chaijs là một assertion library cho node và trình duyệt Điểm mạnh của Chaijs là ở chỗ thư viện này có thể tích hợp với bất cứ testing framework nào của javascript

Hình 86 Thư viện Chaijs v Các bước thực hiện kiểm thử như sau:

Bước 1: Định nghĩa dữ liệu gửi đi và các API

Hình 87 Kiểm thử API bước 1

Bước 2: Định nghĩa dữ liệu trả về và các test-case

Hình 88 Kiểm thử API bước 2

Hình 89 Kiểm thử API bước 3

Bước 4: Kiểm tra lại kết quả và hiệu chỉnh (nếu có)

Hình 90 Kiểm thử API bước 4

Bước 5: Viết hướng dẫn sử dụng cho API

Hình 91 Kiểm thử API bước 5

Ngoài ra, các hướng dẫn sử dụng có thể được chia sẻ cho người khác hoặc việc kiểm thử có thể được thực hiện lại khi có thay đổi logic từ chương trình Các test case dành cho API cũng có thể được chạy một lần duy nhất để xem kết quả

Hình 92 Kiểm thử API một lần chạy duy nhất

Hình 93 Kết quả kiểm thử API một lần chạy duy nhất

Kiểm thử User Interface

Việc kiểm thử User Interface bằng cách sử dụng công cụ Selenium và được viết bằng ngôn ngữ Python

Selenium là một công cụ kiểm thử phần mềm mã nguồn mở mạnh mẽ và phổ biến dành cho các ứng dụng trên trình duyệt web và các nền tảng khác nhau Nó gồm các thành phần như Hình 95

Hình 95 Các thành phần của công vụ Selenium

Trong đó, Selenium 2 với Webdriver là nhân tố cốt lõi được sử dụng phổ biến Nó bao gồm các thư viện cho phép người dùng lập trình (scripting) các đoạn mã kiểm thử (test script trên các ngôn ngữ lập trình khác nhau như Python, Ruby, C#, v Các bước thực hiện kiểm thử như sau:

Bước 1: Viết test-case và kết quả kiểm thử bằng Python

Hình 96 Đoạn code mẫu sử dụng Selenium được viết bằng Python

Bước 2: Chạy test case kiểm tra xem cách trang web phản hồi lại các sự kiện mô phỏng hành vi của người dùng Chương trình sẽ bật trang web và thực hiện các việc như click chuột, chọn icon, nhập liệu để kiểm tra phản hồi của trang web

Hình 97 Chương trình tự chạy, bấm chuột và nhập liệu

Bước 3: Kiểm tra kết quả được xuất ra bằng công cụ HTMLTestRunner, hiệu chỉnh lại các test-case

Hình 98 Báo cáo tình trạng test-case

Ngày đăng: 30/07/2024, 23:43

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN