ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM
BÁO CÁO ĐỒ ÁN 1
ỨNG DỤNG QUẢN LÝ CÂU LẠC BỘ TRONG TRƯỜNG HỌC
Giảng viên hướng dẫn: ThS. Mai Trọng Khang
Sinh viên thực hiện 1: Phạm Xuân Bách – 19521233
Sinh viên thực hiện 2: Nguyễn Tiến Đạt – 19521345
Lớp:
SE121.M21
Thành phố Hồ Chí Minh, ngày 10 tháng 6 năm 2022
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM
BÁO CÁO ĐỒ ÁN 1
ỨNG DỤNG QUẢN LÝ CÂU LẠC BỘ TRONG TRƯỜNG HỌC
Giảng viên hướng dẫn: ThS. Mai Trọng Khang
Sinh viên thực hiện 1: Phạm Xuân Bách – 19521233
Sinh viên thực hiện 2: Nguyễn Tiến Đạt – 19521345
Lớp:
SE121.M21
Thành phố Hồ Chí Minh, ngày 10 tháng 6 năm 2022
Lời mở đầu
Đầu tiên, nhóm chúng em xin gởi lời cảm ơn chân thành đến tập thể quý Thầy Cô
Trường Đại học Công nghệ thông tin – Đại học Quốc gia TP.HCM đã giúp cho nhóm
chúng em có những kiến thức cơ bản làm nền tảng để thực hiện đề tài này.
Đặc biệt, nhóm chúng em xin gửi lời cảm ơn và lòng biết ơn sâu sắc nhất tới Thầy
Mai Trọng Khang. Đã giúp nhóm chúng em hồn thành tốt báo cáo mơn học của mình.
Trong thời gian một học kỳ thực hiện đề tài, nhóm chúng em đã vận dụng những
kiến thức nền tảng đã tích lũy đồng thời kết hợp với việc học hỏi và nghiên cứu những
kiến thức mới. Từ đó, nhóm chúng em vận dụng tối đa những gì đã thu thập được để
hồn thành một báo cáo đồ án tốt nhất. Tuy nhiên, trong quá trình thực hiện, nhóm chúng
em khơng tránh khỏi những thiếu sót. Chính vì vậy, nhóm chúng em rất mong nhận được
những sự góp ý từ phía các Thầy Cơ nhằm hồn thiện những kiến thức mà nhóm chúng
em đã học tập và là hành trang để nhóm chúng em thực hiện tiếp các đề tài khác trong
tương lai.
Nhóm em xin chân thành cảm ơn quý Thầy Cô!
1
NHẬN XÉT CỦA GIẢNG VIÊN
………………………………………………………………………………………………....
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
2
Mục lục
Danh mục hình ảnh .......................................................................................................... 6
Danh mục bảng biểu......................................................................................................... 8
Chương I Tổng quan ...................................................................................................... 11
1.
Lý do chọn đề tài .............................................................................................. 11
2.
Mục tiêu ............................................................................................................ 12
3.
Phạm vi ............................................................................................................. 12
4.
Người dùng ....................................................................................................... 13
5.
Phương pháp nghiên cứu .................................................................................. 13
Chương II Cơ sở lý thuyết & Tổng quan công nghệ...................................................... 14
1.
Giới thiệu về React JS ...................................................................................... 14
2.
Giới thiệu về MongoDB ................................................................................... 14
3.
4.
2.1.
Các đặc điểm cơ bản của MongoDB ......................................................... 14
2.2.
Ưu nhược điểm của MongoDB.................................................................. 15
Kiến trúc hệ thống ............................................................................................ 18
3.1.
Kiến trúc hệ thống...................................................................................... 18
3.2.
Mô hình kiến trúc hệ thống ........................................................................ 18
Mơ tả chi tiết thành phần trong hệ thống .......................................................... 19
Chương III Phân tích thiết kế ứng dụng ......................................................................... 20
1.
Yêu cầu nghiệp vụ ............................................................................................ 20
1.1.
Danh sách yêu cầu nghiệp vụ .................................................................... 20
3
2.
3.
4.
5.
Use case ............................................................................................................ 22
2.1.
Mơ hình Use Case ...................................................................................... 22
2.2.
Danh sách các Actor .................................................................................. 27
2.3.
Danh sách các Use case ............................................................................. 29
Acivity .............................................................................................................. 62
3.1.
Cập nhật thông tin đối tượng ..................................................................... 62
3.2.
Quản lý task công việc ............................................................................... 64
Sequence ........................................................................................................... 66
4.1.
Đăng nhập .................................................................................................. 66
4.2.
Thêm thành viên ........................................................................................ 67
4.3.
Thêm nhóm ................................................................................................ 68
4.4.
Xóa nhóm ................................................................................................... 69
4.5.
Thêm tài khoản .......................................................................................... 70
4.6.
Cập nhật câu lạc bộ .................................................................................... 71
4.7.
Cập nhật nhóm ........................................................................................... 71
4.8.
Xóa thành viên ........................................................................................... 72
4.9.
Thêm câu lạc bộ ......................................................................................... 74
4.10.
Thêm hoạt động ...................................................................................... 75
4.11.
Thêm phiếu quỹ (thu/chi) ....................................................................... 76
4.12.
Chặn câu lạc bộ ...................................................................................... 77
4.13.
Chặn tài khoản ........................................................................................ 78
Sơ đồ lớp ........................................................................................................... 79
4
6.
7.
5.1.
Sơ đồ lớp (Mức phân tích) ......................................................................... 79
5.2.
Danh sách các lớp đối tượng và quan hệ ................................................... 81
5.3.
Mô tả chi tiết từng đối tượng ..................................................................... 81
Thiết kế CSDL .................................................................................................. 90
6.1.
Sơ đồ logic ................................................................................................. 90
6.2.
Mô tả chi tiết các thành phần trong sơ đồ logic ......................................... 91
Thiết kế giao diện ............................................................................................. 95
7.1.
Danh sách các màn hình ............................................................................ 95
7.2.
Mơ tả chi tiết các màn hình........................................................................ 97
8.
Component diagram ....................................................................................... 125
9.
Deploy diagram .............................................................................................. 126
Chương IV Tổng kết .................................................................................................... 126
1.
Kết quả ............................................................................................................ 126
1.1.
Sản phẩm: ................................................................................................ 126
2.
Hạn chế ........................................................................................................... 127
3.
Hướng phát triển ............................................................................................. 127
Bảng phân công công việc ........................................................................................... 127
Tài liệu tham khảo ........................................................................................................ 127
5
Danh mục hình ảnh
Hình 1 Khả năng mở rộng Horizontal Scalability ......................................................... 17
Hình 2 Mơ hình Client – Server ..................................................................................... 18
Hình 3 Chi tiết thành phần trong hệ thống ..................................................................... 19
Hình 4 Use case tổng quát .............................................................................................. 22
Hình 5 Use case đăng nhập ............................................................................................ 23
Hình 6 Use case quản lý tài khoản ................................................................................. 23
Hình 7 Use case quản lý câu lạc bộ ............................................................................... 24
Hình 8 Use case quản lý thành viên ............................................................................... 24
Hình 9 Use case quản lý nhóm ....................................................................................... 25
Hình 10 Use case quản lý hoạt động .............................................................................. 25
Hình 11 Use case quản lý quỹ ........................................................................................ 26
Hình 15 Sơ đồ tuần tự chức năng thêm thành viên ........................................................ 67
Hình 16 Sơ đồ tuần tự chức năng thêm nhóm................................................................ 68
Hình 17 Sơ đồ tuần tự chức năng xóa nhóm .................................................................. 69
Hình 18 Sơ đồ tuần tự chức năng thêm tài khoản .......................................................... 70
Hình 19 Sơ đồ tuần tự chức năng cập nhật câu lạc bộ ................................................... 71
Hình 20 Sơ đồ tuần tự chức năng cập nhật nhóm .......................................................... 72
Hình 21 Sơ đồ tuần tự chức năng xóa thành viên .......................................................... 73
Hình 22 Sơ đồ tuần tự chức năng thêm câu lạc bộ ........................................................ 74
Hình 23 Sơ đồ tuần tự chức năng thêm hoạt động ......................................................... 75
Hình 24 Sơ đồ tuần tự chức năng thêm phiếu thu/chi.................................................... 76
Hình 25 Sơ đồ tuần tự chức năng chặn câu lạc bộ ......................................................... 77
Hình 26 Sơ đồ tuần tự chức năng chặn tài khoản .......................................................... 78
Hình 27 Sơ đồ lớp (mức phân tích) ................................................................................ 80
Hình 28 Sơ đồ logic ....................................................................................................... 90
6
Hình 29 Giao diện đăng nhập ........................................................................................ 97
Hình 30 Giao diện slideBar ............................................................................................ 98
Hình 31 Giao diện slideBarClub .................................................................................. 100
Hình 32 Giao diện lịch hoạt động ................................................................................ 102
Hình 33 Giao diện Tab câu lạc bộ của tơi .................................................................... 103
Hình 34 Giao diện Thêm câu lạc bộ ............................................................................ 104
Hình 35 Giao diện tin nhắn cá nhân ............................................................................. 105
Hình 36 Giao diện Tab quản lý câu lạc bộ ................................................................... 107
Hình 37 Giao diện chỉnh sửa câu lạc bộ ...................................................................... 108
Hình 38 Giao diện chỉnh sửa câu lạc bộ ...................................................................... 109
Hình 39 Giao diện chỉnh sửa câu lạc bộ ...................................................................... 109
Hình 40 Giao diện tab quản lý tài khoản ..................................................................... 111
Hình 41 Giao diện tab thơng tin cá nhân ..................................................................... 112
Hình 42 Giao diện tab thơng tin cá nhân ..................................................................... 113
Hình 43 Giao diện Tab hoạt động trong câu lạc bộ ..................................................... 114
Hình 44 Giao diện Thêm hoạt động ............................................................................. 115
Hình 45 Giao diện Chi tiết hoạt động .......................................................................... 116
Hình 46 Giao diện chi tiết hoạt động ........................................................................... 116
Hình 47 Giao diện Tab thành viên ............................................................................... 117
Hình 48 Giao diện Tab nhóm ....................................................................................... 119
Hình 49 Giao diện Thêm thành viên ............................................................................ 120
Hình 50 Giao diện Thêm nhóm mới ............................................................................ 121
Hình 51 Giao diện Tab tin nhắn nhóm ......................................................................... 122
Hình 52 Giao diện Tab quỹ câu lạc bộ......................................................................... 123
Hình 53 Giao diện Thêm phiếu thu/chi ........................................................................ 124
Hình 54 Component diagram ....................................................................................... 125
Hình 55 Deploy diagram .............................................................................................. 126
7
Danh mục bảng biểu
Bảng 1 Danh sách yêu cầu nghiệp vụ ............................................................................ 21
Bảng 2 Danh sách các Actor .......................................................................................... 28
Bảng 3 Danh sách các Use Case .................................................................................... 29
Bảng 4 Chức năng đăng nhập ........................................................................................ 31
Bảng 5 Chức năng quản lý câu lạc bộ ............................................................................ 32
Bảng 6 Chức năng thêm thông tin.................................................................................. 34
Bảng 7 Chức năng sửa thông tin .................................................................................... 36
Bảng 8 Chức năng xóa thơng tin .................................................................................... 37
Bảng 9 Chức năng tìm kiếm thơng tin ........................................................................... 39
Bảng 10 Chức năng chặn quyền truy cập....................................................................... 40
Bảng 11 Chức năng thêm hoạt động .............................................................................. 42
Bảng 12 Chức năng thêm thẻ ......................................................................................... 45
Bảng 13 Chi tiết thẻ hoạt động ....................................................................................... 46
Bảng 14 Tìm kiếm thành viên ........................................................................................ 48
Bảng 15 Thêm thành viên .............................................................................................. 50
Bảng 16 Xóa thành viên ................................................................................................. 51
Bảng 17 Thêm nhóm ...................................................................................................... 53
Bảng 18 Chỉnh sửa nhóm ............................................................................................... 55
Bảng 19 Xóa nhóm......................................................................................................... 56
Bảng 20 Tin nhắn ........................................................................................................... 58
Bảng 21 Tìm kiếm phiếu thu/chi .................................................................................... 59
Bảng 22 Thêm phiếu thu/chi .......................................................................................... 61
Bảng 23 Mô tả trạng thái câp nhật đối tượng ................................................................. 63
8
Bảng 24 Mô tả trạng thái quản lý task công việc ........................................................... 65
Bảng 25 Danh sách các lớp đối tượng và quan hệ ......................................................... 81
Bảng 26 Danh sách thuộc tính của tài khoản ................................................................. 82
Bảng 27 Danh sách các tính năng của tài khoản ............................................................ 82
Bảng 28 Danh sách thuộc tính của câu lạc bộ................................................................ 83
Bảng 29 Danh sách các tính năng của câu lạc bộ .......................................................... 84
Bảng 30 Danh sách thuộc tính của Group...................................................................... 84
Bảng 31 Danh sách các phương thức của Group ........................................................... 86
Bảng 32 Danh sách thuộc tính của Activity ................................................................... 86
Bảng 33 Danh sách các phương thức của Activity ........................................................ 87
Bảng 34 Danh sách thuộc tính của ActivityCard ........................................................... 87
Bảng 35 Danh sách thuộc tính của FundHistory............................................................ 87
Bảng 36 Danh sách các phương thức của FundHistory ................................................. 88
Bảng 37 Danh sách thuộc tính của ChatRoom .............................................................. 88
Bảng 38 Danh sách các phương thức của ChatRoom .................................................... 88
Bảng 39 Danh sách thuộc tính của Message .................................................................. 89
Bảng 40 Danh sách các phương thức của Message ....................................................... 89
Bảng 41 Các dữ liệu trong Sơ đồ logic .......................................................................... 90
Bảng 42 Các thành phần của User ................................................................................. 91
Bảng 43 Các thành phần của Admin .............................................................................. 92
Bảng 44 Các thành phần của FundHistory..................................................................... 92
Bảng 45 Các thành phần của Leader .............................................................................. 92
Bảng 46 Các thành phần của Treasure ........................................................................... 93
Bảng 47 Các thành phần của Club ................................................................................. 93
Bảng 48 Các thành phẩn của Group............................................................................... 94
Bảng 49 Các thành phần của Activity ............................................................................ 94
Bảng 50 Các thành phần của ActivityCard .................................................................... 94
9
Bảng 51 Các thành phần của ChatRoom ....................................................................... 95
Bảng 52 Các thành phần của Message ........................................................................... 95
Bảng 53 Danh sách các màn hình giao diện .................................................................. 96
Bảng 54 Đối tượng trên màn hình Đăng nhập ............................................................... 97
Bảng 55 Danh sách biến cố và xử lý tương ứng của màn hình Đăng nhập ................... 97
Bảng 56 Đối tượng trên SlideBar ................................................................................... 99
Bảng 57 Biến cố và xử lý tương ứng trên SlideBar ....................................................... 99
Bảng 58 Đối tượng trên SlideBarClub ......................................................................... 101
Bảng 59 Biến cố và xử lý tương ứng trên SlideBarClub ............................................. 101
Bảng 60 Đối tượng trên Lịch hoạt động ...................................................................... 102
Bảng 61 Biến cố và xử lý tương ứng trên Lịch hoạt động ........................................... 103
Bảng 62 Đối tượng trên Tab câu lạc bộ của tôi ........................................................... 103
Bảng 63 Biến cố và xử lý tương ứng trên Tab câu lạc bộ của tôi ................................ 104
Bảng 64 Đối tượng trên Thêm CLB ............................................................................ 105
Bảng 65 Biến cố và xử lý tương ứng trên Thêm CLB ................................................. 105
Bảng 66 Đối tượng trên tab tin nhắn ............................................................................ 106
Bảng 67 Biến cố và xử lý tương ứng trên tab tin nhắn ................................................ 106
Bảng 68 Đối tượng trên Tab quản lý CLB ................................................................... 107
Bảng 69 Biến cố và xử lý tương ứng trên Tab quản lý CLB ....................................... 108
Bảng 70 Đối tượng trên Màn hình chỉnh sửa CLB ...................................................... 110
Bảng 71 Biến cố và xử lý tương ứng Màn hình chỉnh sửa CLB.................................. 110
Bảng 72 Đối tượng trên Tab quản lý tài khoản ............................................................ 112
Bảng 73 Biến cố và xử lý tương ứng của tab quản lý tài khoản .................................. 112
Bảng 74 Đối tượng của Thông tin cá nhân .................................................................. 113
Bảng 75 Biến cố và xử lý tương ứng của Thông tin cá nhân ....................................... 114
Bảng 76 Đối tượng của Tab hoạt động ........................................................................ 114
Bảng 77 Biến cố và xử lý tương ứng của Tab hoạt động............................................. 115
10
Bảng 78 Đối tượng của Thêm hoạt động ..................................................................... 116
Bảng 79 Biến cố và xử lý tương ứng của Thêm hoạt động ......................................... 116
Bảng 80 Biến cố và xử lý tương ứng của Giao diện chi tiết hoạt động ....................... 117
Bảng 81 Đối tượng của Tab thành viên ....................................................................... 118
Bảng 82 Biến cố và xử lý tương ứng của Tab thành viên ............................................ 118
Bảng 83 Đối tượng của tab nhóm ................................................................................ 119
Bảng 84 Biến cố và xử lý tương ứng của tab nhóm ..................................................... 120
Bảng 85 Đối tượng của Tab thêm thành viên/nhóm .................................................... 121
Bảng 86 Biến cố và xử lý tương ứng của thêm thành viên, thêm nhóm ...................... 122
Bảng 87 Đối tượng của tab nhắn tin nhóm .................................................................. 122
Bảng 88 Biến cố và xử lý tương ứng của tab nhắn tin nhóm ....................................... 123
Bảng 89 Đối tượng của Tab quỹ .................................................................................. 123
Bảng 90 Biến cố và xử lý tương ứng của Tab quỹ ...................................................... 124
Bảng 91 Đối tượng của thêm phiếu ............................................................................. 124
Bảng 92 Biến cố và xử lý tương ứng của thêm phiếu .................................................. 125
Bảng 93 Phân công công việc ...................................................................................... 127
Chương I Tổng quan
1. Lý do chọn đề tài
Ngày nay, ứng dụng công nghệ thông tin và việc tin học hóa được xem là một trong
những yếu tố mang tính quyết định trong hoạt động của các chính phủ, tổ chức, cũng
như các cơng ty, trường học, cửa hàng, nó đóng vai trị hết sức quan trọng có thể tạo ra
những bước đột phá mạnh mẽ.
Việc xây dựng các trang web để phục vụ cho các nhu cầu riêng của các tổ chức,
công ty, trường học thậm chí các cá nhân, ngày nay, khơng lấy gì làm xa lạ. Đối với lĩnh
11
vực trường học, hoạt động, học tập, liên kết các nhóm cũng trở nên ngày càng cấp thiết.
Trường học cũng cần quản lý rất nhiều lĩnh vực, như quản lý giáo viên, quản lý học sinh,
quản lý bảng điểm, bảng hoạt động, …Và việc quản lý các nhóm, câu lạc bộ cũng phải
ngoại lệ. Vì vậy ứng dụng cơng nghệ vào lĩnh vực này ngày càng phổ biến. Với một vài
thao tác đơn giản, nhanh chóng, một người bất kì có thể dễ dàng quản lý mọi cơng việc
của mình trên mọi thiết bị.
Dựa vào kiến thức đã được học, sự cần thiết của vấn đề em đã “Xây dựng ứng dụng
quản lý câu lạc bộ trong trường”. Tuy việc xây dựng ứng dụng cịn nhiều khó khăn và
thiếu sót nhưng đã giúp chúng em có thêm nhiều kiến thức và sự học hỏi, tạo bước phát
triển cho sau này.
2. Mục tiêu
• Nghiên cứu tổng quan về các nghiệp vụ, hoạt động, các quy trình của câu lạc bộ.
• Nghiên cứu trên cơ sở lý thuyết việc phát triển hệ thống thơng tin quản lý câu lạc
bộ trong trường.
• Xây dựng hệ thống thông tin quản lý câu lạc bộ trong trường giúp cho việc quản
lý trở nên đơn giản hơn, nằm rõ thơng tin hơn.
3. Phạm vi
Quy trình quản lý các câu lạc bộ, hoạt động, thành viên, tài khoản, tin nhắn nhóm
và cá nhân, quản lý quỹ của câu lạc bộ.
Các vấn đề cần giải quyết trong quá trình quản câu lạc bộ, ví dụ như:
• Theo dõi tin nhắn nhóm, tin nhắn cá nhân.
• Theo dõi, quản lý hoạt động, quản lý quỹ theo thời gian và quản lý
tài khoản.
• Thêm, xóa, sửa và tra cứu tìm kiếm thơng tin của thành viên và nhóm
thành viên.
12
• Từ đó tiến hành xây dựng cơ sở dữ liệu và khai thác dữ liệu phục vụ
công tác quản lý câu lạc bộ.
4. Người dùng
Hệ thống phần mềm hướng về phía người dùng là giúp người quản lý câu lạc bộ
tiết kiệm được nhiều công sức và thời gian, mang lại nhiều lợi ích cho việc quản lý trong
câu lạc bộ, có độ chính xác cao.
5. Phương pháp nghiên cứu
• Phương pháp hệ thống, phương pháp tư duy.
• Phương pháp phân tích, tổng hợp.
• Phương pháp tin học hóa bằng cơng cụ lập trình để giải quyết vấn đề.
13
Chương II Cơ sở lý thuyết & Tổng quan
công nghệ
1. Giới thiệu về React JS
React.js 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 hồ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 javasscript 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.
2. Giới thiệu về MongoDB
2.1. Các đặc điểm cơ bản của MongoDB
• Mỗi cơ sở dữ liệu bao gồm nhiều collection, mỗi collection lại chứa nhiều
Document. Mỗi Document có thể khác nhau về số lượng các trường dữ
liệu. Kích thước và nội dung của mỗi Document đều có thể khác nhau.
• Cấu trúc của Document phù hợp với việc các nhà phát triển xây dựng các
class và object bằng các ngơn ngữ lập trình tương ứng. Các nhà phát triển
sẽ thường phát biểu rằng cấu trúc của họ khơng có các hàng và các cột
nhưng vẫn có một cấu trúc dữ liệu rõ ràng với các cặp key-value.
• Nếu như các bạn đã biết trước về NoSQL, các hàng (hay có thể là
documents được gọi trong MongoDB) khơng cần phải định nghĩa schema.
Thay vào đó, các trường có thể được tạo linh hoạt.
14
• Mơ hình dữ liệu có sẵn trong MongoDB cho phép bạn biểu diễn quan hệ
phân cấp, lưu trữ các mảng, và các cấu trúc phức tạp dễ dàng hơn.
2.2. Ưu nhược điểm của MongoDB
2.2.1.
Ưu điểm
Open Source:
• MongoDB là phần mềm mã nguồn mở miễn phí, có cộng đồng phát triển
rất lớn.
Hiệu năng cao:
• Tốc độ truy vấn (find, update, insert, delete) của MongoDB nhanh hơn hẳn
so với các hệ quản trị cơ sở dữ liệu quan hệ (RDBMS).
• Thử nghiệm cho thấy tốc độ insert, tốc độ insert của MongoDB có thể
nhanh tới gấp 100 lần so với MySQL (So sánh hiệu suất của MongoDB
với MySQL)
Tại sao MongoDB có hiệu năng cao như thế? Có các lý do sau:
• MongoDB lưu dữ liệu dạng JSON, khi bạn insert nhiều đối tượng thì nó
sẽ là insert một mảng JSON gần như với trường hợp insert 1 đối tượng.
• Dữ liệu trong MongoDB khơng có sự ràng buộc lẫn nhau như trong
RDBMS, khi insert, xóa hay update nó khơng cần phải mất thời gian kiểm
tra xem có thỏa mãn các bảng liên quan như trong RDBMS.
• Dữ liệu trong MongoDB được đánh chỉ mục (đánh index) nên khi truy vấn
nó sẽ tìm rất nhanh.
• Khi thực hiện insert, find… MongoDB sẽ khóa các thao tác khác lại, ví dụ
khi nó thực hiện find(), trong q trình find mà có thêm thao tác insert,
update thì nó sẽ dừng hết lại để chờ find() xong đã.
Dữ liệu linh hoạt:
15
• MongoDB là document database, dữ liệu lưu dưới dạng JSON, khơng bị
bó buộc về số lượng field, kiểu dữ liệu… bạn có thể insert thoải mái dữ
liệu mà mình muốn.
Là Rich Query Language:
• MongoDB là một rich query language tức là nó có sẵn các method để thực
hiện create, read, update, delete dữ liệu (CRUD)
Tính sẵn có:
• MongoDB hỗ trợ replica set nhằm đảm bảo việc sao lưu và khơi phục dữ
liệu.
Khả năng mở rộng Horizontal Scalability:
• Trong MongoDB có một khái niệm cluster là cụm các node chứa dữ liệu
giao tiếp với nhau, khi muốn mở rộng hệ thống ta chỉ cần thêm một node
với vào cluster:
16
Hình 1 Khả năng mở rộng Horizontal Scalability
2.2.2.
Nhược điểm
• MongoDB khơng có các tính chất ràng buộc như trong RDBMS –> dễ bị
làm sai dữ liệu.
• Khơng hỗ trợ join giống như RDBMS nên khi viết function join trong code
ta phải làm bằng tay khiến cho tốc độ truy vấn bị giảm.
• Sử dụng nhiều bộ nhớ: do dữ liệu lưu dưới dạng key-value, các collection
chỉ khác về value do đó key sẽ bị lặp lại. Khơng hỗ trợ join nên sẽ bị dữ
thừa dữ liệu (trong RDBMS thì ta chỉ cần lưu 1 bản ghi rồi các bản ghi
khác tham chiếu tới cịn trong MongoDB thì khơng).
17
• Bị giới hạn kích thước bản ghi: mỗi document khơng được có kích thước
> 16Mb và khơng mức độ các document con trong 1 document không được
> 100.
3. Kiến trúc hệ thống
3.1. Kiến trúc hệ thống
• Trang web được xây dựng trên nền MERN STACK.
• Sử dụng API để kết nối với MongoDB.
3.2. Mơ hình kiến trúc hệ thống
- Kiến trúc hệ thống theo mơ hình Client – Sever.
+ Tầng Client (là một máy tính (Host)): Tầng có khả năng nhận thông tin hoặc
sử dụng một dịch vụ cụ thể từ các nhà cung cấp dịch vụ (Server).
+ Tầng Sever: Tầng cung cấp các thông tin (dữ liệu) hoặc quyền truy cập vào các
dịch vụ cụ thể.
Hình 2 Mơ hình Client – Server
18
+ Tầng Web (sẽ kết nối với tầng Sever & Client): Thành phần giao diện của
chương trình tương tác với người sử dụng.
4. Mô tả chi tiết thành phần trong hệ thống
• Mơ hình client-server là một mơ hình nổi tiếng trong mạng máy tính, được áp
dụng rất rộng rãi và là mơ hình của mọi trang web hiện có. Ý tưởng của mơ hình
này là máy con (đóng vài trò là máy khách) gửi một yêu cầu (request) để máy
chủ (đóng vai trị người cung ứng dịch vụ), máy chủ sẽ xử lý và trả kết quả về
cho máy khách. Trong mơ hình này, chương trình ứng dụng được chia thành 2
thành phần: Server và Client. Client hay còn gọi là máy khách, nó bao gồm máy
tính và các thiết bị điện tử nói chung. Server hay cịn gọi là máy chủ, là nơi cài
đặt các chương trình dịch vụ và lưu trữ tài nguyên.
Hình 3 Chi tiết thành phần trong hệ thống
Việc yêu cầu của máy khách, đáp ứng, xử lý, và phản hồi của máy chủ tạo thành
một dịch vụ. Dịch vụ này hoạt động trên nền web nên nó được gọi là dịch vụ web
(hay web service).
19
Ngoài ra, việc giao tiếp giữa Client với Server phải dựa trên các giao thức chuẩn.
Các giao thức chuẩn được sử dụng phổ biến nhất hiện nay là : giao thức TCP/IP,
giao thức SNA của IBM, OSI, ISDN, X.25 hay giao thức LAN-to-LAN NetBIOS.
• Client
Khi nói đến Client (khách hàng), thì nó có nghĩa là một người hay một tổ chức sử
dụng một dịch vụ cụ thể nào đó. Trong thế giới kỹ thuật số cũng tương tự như
vậy. Client là một máy tính (Host), tức là có khả năng nhận thông tin hoặc sử
dụng một dịch vụ cụ thể từ các nhà cung cấp dịch vụ (Server).
• Sever
Tương tự như vậy, khi nói đến Server thì nó có nghĩa là một máy chủ hay một
phương tiện phục vụ các dịch vụ nào đó. Trong lĩnh vực cơng nghệ thì Server là
một máy tính từ xa. Nó cung cấp các thông tin (dữ liệu) hoặc quyền truy cập vào
các dịch vụ cụ thể. Vì vậy, về cơ bản thì trong mơ hình Client và Server, Client
là đối tượng u cầu một thứ gì đó. Server thì phục vụ nó, miễn là nó có mặt trong
cơ sở dữ liệu.
Chương III Phân tích thiết kế ứng dụng
1. Yêu cầu nghiệp vụ
1.1. Danh sách yêu cầu nghiệp vụ
Stt Tên yêu cầu
Biểu mẫu
Qui định
Ghi chú
1
Quản lý tài khoản
Tạo, chặn
2
Quản lý câu lạc bộ
Tạo, chặn, xóa,
cập nhật
3
Quản lý thành viên
Tạo, cập nhật,
xóa
20
4
Quản lý hoạt động
Tạo
5
Quản lý nhóm
Tạo, sửa, xóa
6
Quản lý quỹ
Tạo phiếu
7
Hội thoại trực tuyến
Nhắn tin, gửi
tệp
Bảng 1 Danh sách yêu cầu nghiệp vụ
21
2. Use case
2.1. Mơ hình Use Case
2.1.1.
Use case tổng qt
Hình 4 Use case tổng quát
22
2.1.2.
Use case đăng nhập
Hình 5 Use case đăng nhập
2.1.3.
Use case quản lý tài khoản
Hình 6 Use case quản lý tài khoản
23