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

(Đồ án tốt nghiệp) Xây dựng website quản lý đồ án tốt nghiệp tại khoa Cơ khí máy Trường Đại học Sư phạm Kỹ thuật TP.HCM

100 29 0

Đ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

Định dạng
Số trang 100
Dung lượng 4,95 MB

Nội dung

(Đồ án tốt nghiệp) Xây dựng website quản lý đồ án tốt nghiệp tại khoa Cơ khí máy Trường Đại học Sư phạm Kỹ thuật TP.HCM(Đồ án tốt nghiệp) Xây dựng website quản lý đồ án tốt nghiệp tại khoa Cơ khí máy Trường Đại học Sư phạm Kỹ thuật TP.HCM(Đồ án tốt nghiệp) Xây dựng website quản lý đồ án tốt nghiệp tại khoa Cơ khí máy Trường Đại học Sư phạm Kỹ thuật TP.HCM(Đồ án tốt nghiệp) Xây dựng website quản lý đồ án tốt nghiệp tại khoa Cơ khí máy Trường Đại học Sư phạm Kỹ thuật TP.HCM(Đồ án tốt nghiệp) Xây dựng website quản lý đồ án tốt nghiệp tại khoa Cơ khí máy Trường Đại học Sư phạm Kỹ thuật TP.HCM(Đồ án tốt nghiệp) Xây dựng website quản lý đồ án tốt nghiệp tại khoa Cơ khí máy Trường Đại học Sư phạm Kỹ thuật TP.HCM(Đồ án tốt nghiệp) Xây dựng website quản lý đồ án tốt nghiệp tại khoa Cơ khí máy Trường Đại học Sư phạm Kỹ thuật TP.HCM(Đồ án tốt nghiệp) Xây dựng website quản lý đồ án tốt nghiệp tại khoa Cơ khí máy Trường Đại học Sư phạm Kỹ thuật TP.HCM(Đồ án tốt nghiệp) Xây dựng website quản lý đồ án tốt nghiệp tại khoa Cơ khí máy Trường Đại học Sư phạm Kỹ thuật TP.HCM(Đồ án tốt nghiệp) Xây dựng website quản lý đồ án tốt nghiệp tại khoa Cơ khí máy Trường Đại học Sư phạm Kỹ thuật TP.HCM(Đồ án tốt nghiệp) Xây dựng website quản lý đồ án tốt nghiệp tại khoa Cơ khí máy Trường Đại học Sư phạm Kỹ thuật TP.HCM(Đồ án tốt nghiệp) Xây dựng website quản lý đồ án tốt nghiệp tại khoa Cơ khí máy Trường Đại học Sư phạm Kỹ thuật TP.HCM(Đồ án tốt nghiệp) Xây dựng website quản lý đồ án tốt nghiệp tại khoa Cơ khí máy Trường Đại học Sư phạm Kỹ thuật TP.HCM(Đồ án tốt nghiệp) Xây dựng website quản lý đồ án tốt nghiệp tại khoa Cơ khí máy Trường Đại học Sư phạm Kỹ thuật TP.HCM(Đồ án tốt nghiệp) Xây dựng website quản lý đồ án tốt nghiệp tại khoa Cơ khí máy Trường Đại học Sư phạm Kỹ thuật TP.HCM(Đồ án tốt nghiệp) Xây dựng website quản lý đồ án tốt nghiệp tại khoa Cơ khí máy Trường Đại học Sư phạm Kỹ thuật TP.HCM

Trang 1

z

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH

KHOA ĐÀO TẠO CHẤT LƯỢNG CAO

SVTH : NGUYỄN THIÊN QUỐC MSSV : 16110191

Khoá : K16 Ngành : CÔNG NGHỆ THÔNG TIN GVHD

Trang 2

i

LỜI CẢM ƠN

Trước hết, chúng em xin chân thành cảm ơn thầy Nguyễn Đăng Quang đã tận

tình giúp đỡ Nhờ có sự hướng dẫn của thầy, chúng em mới có thể hoàn thành đồ án

theo cách hợp lệ nhất Đặc biệt, chúng em xin tỏ lòng biết ơn sâu sắc đến thầy Nguyễn

Minh Đạo, đã tận tình chỉ dẫn để chúng em có thể thực hiện và hoàn thành đồ án tốt

nghiệp này Với những kiến thức, nhận xét của thầy không những giúp chúng em có

thể chỉnh sửa những thiếu sót mà còn giúp hoàn thiện kĩ năng cần có của một lập trình

viên để hoàn thiện đồ án này

Chúng em cũng không quên gửi lời cảm ơn đến quý giảng viên trong hội đồng

đánh giá nói riêng, và ban Khoa, Ngành nói chung Nhờ những đánh giá khách quan

của quý thầy cô đã giúp chúng em hiểu thêm các khía cạnh khác nhau trong đồ án

này, từ đó hoàn thiện báo cáo tốt nghiệp tốt hơn

Ngoài ra, chúng em xin cảm ơn các bạn cùng khoá, các anh chị khoá trên, các

bạn thuộc Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh đã không ngần

ngại giúp đỡ, chia sẻ kiến thức trong suốt thời gian qua

Do vốn kiến thức còn ít ỏi cũng như quỹ thời gian có giới hạn, nên việc sai sót

trong quá trình thực hiện là điều không thể tránh khỏi, rất mong được nhận thêm

nhiều ý kiến đóng góp hữu ích hơn từ quý thầy cô và các bạn để giúp chúng em hoàn

thiện bản thân cũng như trong những dự án sắp tới

Một lần nữa, chúng em xin chân thành cảm ơn!

Tp Hồ Chí Minh, ngày 20 tháng 07 năm 2021

Trang 3

đồ án tốt nghiệp tại khoa cơ khí máy

- Tìm hiểu về nghiệp vụ quản lý đồ án tốt nghiệp

- Không hiểu rõ mong muốn khách hàng nên phải thay đổi một số nghiệp vụ trong quá trình xây dựng website

- Bất đồng bộ giữa Back-end và Front-end

- Sửa chữa và thêm một số chức năng để phù hợp với sự thay đổi về nghiệp vụ

- Tiến hành nhiều cuộc thảo luận để giải quyết vần đề được đưa ra

- Website quản lý đề tài tốt nghiệp

- Xây dựng hệ thống dễ dàng bảo trì và phát triển

Trang 4

- Learn about the graduation thesis management profession

- Not understanding what the customer wants, so we must change some operations during the construction of the website

- Misunderstanding between front-end and back-end

- Fix and add some functionality to accommodate changing business

- Conduct a lot of discussions to solve the problem raised

- Management website for graduation thesis

- Building a system that’s easy to maintain and develop

Trang 5

iv

MỤC LỤC

LỜI CẢM ƠN i

LỜI MỞ ĐẦU ii

PREFACE iii

MỤC LỤC iv

DANH MỤC CÁC TỪ VIẾT TẮT vii

DANH MỤC CÁC BẢNG BIỂU viii

DANH MỤC CÁC HÌNH ẢNH, BIỂU ĐỒ xi

TÀI LIỆU THAM KHẢO xii

CHƯƠNG 1 GIỚI THIỆU 1

1.1 Tính cấp thiết của đề tài 1

1.2 Mục đích của đề tài 1

1.3 Đối tượng và phạm vi nghiên cứu 1

1.4 Kết quả dự kiến đạt được 2

CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 3

2.1 Giới thiệu về Java 3

2.1.1 Java là gì? Hoàn cảnh ra đời của Java 3

2.1.2 Đặc điểm của Java 4

2.2 Spring Framework 6

2.2.1 Tổng quan về Spring 6

2.2.2 Các module và kiến trúc của Spring Framework 6

2.3 Spring Boot 8

2.3.1 Spring Boot là gì? Tác dụng của Spring Boot 8

2.3.2 Các yêu cầu về hệ thống của Spring Boot 8

2.4 Tìm hiểu về RESTful API 9

2.4.1 RESTful API là gì? 9

2.4.2 Cách thức hoạt động của RESTful 10

2.4.3 Các ràng buộc trong REST 11

2.5 Angular (web framework) 11

2.5.1 Khái niệm Angular Phân biệt giữa Angular và AngularJS 11

2.5.2 Cách thức hoạt động 12

2.6 Cơ sở dữ liệu MongoDB 13

CHƯƠNG 3 KHẢO SÁT HIỆN TRẠNG VÀ XÁC ĐỊNH YÊU CẦU 16 3.1 Khảo sát hiện trạng 16

3.2 Xác định yêu cầu 17

Trang 6

v

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

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

CHƯƠNG 4 ĐẶC TẢ CHỨC NĂNG 20

4.1 Định nghĩa Use Case 20

4.1.1 Mô tả Actor 20

4.1.2 Mô tả Usecase 20

4.2 Use Case Diagram 21

4.3 Đặc tả Use Case 21

4.3.1 Quản lý bài viết 24

4.3.2 Quản lý biểu điểm hội đồng 27

4.3.3 Quản lý biểu điểm nhận xét – GVHD 31

4.3.4 Giảng viên đề xuất đề tài 35

4.3.5 Giảng viên đăng ký hướng dẫn đề tài 36

CHƯƠNG 5 THIẾT KẾ ỨNG DỤNG 38

5.1 Thiết kế cơ sở dữ liệu 38

5.1.1 Lược đồ cơ sở dữ liệu 38

5.1.2 Chi tiết các collection 39

5.2 Thiết kế xử lý 56

5.2.1 Lược đồ lớp 56

5.2.2 Chức năng quản lý bài viết 61

5.2.3 Chức năng quản lý biểu điểm hội đồng 63

5.2.4 Chức năng giảng viên đăng ký hướng dẫn đề tài 65

5.2.5 Chức năng giảng viên đề xuất đề tài 66

5.3 Thiết kế giao diện 67

5.3.1 Phía admin/thư ký khoa 67

5.3.2 Phía giảng viên 76

CHƯƠNG 6 CÀI ĐẶT VÀ KIỂM THỬ ỨNG DỤNG 82

6.1 Cài đặt ứng dụng 82

6.1.1 Thư viện và môi trường phát triển 82

6.1.2 Lệnh cài đặt và chạy website Front-end 82

6.1.3 Lệnh cài đặt và chạy API web serivce Back-end (tuỳ chọn) 82

6.2 Kiểm thử phần mềm 83

6.2.1 Chức năng quản lý bài viết 83

6.2.2 Chức năng quản lý biểu điểm hội đồng 84

6.2.3 Chức năng giảng viên nhận xét đề tài hướng dẫn 84

CHƯƠNG 7 KẾT LUẬN 85

Trang 7

vi

7.1 Kết quả đạt được 85

7.2 Ưu điểm và nhược điểm 85

7.2.1 Ưu điểm 85

7.2.2 Nhược điểm 85

7.2.3 Khó khăn 85

7.3 Kinh nghiệm đạt được 86

7.4 Hướng phát triển trong tương lai 86

Trang 8

vii

DANH MỤC CÁC TỪ VIẾT TẮT

JWT: Json Web Token

OOP: Object Oriented Programming

LTS: Long Term Support

IoC: Inversion of Control

DI: Dependency Injection

IDE: Integrated Development Environment

Trang 9

viii

DANH MỤC CÁC BẢNG BIỂU

Bảng 2.1: Danh sách phiên bản Java đã phát hành 4

Bảng 2.2: Build Tool được hỗ trợ bởi Spring Boot 9

Bảng 2.3: Servlet Containers được Spring Boot hỗ trợ 9

Bảng 4.1: Mô tả Actor 20

Bảng 4.2: Mô tả Use Case 20

Bảng 4.3: Đặc tả Use Case 21

Bảng 4.4: Chi tiết use case "xem danh sách bài viết" 24

Bảng 4.5: Chi tiết use case "cập nhật bài viết" 25

Bảng 4.6: Chi tiết use case "thay đổi trạng thái bài viết" 25

Bảng 4.7: Chi tiết use case "tìm kiếm bài viết" 26

Bảng 4.8: Chi tiết use case "thêm bài viết mới" 26

Bảng 4.9: Chi tiết use case "xem danh sách biểu điểm hội đồng" 28

Bảng 4.10: Chi tiết use case "cập nhật biểu điểm hội đồng" 28

Bảng 4.11: Chi tiết use case "thay đổi trạng thái biểu điểm hội đồng" 29

Bảng 4.12: Chi tiết use case "tìm kiếm biểu điểm hội đồng" 29

Bảng 4.13: Chi tiết use case "thêm biểu điểm hội đồng mới" 30

Bảng 4.14: Chi tiết use case "xem danh sách biểu điểm nhận xét hướng dẫn " 31

Bảng 4.15: Chi tiết use case "cập nhật biểu điểm nhận xét hướng dẫn" 32

Bảng 4.16: Chi tiết use case "thay đổi trạng thái biểu điểm nhận xét hướng dẫn " 33

Bảng 4.17: Chi tiết use case "tìm kiếm biểu điểm nhận xét hướng dẫn" 33

Bảng 4.18: Chi tiết use case "thêm biểu điểm nhận xét hướng dẫn mới" 34

Bảng 4.19: Chi tiết use case "giảng viên đề xuất đề tài" 35

Bảng 4.20: Chi tiết use case "giảng viên đăng ký hướng dẫn đề tài" 36

Bảng 5.1: Collection "bai-viet" 39

Bảng 5.2: Collection "side-banner" 40

Bảng 5.3: Collection "banner" 40

Bảng 5.4: Collection "my-file" 40

Bảng 5.5: Colleciton "cau-hinh-he-thong" 41

Bảng 5.6: Colleciton "dia-diem" 41

Bảng 5.7: Colleciton "tai-khoan" 41

Bảng 5.8: Colleciton "thoi-gian-bao-ve" 42

Bảng 5.9: Colleciton "hoc-ham" 42

Bảng 5.10: Colleciton "hoc-vi" 42

Bảng 5.11: Colleciton "khoa" 42

Bảng 5.12: Colleciton "nganh" 43

Trang 10

ix

Bảng 5.13: Colleciton "bo-mon" 43

Bảng 5.14: Colleciton "mon-hoc" 43

Bảng 5.15: Colleciton "chuc-vu" 44

Bảng 5.16: Colleciton "sinh-vien" 44

Bảng 5.17: Colleciton "giang-vien" 45

Bảng 5.18: Colleciton "hoi-dong" 46

Bảng 5.19: Colleciton "dot-dang-ky" 46

Bảng 5.20: Colleciton "de-tai" 47

Bảng 5.21: Colleciton "de-tai-de-xuat" 49

Bảng 5.22: Colleciton "bieu-diem-hoi-dong" 49

Bảng 5.23: Colleciton "bieu-diem-nhan-xet-huong-dan" 50

Bảng 5.24: Colleciton "bieu-diem-nhan-xet-phan-bien" 50

Bảng 5.25: Colleciton "linh-vuc" 51

Bảng 5.26: Colleciton "ca-nhan" 51

Bảng 5.27: Document "muc-do-hoan-thanh" 51

Bảng 5.28: Document "tieu-chi-danh-gia" 52

Bảng 5.29: Document "diem-hoi-dong" 52

Bảng 5.30: Document "diem-huong-dan" 52

Bảng 5.31: Document "diem-phan-bien" 52

Bảng 5.32: Document "diem-do-an-embedded" 53

Bảng 5.33: Document "de-tai-embedded" 53

Bảng 5.34: Document "giang-vien-embedded" 53

Bảng 5.35: Document "nhan-xet-huong-dan" 54

Bảng 5.36: Document "nhan-xet-phan-bien" 54

Bảng 5.37: Document "thoi-gian" 55

Bảng 5.38: Document "thu-tu-bao-ve" 55

Bảng 5.39: Document "uy-vien-hoi-dong" 55

Bảng 5.40: Danh sách màn hình phía "admin/thư ký khoa" 67

Bảng 5.41: Mô tả “màn hình biểu điểm GVHD" 67

Bảng 5.42: Mô tả "màn hình thêm mới biểu điểm" 68

Bảng 5.43: Mô tả "màn hình chỉnh sửa biểu điểm" 70

Bảng 5.44: Mô tả "màn hình quản lý sinh viên" 72

Bảng 5.45: Mô tả "màn hình thêm mới sinh viên" 73

Bảng 5.46: Mô tả "màn hình duyệt thông tin sinh viên" 74

Bảng 5.47: Mô tả "màn hình chỉnh sửa thông tin sinh viên" 76

Bảng 5.48: Danh sách màn hình phía "giảng viên" 76

Trang 11

x

Bảng 5.49: Mô tả "màn hình xem danh sách hội đồng" 77

Bảng 5.50: Mô tả "màn hình hội đồng đánh giá đề tài" 78

Bảng 5.51: Mô tả "màn hình hội đồng đánh giá đề tài" 79

Bảng 6.1 Danh sách thư viện và môi trường phát triển cần thiết trong sản phẩm 82

Bảng 6.2 Danh sách các lệnh cài đặt và chạy chương trình 82

Bảng 6.3 Kiểm thử chức năng quản lý bài viết 83

Bảng 6.4: Kiểm thử chức năng quản lý biểu điểm hội đồng 84

Bảng 6.5: Kiểm thử chức năng giảng viên nhận xét đề tài hướng dẫn 84

Bảng 7.1 Các khó khăn về công nghệ 85

Bảng 7.2 Các khó khăn về quy trình thực hiện 86

Trang 12

xi

DANH MỤC CÁC HÌNH ẢNH, BIỂU ĐỒ

Hình 2.1: Lập trình hướng đối tượng trên Java 5

Hình 2.2: Kiến trúc của Spring Framework 7

Hình 2.3: REST API Design 9

Hình 2.4: Angular Application Diagram 12

Hình 2.5: Mô hình Mongoose 15

Hình 4.1: Use Case Diagram 21

Hình 4.2: Use case quản lý bài viết 24

Hình 4.3: Use case quản lý biểu điểm hội đồng 27

Hình 4.4: Use case quản lý biểu điểm nhận xét hướng dẫn 31

Hình 4.5: Use case giảng viên đề xuất đề tài 35

Hình 4.6: Use case giảng viên đăng ký hướng dẫn đề tài 36

Hình 5.1: Lược đồ cơ sở dữ liệu (1) 38

Hình 5.2: Lược đồ cơ sở dữ liệu (2) 39

Hình 5.3: Class Diagram (1) 56

Hình 5.4: Class Diagram (2) 57

Hình 5.5: Class Diagram (3) 58

Hình 5.7: Class Diagram (5) 60

Hình 5.8: Class Diagram (6) 60

Hình 5.9: Sequence diagram chức năng "cập nhật bài viết" 61

Hình 5.10: Sequence diagram chức năng "thêm bài viết mới" 62

Hình 5.11: Sequence diagram chức năng "thay đổi trạng thái biểu điểm hội đồng" 63 Hình 5.12: Sequence diagram chức năng "thêm biểu điểm hội đồng mới" 64

Hình 5.13: Sequence diagram chức năng "giảng viên đăng ký hướng dẫn đề tài" 65

Hình 5.14: Sequence diagram chức năng "giảng viên đề xuất đề tài" 66

Hình 5.15: Màn hình biểu điểm GVHD 67

Hình 5.16: Màn hình thêm mới biểu điểm 68

Hình 5.17: Màn hình chỉnh sửa biểu điểm 70

Hình 5.18: Màn hình quản lý sinh viên 72

Hình 5.19: Màn hình thêm mới sinh viên 73

Hình 5.20: Màn hình duyệt thông tin sinh viên 74

Hình 5.21: Màn hình chỉnh sửa thông tin sinh viên 75

Hình 5.22: Màn hình xem danh sách hội đồng 77

Hình 5.23: Màn hình hội đồng đánh giá đề tài 78

Hình 5.24: Màn hình hội đồng đánh giá đề tài 79

Trang 14

1

CHƯƠNG 1 GIỚI THIỆU

1.1 Tính cấp thiết của đề tài

Trong những ngày tháng năm cuối đại học, đa số sinh viên thường ra ngoài đi làm dẫn đến khó có thể sắp xếp, cập nhật thông tin, thời gian về việc đăng ký đồ án tốt nghiệp Trong khi đó giảng viên bận rộn với các công việc giảng dạy, ít nắm bắt được số lượng, tình hình sinh viên đăng ký Với những lý do trên, nhóm quyết định chọn đề tài xây dựng website quản lý đồ án tốt nghiệp nhằm giảm bớt gánh nặng cho giảng viên cũng như sinh viên trong việc quản lý đồ án của mình, phần nào giảm bớt khó khăn trong việc lưu trữ đồ án tốt nghiệp

1.2 Mục đích của đề tài

Đề tài “XÂY DỰNG WEBSITE QUẢN LÝ ĐỒ ÁN TỐT NGHIỆP TẠI

KHOA CƠ KHÍ MÁY TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM ”

đặt ra các vấn đề trọng tâm về mục tiêu mà sinh viên nghiên cứu cần thực hiện được bao gồm:

- Sử dụng công nghệ, kỹ thuật, thư viện ứng dụng và quá trình phát triển phần mềm, mang lại giá trị nhanh nhất cho khách hàng, bao gồm: các công nghệ giúp phát triển ứng dụng web đa nền tảng, các công nghệ ứng dụng giúp phát triển dự án nhanh nhất, độc lập nhất và dễ dàng triển khai cho các môi trường khác nhau

- Xây dựng website quản lý đồ án tốt nghiệp giúp các thầy cô dễ dàng quản lý thông tin về đồ án mà sinh viên đã thực hiện cho trường Từ đó, sản phẩm được xem xét và đánh giá một cách phù hợp

- Sản phẩm là một trang web nên yêu cầu giao diện thân thiện với người dùng, phù hợp với khách hàng mong muốn Sản phẩm cũng yêu cầu phải sử dụng được trên nhiều trình duyệt khác nhau cũng như nhiều loại thiết bị

1.3 Đối tượng và phạm vi nghiên cứu

Đồ án được thực hiện xoay quanh hai đối tượng trọng tâm, bao gồm: công nghệ

và kiến thức thực tế về việc quản lý, xử lý các nghiệp vụ mà khách hàng yêu cầu Trong đó, đối tượng công nghệ bao gồm các đối tượng nghiên cứu bắt buộc: Java Spring Boot, Angular Framework, cơ sở dữ liệu NoSQL MongoDB Ngoài việc kết hợp các đối tượng nghiên cứu công nghệ, một số thư viện hữu ích như JWT (Json Web Token), Ant Design (ng-zorro) cũng được nghiên cứu để xây dựng giao diện website được tốt hơn

Trang 15

2 Đối tượng khách hàng hướng đến là nhóm đối tượng có nhu cầu tổ chức, quản

lý các đồ án tốt nghiệp, bao gồm các quy trình đăng ký từ giảng viên, xem xét các thông tin rồi xét duyệt thông tin, quản lý người dùng, quản lý các danh mục

Phạm vi thực hiện được đặt ở mức độ tổng quát, nắm được kiến thức chung cho nội dung thực hiện và vận dụng từng nội dung kiến thức vào sản phẩm thực tế, không đặt nặng lý thuyết Tham khảo ý kiến của giảng viên hướng dẫn, khách hàng, bạn bè xung quanh, những người có kinh nghiệm liên quan đến các vấn đề đang gặp phải để tạo ra độ chính xác của sản phẩm

1.4 Kết quả dự kiến đạt được

- Hiểu được các kiến thức về chức năng, cách thức hoạt động của Java Spring Boot và Angular trong việc xây dựng website

- Xây dựng hoàn thành một website quản lý đồ án tốt nghiệp với những kiến thức

đã tìm hiểu

Trang 16

3

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

2.1 Giới thiệu về Java

2.1.1 Java là gì? Hoàn cảnh ra đời của Java

[9][2]Java là một ngôn ngữ lập trình hướng đối tượng (OOP), có mục đích chung cho phép các nhà phát triển ứng dụng “Write once, run anywhere”[12] (viết một lần, chạy ở mọi nơi), nghĩa là mã Java đã biên dịch có thể chạy trên tất cả các nền tảng hỗ trợ Java mà không cần biên dịch lại Cú pháp của Java tương tự C/C++ nhưng có ít

cơ sở cấp thấp hơn các ngôn ngữ trên, do đó ngôn ngữ này trở nên phổ biến, đỡ tốn công sửa lỗi hơn Tính đến năm 2021, Java nằm trong top 3 ngôn ngữ lập trình phổ biến nhất được sử dụng theo GitHub[7]

Được phát triển bởi Sun Microsystem (sau đó đã được Oracle mua lại), do James Gosling khởi xướng vào năm 1991 và phát hành vào năm 1995 như một thành phần cốt lõi của nền tảng Java của Sun Microsystem (Java 1.0 [J2SE]) Ban đầu ngôn ngữ

này được gọi là Oak theo tên một cây sồi bên ngoài văn phòng của Gosling Sau đó,

dự án có tên là Green và cuối cùng được đổi tên thành Java, từ cà phê Java, loại cà

phê đến từ Indonesia

Với sự ra đời của Java 2 (ban đầu được phát hành với tên gọi J2SE 1.2 vào tháng

12 năm 1998 – 1999), các phiên bản mới có nhiều cấu hình được xây dựng cho các loại nền tảng khác nhau J2EE bao gồm các công nghệ và API cho các ứng dụng doanh nghiệp thường chạy trong môi trường máy chủ, trong khi các API đặc trưng của J2ME được tối ưu hóa cho các ứng dụng di động Phiên bản dành cho máy tính

để bàn được đổi tên thành J2SE Năm 2006, vì mục đích tiếp thị, Sun đã đổi tên các phiên bản J2 mới lần lượt là Java EE, Java ME và Java SE:

- Nền tảng Java, phiên bản Micro (Java ME) – nhắm mục tiêu môi trường với tài nguyên hạn chế

- Nền tảng Java, phiên bản tiêu chuẩn (Java SE) – nhắm mục tiêu môi trường máy trạm

- Nền tảng Java, phiên bản Doanh nghiệp (Java EE) – nhắm mục tiêu các môi trường doanh nghiệp hoặc Internet phân tán lớn

Java có thể bắt gặp ở nhiều nơi, từ những trang web thương mại điện tử, đến

ứng dụng Android, hoặc thậm chí trên ứng dụng khoa học, ứng dụng tài chính như hệ thống giao dịch điện tử, trò chơi Minecraft, công cụ phần mềm như Eclipse, Netbeans, IntelliJ,… Java có thể chạy trên nhiều nền tảng hệ điều hành khác nhau như Windows,

Mac và các phiên bản khác nhau của UNIX Oracle (và những công ty khác) khuyên người dùng nên gỡ cài đặt các phiên bản Java đã lỗi thời vì những rủi ro nghiêm trọng

Trang 17

4

do các vấn đề bảo mật chưa được giải quyết Vì Java 9, 10, 12, 13 và 14 không còn được hỗ trợ, Oracle khuyên người dùng nên chuyển ngay sang phiên bản mới nhất hoặc bản phát hành được hỗ trợ lâu dài Hiện tại, phiên bản mới nhất của Java Standard Edition (SE) là Java SE16, cùng với các phiên bản được hỗ trợ lâu dài (LTS)

là Java SE 8 và Java SE 11

Các phiên bản Java đã phát hành:

Bảng 2.1: Danh sách phiên bản Java đã phát hành

Phiên bản Ngày phát hành JDK Beta 1995

JDK 1.0 23/01/1996 JDK 1.1 19/02/1997 J2SE 1.2 08/12/1998 J2SE 1.3 08/05/2000 J2SE 1.4 06/02/2002 J2SE 5.0 30/09/2004 Java SE 6 11/12/2006 Java SE 7 28/07/2011 Java SE 8 18/03/2014 Java SE 9 21/09/2017 Java SE 10 20/03/2018 Java SE 11 25/09/2019 Java SE 12 19/03/2019 Java SE 13 17/09/2019 Java SE 14 17/03/2020 Java SE 15 15/09/2020 Java SE 16 16/03/2021 Java SE 17 Dự kiến vào tháng 8/2021

2.1.2 Đặc điểm của Java

- Hướng đối tượng: Trong Java, mọi thứ đều là Object (vật thể) Java có thể

mở rộng vì nó dựa trên mô hình Object

Trang 18

5

Hình 2.1: Lập trình hướng đối tượng trên Java [10]

- Nền tảng độc lập: Không giống như nhiều ngôn ngữ lập trình khác (C, C++),

khi Java được biên dịch, nó không biên dịch sang một máy tính cụ thể trên nền tảng

nào, thay vào đó là những byte code độc lập với nền tảng Byte code này được phân phối trên web và được thông dịch bằng Virtual Machine (JVM) trên bất cứ nền tảng

nào mà nó đang chạy

- Đơn giản: Java được thiết kế để dễ học Chỉ cần hiểu cơ bản về khái niệm lập

trình hướng đối tượng, thì có thể nắm bắt ngôn ngữ này rất nhanh

thống không có virus, giả mạo Các kỹ thuật xác thực dựa trên mã hóa công khai

- Kiến trúc trung lập: Trình biên dịch của Java tạo ra một định dạng file object

có kiến trúc trung lập, làm cho code sau khi biên dịch có thể chạy trên nhiều bộ vi xử

lý, với sự hiện diện của Java runtime system

- Portable: Là kiến trúc trung lập và không phụ thuộc vào việc thực hiện là

những đặc điểm chính nhất khi nói về khía cạnh Portable của Java Trình biên dịch trong Java được viết bằng ANSI C với một ranh giới portable gọn gàng, đó là một subset POSIX (giao diện hệ điều hành linh động) Điều này cho phép nhà phát triển

có thể mang byte code của Java lên bất cứ nền tảng nào

mạnh chủ yếu là kiểm tra lỗi thời gian biên dịch và kiểm tra runtime

- Đa luồng: Với tính năng đa luồng của Java, nhà phát triển có thể viết các

chương trình có thể thực hiện nhiều tác vụ đồng thời Tính năng này cho phép xây

dựng các ứng dụng tương tác có thể chạy trơn tru

Trang 19

6

- Thông dịch: Byte code của Java được dịch trực tiếp tới các nền tảng gốc và

nó không được lưu trữ ở bất cứ đâu

- Hiệu suất cao: Với việc sử dụng trình biên dịch Just-In-Time, Java cho phép

thực thi với hiệu suất cao, nhanh chóng phát hiện, gỡ lỗi

- Phân tán: Java được thiết kế cho môi trường phân tán của Internet

- Linh động: Java được coi là năng động hơn C hay C++ vì nó được thiết kế để

thích nghi với môi trường đang phát triển Các chương trình Java có thể mang theo một lượng lớn thông tin run-time, được sử dụng để xác minh và giải quyết các truy

cập đến đối tượng trong thời gian chạy

2.2 Spring Framework

2.2.1 Tổng quan về Spring

[6]Spring Framework (hay Spring) là một cấu trúc mã nguồn mở có thể được sử

dụng để phát triển các ứng dụng dành cho ngôn ngữ lập trình Java một cách dễ dàng

và với tốc độ nhanh chóng Nó giúp tạo các ứng dụng có hiệu năng cao, dễ kiểm thử,

sử dụng lại code,… Do Spring là một mã nguồn mở, nên có cộng đồng người dùng rất lớn, luôn được phát triển, chia sẻ

Spring nhẹ (kích thước nhỏ, version cơ bản chỉ khoảng 2MB) và trong suốt (hoạt động một cách trong suốt với lập trình viên) Nói cách khác, Spring giúp xử lý cơ sở

hạ tầng trong khi chúng ta chỉ cần tập trung vào việc phát triển ứng dụng của mình

Có lẽ Spring Framework nổi tiếng nhất với sự cung cấp một cách hiệu quả các tính năng cần thiết để tạo ra các ứng dụng thương mại phức tạp, vượt lên khỏi các mô hình lập trình từng chiếm vị trí ưu thế trong lịch sử ngành công nghiệp phần mềm Tiếp theo, nó cũng được ghi nhận về việc đưa các chức năng vốn ít được quen biết vào thực tế, có khi còn vượt cả ra bên ngoài nền tảng Java nữa

Thành quả của việc này là nó đã tạo nên một framework, cung cấp một mô hình nhất quán và làm cho nó có thể áp dụng vào hầu hết các loại ứng dụng được tạo trên nền tảng Java ngày nay Spring được coi như thực thi một cách làm việc dựa trên những thói quen thực hành tốt nhất và những tiêu chuẩn công nghiệp, và đồng thời tạo cơ hội cho những lĩnh vực trong Java sử dụng nó

2.2.2 Các module và kiến trúc của Spring Framework

Để tiện cho các mục đích phát triển ứng dụng mà Spring đã được phân chia thành nhiều dạng module khác nhau:

Trang 20

7

Hình 2.2: Kiến trúc của Spring Framework

Test: Tầng này cung cấp cho người dùng khả năng hỗ trợ kiểm thử với JUnit

và TestNG

Spring Core Container: Bao gồm các module khác như:

- Spring Core, Beans cung cấp tính năng Inversion of Control (IoC) và Dependency Injection (DI)

- Spring Context hỗ trợ đa ngôn ngữ (internationalization), các tính năng Java EE cho người dùng như: EJB, JMX

- Expression Language được mở rộng từ Expresion Language trong JSP Từ đó, cung cấp các hỗ trợ cho quá trình setting hoặc getting các giá trị Hầu hết các method đều sẽ thực hiện cải tiến cho phép truy cập collections, index, các toán

tử logic…

Trang 21

8

AOP, Aspects và Instrumentation: Các module này sẽ giữ nhiệm vụ hỗ trợ

cho các cài đặt lập trình thiên hướng khía cạnh và khả năng hỗ trợ tích hợp với AspectJ

Data Access / Integration: Đây là nhóm bao gồm JDBC, ORM, OXM, JMS

và module Transaction Chúng có khả năng cung cấp giao tiếp cùng với database

Web: Nó hay còn gọi là Spring MVC, đây là một trong những nhóm bao gồm:

Web, Web-Servlet… Nó sẽ hỗ trợ cho việc tạo ra các ứng dụng web

2.3 Spring Boot

2.3.1 Spring Boot là gì? Tác dụng của Spring Boot

[3]Một điểm hạn chế khi người mới bắt đầu với Spring là các bước cấu hình rất phức tạp, người phát triển có thể mất hàng tá thời gian để ứng dụng có thể chạy được Với những hạn chế của Spring, Spring Boot ra đời

Spring Boot là một module trong hệ sinh thái Spring Framework hiện đang được

nhiều lập trình viên lựa chọn vì nó giúp cho các lập trình viên chúng ta đơn giản hóa quá trình lập trình một ứng dụng với Spring, chỉ tập trung vào việc phát triển business cho ứng dụng Spring Boot được coi như là điểm khởi đầu để xây dựng tất cả các ứng dụng dựa trên nền tảng Spring Khi sử dụng Spring Boot, rất nhiều thứ được cải tiến

hỗ trợ người phát triển như:

- Auto Config: tự động cấu hình ứng dụng, người phát triển chỉ cần viết code và tiến hành chạy hệ thống là được

- Dựa trên các Annotation để tạo lập các bean thay vì XML

- Server Tomcat được nhúng ngay trong file JAR build ra và có thể chạy ở bất kỳ đâu mà Java chạy được

Khi sử dụng Spring Boot, người phát triển chỉ cần thao tác các bước đơn giản:

- Sử dụng Spring Initializr: nhập các thông tin của dự án, chọn thư viện cần thiết

và tải code về máy

- Mở mã nguồn và bắt đầu viết code cho ứng dụng

- Có thể chạy ngay trong IDE, hoặc build thành file JAR mà không cần cấu hình config cho server

2.3.2 Các yêu cầu về hệ thống của Spring Boot

[7]Spring Boot phiên bản 2.5.2 yêu cầu phiên bản Java 8 trở lên và đã hỗ trợ tới Java 16 Spring Framework Spring Framework 5.3.8 hoặc cao hơn cũng được yêu cầu

Các công cụ hỗ trợ build mà Spring Boot có thể làm việc được:

Trang 22

9

Bảng 2.2: Build Tool được hỗ trợ bởi Spring Boot

Các Servlet Containers mà Spring Boot hỗ trợ:

Bảng 2.3: Servlet Containers được Spring Boot hỗ trợ

[4]RESTful API là một tiêu chuẩn dùng trong việc thiết kế API cho các ứng dụng

web (thiết kế Web Services) để tiện cho việc quản lý các resource Nó chú trọng vào tài nguyên hệ thống (tệp văn bản, ảnh, âm thanh, video, hoặc dữ liệu động…), bao gồm các trạng thái tài nguyên được định dạng và được truyền tải qua HTTP

REST bao gồm 3 bộ phận cơ bản như: bộ máy chủ ngoài chứa dữ liệu (external server), máy chủ API và máy chủ khách (client) Trong đó, máy khách có thể là bất

cứ thứ gì, ứng dụng trên nền web, thư viện hoặc thậm chí là các phần mềm khác nhau của một phần mềm máy tính

Hình 2.3: REST API Design

Trang 23

10 API (Application Programming Interface) là một tập các quy tắc và cơ chế mà theo đó, một ứng dụng hay một thành phần sẽ tương tác với một ứng dụng hay thành phần khác API có thể trả về dữ liệu mà bạn cần cho ứng dụng của mình ở những kiểu

dữ liệu phổ biến như JSON hay XML

REST (REpresentational State Transfer) là một dạng chuyển đổi cấu trúc dữ liệu, một kiểu kiến trúc để viết API Nó sử dụng phương thức HTTP đơn giản để tạo cho giao tiếp giữa các máy Vì vậy, thay vì sử dụng một URL cho việc xử lý một số thông tin người dùng, REST sử dụng các HTTP method (như GET, POST, PUT, DELETE…) để gửi request đến một URL để xử lý dữ liệu RESTful không quy định logic code ứng dụng và không giới hạn bởi ngôn ngữ lập trình ứng dụng, bất kỳ ngôn ngữ hoặc framework nào cũng có thể sử dụng để thiết kế một RESTful API

2.4.2 Cách thức hoạt động của RESTful

Khi làm việc với server sẽ gồm 4 hoạt động thiết yếu là:

- Lấy dữ liệu ở một định dạng nào đó (JSON,…)

- Tạo mới dữ liệu

- Cập nhật dữ liệu

- Xoá dữ liệu

REST hoạt động chủ yếu dựa vào giao thức HTTP Mỗi trong các hoạt động cơ bản trên sẽ sử dụng những HTTP method riêng Có tất cả 9 loại method, phổ biến nhất là GET, POST, PUT và DELETE:

- GET: được sử dụng để lấy thông tin từ server theo URI đã cung cấp

- HEAD: giống với GET nhưng response trả về không có body, chỉ có header

- POST: gửi thông tin tới sever thông qua các biểu mẫu http

- PUT: ghi đè tất cả thông tin của đối tượng với những gì được gửi lên

- PATCH: ghi đè các thông tin được thay đổi của đối tượng

- DELETE: xóa tài nguyên trên server

- CONNECT: thiết lập một kết nối tới server theo URI

- OPTIONS: mô tả các tùy chọn giao tiếp cho resource

- TRACE: thực hiện một bài test loop – back theo đường dẫn đến resource REST là một kiến trúc thống nhất giúp thiết kế các website để có thể dễ dàng quản lý các tài nguyên Nó không phải là một quy luật buộc bạn phải tuân theo mà đơn giản là một kiến trúc được đề xuất ra và kiến trúc này hiện đang được sử dụng rất phổ biến vì tính đơn giản, dễ hiểu và rất ưu việt của nó Với các ứng dụng web được thiết kế sử dụng RESTful, ban có thể dễ dàng biết được URL và HTTP method

để quản lý một resource

Trang 24

11

2.4.3 Các ràng buộc trong REST

1 Kiến trúc client-server: Server sẽ là tập hợp các services nhỏ xử lý các request

từ client, việc tách biệt giúp tăng tính linh hoạt của client cũng như khả năng mở rộng của server mà vẫn đảm bảo được giao tiếp

2 Stateless (phi trạng thái): Server và client sẽ không lưu trạng thái của nhau, mỗi request và response sẽ chứa đầy đủ thông tin, tách biệt với nhau, điều này giúp

hệ thống dễ phát triển và mở rộng

3 Cacheability (có khả năng cache): Các response có thể được lấy ra từ cache của server giúp giảm thiểu thời gian xử lý, các request phải đảm bảo tính duy nhất để response không bị nhầm lẫn với các request khác

4 Layered system (phân lớp hệ thống): Hệ thống được chia làm nhiều lớp, việc giao tiếp của 1 lớp chỉ được tiến hành với lớp ở trên và lớp ở dưới của nó, khả năng cân bằng tải (load balancing) và cache dữ liệu trong hệ thống cũng sẽ được cải thiện

5 Uniform interface (chuẩn hoá các interface): Đây là ràng buộc quan trọng nhất của hệ thống REST Để đảm bảo ràng buộc này, hệ thống tập trung vào việc xử lý các tài nguyên (resource) Mỗi một resource sẽ được xác định (định danh) bằng một URI (Uniform Resource Identifier) riêng biệt

2.5 Angular (web framework)

2.5.1 Khái niệm Angular Phân biệt giữa Angular và AngularJS

cho công việc thiết kế web Angular được phát triển từ những năm 2009 và được duy trì bởi Google Framework này được xem là framework front-end mạnh mẽ nhất chuyên dụng bởi các lập trình viên cắt HTML cao cấp

Angular được ứng dụng rộng rãi với mục đích xây dựng project Single Page

Application (SPA) Hiện tại, Version stable của Angular là Angular v12.1.1 Trên

thực tế, Angular sở hữu hai phiên bản hoàn toàn khác nhau như sau:

- Phiên bản 1: Phiên bản này có tên chính thức là AngularJS đến hiện nay nó

vẫn đang được phát triển hoàn thiện bởi các chuyên gia Vào năm 2018, thì phiên bản 1.7.3 đã được nhà sản xuất phát hành Đây là phiên bản được hoàn thành thực sự dựa trên Javascript bởi những lập trình viên viết mã theo ngôn ngữ Javascript thì nó thường dễ làm và dễ tìm kiếm Tuy nhiên, hiệu năng khi so sánh với phiên bản ReactJS thì vẫn còn nhiều công ty xây dựng phải cân nhắc sử dụng Angular với phiên bản khác 1

- Phiên bản 2: Phiên bản này được gọi với cái tên chính thức là Angular Nó sở

hữu tư duy thay đổi hoàn toàn với phiên bản thứ 1 và mang lại tham vọng giúp cho Angular có thể đánh bại ReactJS Angular được xem là một trong những framework

Trang 25

12

sở hữu cấu trúc ứng dụng dạng động và cho phép bạn có thể sử dụng HTML như là ngôn ngữ mẫu cũng như mở việc mở rộng cú pháp của HTML Nhờ vậy, việc diễn đạt các thành phần ứng dụng của người lập trình sẽ trở nên súc tích và rõ ràng hơn rất nhiều

2.5.2 Cách thức hoạt động

[11]Các khối xây dựng chính cấu thành nên Angular là: Module, Component, Template, Metadata, Data binding, Service, Directive, Dependency Injection

Hình 2.4: Angular Application Diagram

Modules: Trong Angular một module là nhóm các khối như components,

services, templates, directive, pipes được đóng gói lại để xây dựng các functional unit Một ví dụ về module là httpclient module của Angular, giúp chúng ta thiết lập các giao tiếp trên network Nhiều modules kết hợp với nhau để xây dựng một ứng dụng Angular

Components: là những khối xây dựng UI – chúng thường được tái sử dụng

xuyên suốt module và ứng dụng Một component trong Angular bao gồm class file, file template (HTML template) và file css/scss

Services: là các singleton object classes trong ứng dụng Angular Nhúng

services trong components là một common pattern để chia sẻ dữ liệu qua các components

Trang 26

13

Templates: Là kết hợp giữa HTML view với component class file, template tạo

ra các khối xây dựng của view người dùng

Metadata: được dùng để decorate class và giúp thiết lập cơ bản như:

@Component, @pipe

Data binding: Angular hỗ trợ binding như property, event và attribute từ

component typescript tới template view, với directive ngModel còn cung cấp binding

2 chiều (two-way data binding)

Directives: dùng để hướng dẫn DOM (document object model) Directives đính

kèm các hành vi cụ thể vào DOM và giúp chúng ta biến đổi UI theo business logic hoặc user interactions Bao gồm: Component Directives, Structural Directives, Attribute Directives

Dependency Injection: là cách class trong Angular nhận các dependencies mà

nó cần sử dụng Dependency Injection giúp các dependencies từ class này nhúng sang class khác để sử dụng Dependency Injection được thực hiện thông qua injecting service class vào component hoặc module class

Như diagram trên mô tả hoạt động và thành phần cơ bản của Angular Application Angular component là các khối UI và các component này được đính kèm với template thông qua property và event binding, Directive có thể điều khiển các viewas với mỗi user interaction hoặc data model và logic, *ngIf, *ngFor là các ví

dụ cho directive cung cấp bởi Angular, chúng ta cũng có thể xây dựng directives của riêng mình Directives có thể hoặc không có template hoặc view Depencendy Injection còn là một trong những core feature của Angular framework

2.6 Cơ sở dữ liệu MongoDB

[1]MongoDB là một cơ sở dữ liệu có dạng NoSQL Thuật ngữ NoSQL được giới

thiệu lần đầu vào năm 1998 sử dụng làm tên gọi chung cho các lightweight open source relational database (cơ sở dữ liệu quan hệ nguồn mở nhỏ) nhưng không sử dụng SQL cho truy vấn Vào năm 2009, Eric Evans, nhân viên của Rackspace giới thiệu lại thuật ngữ NoSQL trong một hội thảo về cơ sở dữ liệu nguồn mở phân tán

Sở dĩ người ta phát triển NoSQL xuất phát từ yêu cầu cần những database có khả năng lưu trữ dữ liệu với số lượng cực lớn, truy vấn dữ liệu với tốc độ cao mà không đòi hỏi quá nhiều về năng lực phần cứng cũng như tài nguyên hệ thống và tăng khả năng chịu lỗi

Một số đặc trưng của NoSQL:

- High Scalability: Gần như không có một giới hạn cho dữ liệu và người dùng

trên hệ thống

Trang 27

14

- High Availability: Do chấp nhận sự trùng lặp trong lưu trữ nên nếu một node

(commodity machine) nào đó bị chết cũng không ảnh hưởng tới toàn bộ hệ thống

- Atomicity: Độc lập data state trong các operation

- Consistency: chấp nhận tính nhất quán yếu, có thể không thấy ngay được sự

thay đổi mặc dù đã cập nhật dữ liệu

- Durability: dữ liệu có thể tồn tại trong bộ nhớ máy tính nhưng đồng thời cũng

được lưu trữ lại đĩa cứng

MongoDB lưu trữ dữ liệu theo hướng tài liệu (document), các dữ liệu được lưu trữ kiểu JSON nên truy vấn sẽ rất nhanh

Ưu điểm của MongoDB:

- Số lượng Schema ít: Schema được sinh ra là để nhóm các đối tượng vào 1 cụm, dễ quản lý

- Cấu trúc của một đối tượng rõ ràng

- Các Join khá đơn giản: Điều này cũng góp phần tạo nên tốc độ truy vấn cực nhanh trên mongoDB

- Khả năng mở rộng cực lớn: việc mở rộng dữ liệu mà không phải lo đến các vấn đề như khóa ngoại, khóa chính, kiểm tra ràng buộc, nên việc mở rộng cũng thuận lợi hơn

Mongoose là một Object Data Modeling (ODM) hay còn gọi là một “mô hình

dữ liệu hướng đối tượng” dành cho hệ quản trị cơ sở dữ liệu MongoDB và được viết

bằng NodeJS Công việc của nó là tạo ra mối quan hệ giữa data (dữ liệu) và schema data (mô hình đối tượng của dữ liệu trên code), từ đó nó sẽ biểu diễn đối tượng trong MongoDB bằng đối tượng trên code và ngược lại

Trang 28

15

Hình 2.5: Mô hình Mongoose

Điểm mạnh của việc sử dụng Mongoose là lập trình viên có thể giữ tư duy như với đối tượng của JavaScript thay vì phải ngôn ngữ thuần tuý viết riêng cho cơ sở dữ liệu điều này càng đúng khi phải làm việc với nhiều loại cơ sở dữ liệu (trên cùng hoặc khác trang web)

Trang 29

Với công nghệ 4.0 đang ngày càng phát triển mạnh mẽ như ngày nay, việc sử dụng hệ thống website để lưu trữ, thao tác,… đã giúp một phần không nhỏ cho người quản lý cũng như những người sử dụng đến nó Phương pháp làm việc trực tuyến đang là xu hướng hiện tại và bối cảnh dịch COVID đang gây cản trở cho việc tương tác giữa nhà trường và sinh viên, sự ra đời của website Quản Lý nhằm giúp cho nhà trường cũng như sinh viên có thể dễ dàng quản lý, thông báo, mang lại sự thuận tiện cho mọi người

Dưới đây là công việc của website quản lý đồ án tốt nghiệp cần cung cấp cho khoa Cơ Khí Máy:

- Khách: xem các bài viết, thông báo được đăng trên trang chủ

- Admin, Thư Ký Khoa: quản lí chi tiết các danh mục, đợt đăng ký, đề tài, tài khoản người dùng,…

- Giảng viên: Đăng ký hướng dẫn đề tài, đề xuất đề tài, nhận xét đề tài hướng dẫn/phản biện trong thời gian cho phép đợt đăng ký, xem đề tài đã đăng ký, xem hội đồng đã được phân công

- Cá nhân ngoài trường: Xem hội đồng đã được phân công

- Sinh viên: cập nhật thông tin cá nhân, đăng ký đề tài, đề xuất đề tài, xem đề tài đã đăng ký, upload báo cáo

Trang 30

17

3.2 Xác định yêu cầu

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

3.2.1.1 Yêu cầu chức năng người dùng

a Admin/Thư Ký Khoa

- Quản lý bài viết:

o Xem danh sách bài viết

o Thêm, cập nhật, thay đổi trạng thái bài viết

- Quản lý banner:

o Xem danh sách banner

o Thêm, cập nhật, thay đổi trạng thái, xoá hoàn toàn banner

- Quản lý side-banner:

o Xem danh sách side-banner

o Thêm, cập nhật, thay đổi trạng thái, xoá hoàn toàn side-banner

- Quản lý địa điểm:

o Xem danh sách địa điểm

o Thêm, cập nhật, thay đổi trạng thái địa điểm

- Quản lý thời gian bảo vệ:

o Xem danh sách thời gian bảo vệ

o Thêm, cập nhật, thay đổi trạng thái thời gian bảo vệ

- Quản lý cấu hình hệ thống:

o Xem cấu hình hệ thống

o Thêm, cập nhật, thay đổi trạng thái cấu hình hệ thống

- Quản lý đợt đăng ký:

o Xem danh sách đợt đăng ký

o Thêm, cập nhật, thay đổi trạng thái đợt đăng ký

- Quản lý biểu điểm hội đồng:

o Xem danh sách biểu điểm hội đồng

o Thêm, cập nhật, thay đổi trạng thái biểu điểm hội đồng

- Quản lý biểu điểm nhận xét - GVHD:

o Xem danh sách biểu điểm nhận xét - GVHD

o Thêm, cập nhật, thay đổi trạng thái biểu điểm nhận xét - GVHD

- Quản lý biểu điểm nhận xét - GVPB:

o Xem danh sách biểu điểm nhận xét - GVPB

o Thêm, cập nhật, thay đổi trạng thái biểu điểm nhận xét - GVPB

- Quản lý giảng viên:

o Xem danh sách giảng viên

Trang 31

18

o Thêm, cập nhật, thay đổi trạng thái giảng viên

- Quản lý sinh viên:

o Xem danh sách sinh viên theo tình trạng

o Thêm, cập nhật sinh viên

o Duyệt/Không duyệt thông tin sinh viên

o Admin/Thư Ký Khoa: toàn quyền trên hệ thống

o Giảng viên: đề xuất, đăng ký, nhận xét đề tài trong thời gian cho phép Xem hội đồng đã được phân công Nhận xét hội đồng được phân công

o Cá nhân ngoài trường: Xem hội đồng đã được phân công

o Sinh viên: Cập nhật thông tin cá nhân Đề xuất, đăng ký đề tài sau khi

đã được duyệt thông tin và trong thời gian cho phép Xem đề tài đã đăng ký, upload, chỉnh sửa báo cáo trong thời gian cho phép

- Thông báo hệ thống: hiển thị thông báo khi thực hiện hành động trên hệ thống (thành công/thất bại)

- Bảo mật: kiểm tra quyền người dùng, chỉ cho phép người dùng thực hiện chức năng nhất định Lưu thông tin người thực hiện chức năng (thêm/cập nhật,…)

- Lưu trữ:

o Các danh mục

o Đề tài/đề tài đề xuất

o File hình ảnh (banner/side-banner)

o File báo cáo (document/excel/pdf/…)

o Tài khoản người dùng

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

- UX/UI: bố trí giao diện thân thiện, dễ thao tác

Trang 32

19

- Khả năng xử lý: tốc độ thực hiện chức năng nhanh, hiệu quả Đáp ứng được lượng lớn người dùng truy cập trong cùng một thời điểm

- Khả năng tương thích: đáp ứng được trên nhiều nền tảng, nhiều thiết bị

- Khả năng bảo trì, nâng cấp: thiết kế phù hợp cho việc sửa lỗi, nâng cấp hệ thống

Trang 33

1 Admin Người quản trị viên quản lý toàn bộ hệ thống

2 Thư Ký Khoa Người quản trị viên quản lý toàn bộ hệ thống

3 Giảng Viên Người dùng được cấp quyền, thực hiện các chức năng

thuộc giảng viên

8 Quản lý biểu điểm hội đồng x x

9 Quản lý biểu điểm nhận xét - GVHD x x

10 Quản lý biểu điểm nhận xét - GVPB x x

Trang 34

21

4.2 Use Case Diagram

Hình 4.1: Use Case Diagram

4.3 Đặc tả Use Case

Bảng 4.3: Đặc tả Use Case

Trang 35

22

3.1.3 Xoá hoàn toàn side-banner UC_3.1.3

5.1.1 Cập nhật thời gian bảo vệ UC_5.1.1

8.1.1 Cập nhật biểu điểm hội đồng UC_8.1.1

9.1 Xem danh sách biểu điểm nhận xét - GVHD UC_9.1

9.1.1 Cập nhật biểu điểm nhận xét - GVHD UC_9.1.1

9.2 Thêm biểu điểm nhận xét - GVHD mới UC_9.2

Trang 36

23

10.1 Xem danh sách biểu điểm nhận xét - GVPB UC_10.1

10.1.1 Cập nhật biểu điểm nhận xét - GVPB UC_10.1.1

10.2 Thêm biểu điểm nhận xét - GVPB mới UC_10.2

12.1 Xem danh sách sinh viên theo tình trạng UC_12.1

12.1.2 Duyệt/Không duyệt thông tin sinh viên UC_12.1.2

Trang 37

24

4.3.1 Quản lý bài viết

Hình 4.2: Use case quản lý bài viết

4.3.3.1 Xem danh sách bài viết

Bảng 4.4: Chi tiết use case "xem danh sách bài viết"

Tên use case Xem danh sách bài viết

Mô tả Xem danh sách các bài viết có trong hệ thống

Điều kiện tiên quyết Cần có kết nối Internet

Cần đăng nhập vào hệ thống với quyền admin, thư ký khoa

Hậu điều kiện

1 Từ hệ thống quản trị, chọn cài đặt trang chủ ->

chuyên mục bài viết

viết Ngoại lệ

Trang 38

25 4.3.3.2 Cập nhật bài viết

Bảng 4.5: Chi tiết use case "cập nhật bài viết"

Tên use case Cập nhật bài viết

Mô tả Cập thông tin bài viết

Điều kiện tiên quyết Cần có kết nối Internet

Cần đăng nhập vào hệ thống với quyền admin, thư ký khoa

Hậu điều kiện Success: Thông báo thành công

Fail: Thông báo lỗi và mời nhập lại

1 Chọn chỉnh sửa bài viết tương ứng

trường hợp và cho nhập lại (nhập thiếu trường/không đúng định dạng)

4.3.3.3 Thay đổi trạng thái bài viết

Bảng 4.6: Chi tiết use case "thay đổi trạng thái bài viết"

Tên use case Thay đổi trạng thái bài viết

Mô tả Thay đổi trạng thái của bài viết

Điều kiện tiên quyết Cần có kết nối Internet

Cần đăng nhập vào hệ thống với quyền admin, thư ký khoa

Hậu điều kiện

Trang 39

4.3.3.4 Tìm kiếm bài viết

Bảng 4.7: Chi tiết use case "tìm kiếm bài viết"

Tên use case Tìm kiếm bài viết

Mô tả Tìm kiếm bài viết theo từ khoá

Điều kiện tiên quyết Cần có kết nối Internet

Cần đăng nhập vào hệ thống với quyền admin, thư ký khoa

Hậu điều kiện

1 Từ hệ thống quản trị, chọn quản lý bài viết

viết

3 Nhập thông tin tìm kiếm

theo thông tin tìm kiếm Ngoại lệ

4.3.3.5 Thêm bài viết mới

Bảng 4.8: Chi tiết use case "thêm bài viết mới"

Tên use case Thêm bài viết mới

Mô tả Thêm bài viết mới vào hệ thống

Trang 40

27

Điều kiện tiên quyết Cần có kết nối Internet

Cần đăng nhập vào hệ thống với quyền admin, thư ký khoa

Hậu điều kiện Success: Thông báo thành công

Fail: Thông báo lỗi và mời nhập lại

thông báo và trở về danh sách

Ngoại lệ 4: Khi không thành công sẽ có thông báo lỗi tùy vào

trường hợp và cho nhập lại (nhập thiếu trường/không đúng định dạng)

4.3.2 Quản lý biểu điểm hội đồng

Hình 4.3: Use case quản lý biểu điểm hội đồng

Ngày đăng: 26/12/2022, 15:09

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w