ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM
ĐỒ ÁN 2
ĐỀ TÀI: ỨNG DỤNG NHẮN TIN - GỌI ĐIỆN
TRỰC TUYẾN
Giảng viên hướng dẫn: HUỲNH HỒ THỊ MỘNG TRINH
Sinh viên thực hiện:
VŨ NGỌC THẠCH
– MSSV: 19520266
HUỲNH THỊ MINH NHỰC – MSSV: 19521973
Thành phố Hồ Chí Minh, tháng 6 năm 2022
ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM
ĐỒ ÁN 2
ĐỀ TÀI: ỨNG DỤNG NHẮN TIN - GỌI ĐIỆN
TRỰC TUYẾN
Giảng viên hướng dẫn: HUỲNH HỒ THỊ MỘNG TRINH
Sinh viên thực hiện:
VŨ NGỌC THẠCH
– MSSV: 19520266
HUỲNH THỊ MINH NHỰC – MSSV: 19521973
Thành phố Hồ Chí Minh, tháng 6 năm 2022
Lời cảm ơn
Đồ án 2 là sự nối tiếp của đồ án 1. Trong đồ án này nhóm đã dành rất nhiều nỗ lực
và tâm huyết để xây dựng nên 1 ứng dụng chat với mức độ khó khá cao. Đây là khó khăn
cũng như thử thách mà nhóm đối mặt phải. Đi đơi với đó là việc tiếp tục tích lũy thêm kinh
nghiệm, thực hành những kiến thức đã học, học hỏi những cái mới. Việc hoàn thành đồ án
2 coi như lại là 1 bước tiến lớn của nhóm trên con đường tự học, bên cạnh đó được sự hỗ
trợ tận tình từ giảng viên hướng dẫn là cơ Huỳnh Hồ Thị Mộng Trinh.
Nhóm xin chân thành cảm ơn cơ Huỳnh Hồ Thị Mộng Trinh đã tận tình giúp đỡ
nhóm em hồn thành đồ án 2 của nhóm. Chính nhờ những sự góp ý, động viên của cơ đã
giúp đồ án của nhóm được hồn thiện và chun nghiệp nhiều hơn. Bên cạnh đó, nhóm đã
học hỏi được rất nhiều kiến thức, kinh nghiệm và bài học thú vị trong q trình làm khố
luận, đó sẽ là những hành trang hữu ích cho nhóm sau này.
Nhóm cũng xin chân thành cảm ơn các anh chị, bạn bè đã giúp đỡ nhóm trong q
trình thực hiện đồ án. Nhờ mọi người mà nhóm có nhiều góc nhìn khác nhau về đề tài đang
làm, từ đó giúp hồn thiện đồ án của nhóm.
Một lần nữa, nhóm xin chân thành cảm ơn cô và mọi người.
1
NHẬN XÉT
(Của giáo viên hướng dẫn)
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
2
MỤC LỤC
Lời cảm ơn .......................................................................................................................... 1
CHƯƠNG I: GIỚI THIỆU CHUNG ............................................................................... 6
1. Đề tài ............................................................................................................................ 6
2. Lý do chọn đề tài ........................................................................................................ 6
3. Tóm tắt đề tài .............................................................................................................. 6
4. Mục tiêu đề tài ............................................................................................................ 6
5. Phương pháp nghiên cứu ........................................................................................... 7
6. Ý nghĩa và hướng của đề tài ...................................................................................... 7
6.1. Về mặt tài liệu ........................................................................................................ 7
6.2. Về mặt sản phẩm.................................................................................................... 7
CHƯƠNG II: CÔNG NGHỆ LIÊN QUAN .................................................................... 8
1. Flutter .......................................................................................................................... 8
1.1. Giới thiệu ............................................................................................................... 8
1.2. Lý do sử dụng ........................................................................................................ 8
2. Nodejs .......................................................................................................................... 9
2.1. Giới thiệu ............................................................................................................... 9
2.2. Lý do sử dụng NodeJs ......................................................................................... 10
3. Socket IO ................................................................................................................... 11
3.1. Giới thiệu ............................................................................................................. 11
3.2. Lý do sử dụng SocketIO ...................................................................................... 11
4. Agora ......................................................................................................................... 12
4.1. Giới thiệu ............................................................................................................. 12
4.2. Lý do sử dụng Agora ........................................................................................... 13
5. MySQL ...................................................................................................................... 13
5.1. Giới thiệu ............................................................................................................. 13
CHƯƠNG III: MƠ HÌNH USE-CASE ......................................................................... 16
1. Sơ đồ Use-case mức tổng quát................................................................................. 16
3
2. Danh sách Use-case .................................................................................................. 16
3. Đặc tả Use-case ......................................................................................................... 17
3.1. Đặc tả Use-case “Login” ..................................................................................... 17
3.2. Đặc tả Usecase “Logout” ..................................................................................... 18
3.3. Đặc tả Usecase “AutoLogin” ............................................................................... 19
3.4. Đặc tả Usecase “Link to Meer App” ................................................................... 19
3.5. Đặc tả Usecase “Send Text” ................................................................................ 20
3.6. Đặc tả Usecase “Send Image” ............................................................................. 21
3.7. Đặc tả Usecase “Send File” ................................................................................. 22
3.8. Đặc tả Usecase “Change Name Alias” ................................................................ 23
3.9. Đặc tả Usecase “Call video” ................................................................................ 24
3.10. Đặc tả Usecase “Call audio” .............................................................................. 25
3.11. Đặc tả Usecase “Search Text” ........................................................................... 26
3.12. Đặc tả Usecase “Search Image” ........................................................................ 27
3.13. Đặc tả Usecase “Search File” ............................................................................ 28
3.14. Đặc tả Usecase “Create Group” ......................................................................... 28
3.15. Đặc tả Usecase “Change Avatar” ...................................................................... 29
3.16. Đặc tả Usecase “Rename Group” ...................................................................... 30
3.17. Đặc tả Usecase “Change Joiners” ...................................................................... 31
3.18. Đặc tả Usecase “Check Friend Online” ............................................................. 32
CHƯƠNG IV: PHÂN TÍCH HỆ THỐNG .................................................................... 34
1. Sơ đồ lớp.................................................................................................................... 34
1.1. Sơ đồ lớp mức phân tích ...................................................................................... 34
1.2. Danh sách các lớp đối tượng................................................................................ 34
1.3. Mô tả từng lớp đối tượng ..................................................................................... 35
2. Sơ đồ dữ liệu ............................................................................................................. 39
2.1. Danh sách bảng trong sơ đồ dữ liệu ................................................................... 39
2.2. Bảng ROOM ........................................................................................................ 40
2.3. Bảng User ............................................................................................................ 41
2.4. Bảng Message ...................................................................................................... 42
4
2.5. Bảng UserRoom ................................................................................................... 42
2.6. Bảng Friend.......................................................................................................... 43
3. Sơ đồ hoạt động ........................................................................................................ 44
3.1. Sơ đồ hoạt động tính năng chat: .......................................................................... 44
3.2. Sơ đồ hoạt động tính năng gọi video: .................................................................. 45
CHƯƠNG V: THIẾT KẾ GIAO DIỆN ........................................................................ 46
1. Màn hình Đăng nhập ............................................................................................... 46
2. Màn hình Home ........................................................................................................ 46
3. Màn hình Tin nhắn mới........................................................................................... 48
4. Màn hình Thêm thành viên ..................................................................................... 49
5. Màn hình Nhóm mới ................................................................................................ 50
6. Màn hình Tìm kiếm ................................................................................................. 51
7. Màn hình Chat.......................................................................................................... 51
8. Màn hình Cài đặt đoạn chat.................................................................................... 52
9. Màn hình Hiển thị hình ảnh trong đoạn chat ........................................................ 53
10. Màn hình gọi video: ............................................................................................... 54
CHƯƠNG VI: TỔNG KẾT ............................................................................................ 56
1. Công nghệ sử dụng ................................................................................................... 56
2. Độ hoàn thiện chức năng ......................................................................................... 56
3. Kết quả đạt được và hướng phát triển ................................................................... 56
3.1. Kết quả đạt được .................................................................................................. 56
3.2. Hướng phát triển .................................................................................................. 57
CHƯƠNG VII: BẢNG PHÂN CÔNG CÔNG VIỆC .................................................. 58
CHƯƠNG VIII: TÀI LIỆU THAM KHẢO ................................................................. 60
5
CHƯƠNG I: GIỚI THIỆU CHUNG
1. Đề tài
- Tên đề tài: Xây dựng ứng dụng nhắn tin - gọi điện trực tuyến
- Công nghệ sử dụng: Flutter (frontend) + NodeJs (backend)
- Cơ sở dữ liệu sử dụng: MySQL
2. Lý do chọn đề tài
Ở đồ án 1, nhóm đã làm đề tài hướng tới cộng đồng Thiện nguyện, góp phần giúp
đỡ những người có nhu cầu tình nguyện, đồng thời san sẻ tình yêu thương, đồng cảm với
nhiều người khác.
Tiếp nối việc đó, ở đồ án 2 nhóm mở rộng thêm những tính năng đã có ở đồ án 1,
góp phần xây dựng 1 cộng đồng thiện nguyện ngày càng lớn mạnh, cũng như tăng tính
tương tác giữa những con người có trong cộng đồng.
Ứng dụng chat - gọi điện sẽ góp phần thúc đẩy trao đổi, tương tác giữa những người
có cùng tinh thần thiện nguyện, cũng như mang lại hiệu quả cao khi trao đổi thông tin, chia
sẻ thuận tiện hơn.
3. Tóm tắt đề tài
Trong thời buổi đại dịch hiện nay, việc gọi điện thoại hoặc nhắn tin qua 1 kênh
mạng xã hội là điều rất phổ biển đối với tất cả mọi người. Việc này giúp mọi người vừa
tiết kiệm tiền vừa nhanh chóng, tiện lợi cho dù ở nơi nào. Cộng đồng thiện nguyện đã có
riêng cho mình 1 mạng xã hội dùng để chia sẻ thông tin tại đó rồi, tuy nhiên việc chat giữa
các thành viên có trong 1 sự kiện là điều rất cần thiết. Chính vì thế, ứng dụng nhắn tin, gọi
điện thoại trực tuyến ra đời dành riêng cho cộng đồng thiện nguyện, nhằm nâng cao tính
tương tác cho mọi người trong mơi trường này.
4. Mục tiêu đề tài
- Xây dựng 1 ứng dụng Chat & Gọi điện trực tuyến dành riêng cho cộng đồng
thiện nguyện ở đồ án 1 có khả năng tương tác với độ trễ thấp nhất.
- Tìm hiểu được cơng nghệ thích hợp xây dựng ứng dụng.
- Hồn thành được báo cáo môn học.
6
5. Phương pháp nghiên cứu
- Nghiên cứu các ứng dụng có sẵn trên thị trường, nhận xét được ưu khuyết điểm
của các ứng dụng đó (Messenger, Zalo,...).
- Tìm hiểu các công nghệ mới trên thị trường, nhận xét và chọn ra phần mềm thích
hợp nhất.
- Đánh giá khả năng của nhóm ở mức độ nào, từ đó tìm ra tính năng thích hợp nhất
để phát triển.
6. Ý nghĩa và hướng của đề tài
6.1. Về mặt tài liệu
- Sử dụng nguồn tài liệu tham khảo Flutter, NodeJs, MySQL.
- Có tài liệu đặc tả use-case, sơ đồ lớp, tuần tự, mơ hình thiết kế giao diện.
6.2. Về mặt sản phẩm
- Tạo ra ứng dụng Chat & Gọi điện dành cho Thiện nguyện có khả năng kết nối trực
tuyến.
- Xử lý các vấn đề về hiệu suất của ứng dụng 1 cách hiệu quả.
- Chức năng phù hợp với tình hình thực tế và dễ sử dụng.
7
CHƯƠNG II: CÔNG NGHỆ LIÊN QUAN
1. Flutter
1.1. Giới thiệu
Flutter là nền tảng phát triển ứng dụng đa nền tảng cho iOS và Android do Google
phát triển được sử dụng để tạo ra các ứng dụng gốc (native app) cho Google.
Flutter gồm 2 thành phần quan trọng:
- Một SDK (Software Development Kit): Một bộ sưu tập các công cụ sẽ giúp bạn
phát triển các ứng dụng của mình. Điều này bao gồm các công cụ để biên dịch mã của bạn
thành mã máy gốc (mã cho iOS và Android).
- Một Framework (UI Library based on widgets): Một tập hợp các thành phần giao
diện người dùng (UI) có thể tái sử dụng (button, text inputs, slider, v.v.) giúp bạn có thể cá
nhân hóa tùy theo nhu cầu của riêng mình.
Tính năng nổi bật của Flutter:
- Flutter hiện đã và đang là một react framework.
- Sử dụng ngơn ngữ lập trình Dart đơn giản và dễ học.
- Phát triển ứng dụng nhanh.
- Giao diện người dùng rất đẹp và linh hoạt.
- Hỗ trợ rất nhiều widget khác nhau.
- Thể hiện cùng một UI trên nhiều nền tảng.
- Ứng dụng có hiệu năng cao.
1.2. Lý do sử dụng
Phát triển ứng dụng nhanh chóng: Tính năng hot reload giúp bạn nhanh chóng
8
và dễ dàng thử nghiệm, xây dựng giao diện người dùng, thêm tính năng và sửa lỗi nhanh
hơn. Trải nghiệm tải lại lần thứ hai, mà không làm mất trạng thái, trên emulator, simulator
và device cho iOS và Android.
Giao diện người dùng đẹp và thu hút: Thỏa mãn người dùng của bạn với các
widget built-in đẹp mắt của Flutter theo Material Design và Cupertino (iOS-flavor), các
giao diện lập trình ứng dụng (API) chuyển động phong phú, scroll tự nhiên mượt mà và tự
nhận thức được nền tảng.
Framework hiện đại: Dễ dàng tạo giao diện người dùng của bạn với framework
hiện đại của Flutter và tập hợp các platform, layout và widget phong phú. Giải quyết các
thách thức giao diện người dùng khó khăn của bạn với các API mạnh mẽ và linh hoạt cho
2D, animation, gesture, hiệu ứng và hơn thế nữa.
2. Nodejs
2.1. Giới thiệu
- NodeJS là một nền tảng (platform) phía Server side được xây dựng, vận hành trên
V8 JavaScript runtime của Chrome giúp xây dựng và phát triển các ứng dụng mạng một
cách nhanh chóng và có khả năng mở rộng dễ dàng.
- Node.js ra mắt vào năm 2009, bởi Ryan Dahl và nhận sự bảo trợ từ công ty Joyent
(Hoa Kỳ).
- Phần core bên dưới của Node.js hầu hết được viết bằng C++. Chính vì thế mà tốc
độ xử lý và hiệu năng khá cao.
- Bên cạnh đó, Node.js cịn tạo ra ứng dụng có tốc độ xử lý nhanh với thời gian thực
(real-time).
- Node.js cũng được áp dụng để tạo các sản phẩm có lượng truy cập lớn, mở rộng
nhanh và đổi mới công nghệ… hoặc tạo dự án startup tiết kiệm thời gian nhất.
9
Tính năng của NodeJs bao gồm:
- Bất đồng bộ và phát sinh sự kiện (Non-blocking and Event Driven): Tất các các
APIs của thư viện Node.js đều bất đồng bộ (non-blocking), NodeJS không cần đợi một
API trả về dữ liệu. Server chuyển sang một API khác sau khi gọi nó và có cơ chế riêng để
gửi thơng báo và nhận phản hồi về các hoạt động của Node.js và API đã gọi.
- Tốc độ nhanh: Phần core phía dưới được viết gần như toàn bộ bằng C++ kết hợp
Chrome V8 Engine nên tốc độ xử lý công việc của Node.js cực nhanh, nhưng vẫn đảm bảo
được tính chuẩn xác.
- Đơn giản – Hiệu năng cao: Node.js sử dụng một mơ hình luồng đơn luồng (single
thread) và các sự kiện lặp (event-loop). Cơ chế sự kiện cho phép phía Server trả về phản
hồi theo non-blocking, đồng thời tăng hiệu quả sử dụng. Các luồng đơn cung cấp dịch vụ
cho nhiều request hơn hẳn Server truyền thống.
- Không lưu bộ nhớ đệm (non buffer): Nền tảng Node.js khơng có vùng nhớ đệm,
tức khơng cung cấp khả năng lưu trữ dữ liệu buffer.
2.2. Lý do sử dụng NodeJs
- Các ứng dụng Nodejs được viết bằng javascript, ngôn ngữ này là một ngôn ngữ
khá thông dụng. Theo tác giả của ngôn ngữ Javascript, Ryan Dahl: “Javascript có những
đặc tính mà làm cho nó rất khác biệt so với các ngơn ngữ lập trình động cịn lại, cụ thể là
nó khơng có khái niệm về đa luồng, tất cả là đơn luồng và hướng sự kiện.”
- Nodejs chạy đa nền tảng phía Server, sử dụng kiến trúc hướng sự kiện Eventdriven, cơ chế non-blocking I/O làm cho nó nhẹ và hiệu quả.
10
- Có thể chạy ứng dụng Nodejs ở bất kỳ đâu trên máy Mac – Window – Linux,
hơn nữa cộng đồng Nodejs rất lớn và hồn tồn miễn phí. Các bạn có thể thấy cộng đồng
Nodejs lớn như thế nào tại đây, các package đều hoàn toàn free: />- Các ứng dụng NodeJS đáp ứng tốt thời gian thực và chạy đa nền tảng, đa thiết
bị.
3. Socket IO
3.1. Giới thiệu
Để xây dựng một ứng dụng realtime cần sử dụng socketio. Socketio sẽ giúp các bên
ở những địa điểm khác nhau kết nối với nhau, truyền dữ liệu ngay lập tức thơng qua server
trung gian. Socketio có thể được sử dụng trong nhiều ứng dụng như chat, game online, cập
nhật kết quả của một trận đấu đang xảy ra,...
Socketio không phải là một ngôn ngữ, mà chỉ là 1 công cụ giúp thực hiện những
ứng dụng realtime. Vì thế, khơng thể sử dụng socketIo để thay thế hoàn toàn cho một ngôn
ngữ, mà phải sử dụng kết hợp với một ngôn ngữ khác. Ngơn ngữ đó có thể là php, asp.net,
nodejs,...
Cấu trúc một ứng dụng realtime sử dụng socket bao gồm 2 phần: phía server, phía
client.
- Phía server Đây là nơi sẽ cài đặt socket io. Ngôn ngữ để dựng server có thể là php,
asp.net, nodejs,... Tuy nhiên, tùy vào ngơn ngữ lựa chọn mà cách cấu trúc server khác nhau.
Ở đây, nếu được thì khuyến khích sử dụng nodejs để dựng server, vì như vậy có thể cài
trực tiếp socketio vào cùng một server. Nếu sử dụng php thì phải cài thêm những package
khác, hoặc phải chuẩn bị riêng server để chạy socketio.
- Phía client: Ở phía client sẽ xây dựng giao diện người dùng. Ở đây có thể sử dụng
js, hoặc các thư viện của js như jquery,... Nói chung là ngơn ngữ gì cũng được.
3.2. Lý do sử dụng SocketIO
Nền tảng này sở hữu ưu điểm về tính bảo mật, khả năng kết nối tự động với server,
hỗ trợ mã hóa nhị phân, phương thức kết nối đơn giản.
Tính bảo mật cao
Socket IO hình thành tựu trên nền tảng Engine.IO với khả năng kích hoạt phương
11
thức long-polling phục vụ q trình kết nối. Tiếp đó nền tảng này lại sử dụng một số giao
thức cải tiến hơn, chẳng hạn như Websocket.
Socket IO sở hữu ưu điểm về tính bảo mật, khả năng kết nối tự động với server
Nhớ vào quy trình thiết lập chặt chẽ, Socket IO khơng khó để tạo nhiều kết nối bảo mật.
Ví như Proxy, cân bằng tải, tường lửa hoặc phần mềm diệt virus.
Kết nối dễ dàng với server
Socket IO có khả năng tạo kết nối thuận lợi với máy chủ server. Giả dụ như khi quá
trình khởi chạy bị gián đoạn giữa server và client, Socket IO lập tức khôi phục kết nối,
phục hồi server.
Socket IO có khả năng tạo kết nối thuận lợi với máy chủ server và máy khách client. Đặc
biệt tính năng trên hồn tồn có thể tùy chỉnh, dùng có quyền lựa chọn khơng tiến hành kết
nối tự động với server nào đó.
Hỗ trợ mã hóa nhị phân
Hiện nay, tính năng hỗ trợ mã hóa nhị phân đã thích hợp trên Socket IO. Nó gần
giống với ArrayBuffer, Blob tích hợp trên trình duyệt hoặc trong Node.js.
Hỗ trợ tạo kênh đơn giản
Socket IO cho phép người từng tạo kênh một cách đơn giản. Có nghĩa với Socket
IO, bạn có thể tạo mối liên kết giữa từng module riêng lẻ để tạo ra nhiều kênh riêng biệt.
Bên cạnh chức năng tạo kênh, Socket IO còn hỗ trợ để các client tham gia gửi thơng báo
đến nhóm người dùng có kết nối với thiết bị trong mạng lưới.
4. Agora
4.1. Giới thiệu
Trước khi tìm hiểu về Agora, có 1 khái niệm mới cần hiểu qua, đó chính là nền tảng
WebRTC.
WebRTC là viết tắt của cụm từ Web Real-Time Communication rất được các lập
trình viên ưa chuộng. WebRTC cho phép các trình duyệt giao tiếp với nhau theo thời gian
thực .Ví dụ như: gọi điện, video, chơi game,… Ngoài ra, WebRTC là một sản phẩm của
World Wide Web Consortium (W3C).
12
Agora là 1 dịch vụ được thiết kế dựa trên nền tảng WebRTC. Agora RTM (Nhắn
tin thời gian thực) SDK cung cấp dịch vụ đám mây nhắn tin toàn cầu với độ tin cậy cao,
độ trễ thấp và đồng thời cao. Bạn có thể sử dụng RTM SDK để nhanh chóng triển khai các
tình huống nhắn tin trong thời gian thực.
4.2. Lý do sử dụng Agora
Nhóm chúng em chọn Agora vì những ngun nhân sau:
Chi phí thấp:
Khơng cần tốn bất kỳ loại phí nào để tạo tài khoản và đăng ký phịng chat riêng.
Q trình đăng ký và tạo tài khoản cũng rất đơn giản.
Linh hoạt, dễ dàng:
Tài liệu hướng dẫn document rất kỹ lưỡng, tạo token cho mỗi phòng call đơn giản,
có hiệu lực tới tận 24 tiếng, chỉ qua vài bước thiết lập trên app và sử dụng.
Hỗ trợ đầy đủ cho ứng dụng:
Agora có thư viện riêng dành cho Flutter client, vì thế giúp nhóm tiết kiệm được rất
nhiều thời gian và công sức.
5. MySQL
5.1. Giới thiệu
MySQL là một hệ thống quản trị cơ sở dữ liệu mã nguồn mở (Relational Database
Management System, viết tắt là RDBMS) hoạt động theo mơ hình client-server. RDBMS
13
là một phần mềm hay dịch vụ dùng để tạo và quản lý các cơ sở dữ liệu (Database) theo
hình thức quản lý các mối liên hệ giữa chúng.
MySQL là một trong số các phần mềm RDBMS. RDBMS và MySQL thường được
cho là một vì độ phổ biến quá lớn của MySQL. Các ứng dụng web lớn nhất như Facebook,
Twitter, YouTube, Google, và Yahoo! đều dùng MySQL cho mục đích lưu trữ dữ liệu. Kể
cả khi ban đầu nó chỉ được dùng rất hạn chế nhưng giờ nó đã tương thích với nhiều hạ tầng
máy tính quan trọng như Linux, macOS, Microsoft Windows, và Ubuntu.
5.2. Lý do sử dụng MySQL
Đây là bảng đánh giá xếp hạng của các mơ hình Database
MySQL không phải là hệ quản lý cơ sở dữ liệu (RDBMS) duy nhất trên thị trường,
nhưng nó đích thực phổ biến nhất và chỉ xếp sau Oracle Database khi xét đến những thơng
số chính như số lượng tìm kiếm, profile người dùng trên LinkedIn, và lượng thảo luận trên
các diễn đàn internet. Lý do chính vì sao rất nhiều ông lớn công nghệ phụ thuộc vào
MySQL là gì? Các lý do quan trọng như sau:
Linh hoạt và dễ dùng
Bạn có thể sửa source code để đáp ứng nhu cầu của bạn mà khơng phải thanh tốn
thêm bất kỳ chi phí nào. Q trình cài đặt cũng rất đơn giản và thường không quá 30 phút.
Hiệu năng cao
Nhiều server clusters sử dụng MySQL. Bất kể bạn lưu trữ dữ liệu lớn của các trang
thương mại điện tử hoặc những hoạt động kinh doanh nặng nề liên quan đến công nghệ
thông tin, MySQL cũng có thể đáp ứng được với tốc độ cao, mượt mà.
14
Tiêu chuẩn trong ngành
Ngành công nghệ và dữ liệu đã sử dụng MySQL nhiều năm, vì vậy nó là một kỹ
năng căn bản một chuyên gia lập trình. Người dùng MySQL cũng có thể triển khai dự án
nhanh và thuê các chuyên gia dữ liệu với mức phí nếu họ cần.
An tồn
An tồn dữ liệu ln là vấn đề quan trọng nhất khi chọn phần mềm RDBMS. Với
hệ thống phân quyền truy cập và quản lý tài khoản, MySQL đặt tiêu chuẩn bảo mật rất cao.
Mã hóa thơng tin đăng nhập và chứng thực từ host đều khả dụng.
15
CHƯƠNG III: MƠ HÌNH USE-CASE
1. Sơ đồ Use-case mức tổng quát
2. Danh sách Use-case
Ý nghĩa / ghi chú
STT
Tên Usecase
1
Login
Đăng nhập vào ứng dụng
2
Logout
Thoát khỏi ứng dụng
3
AutoLogin
4
Link to Meer App
5
Send Text
6
Send Image
Tự động đăng nhập nếu trước đó chưa Logout
Tự động kết nối tới Meer App
Gửi tin nhắn chữ
Gửi hình ảnh
16
Gửi file
7
Send File
8
Change Name Alias
9
Call video
Gọi video trực tuyến
10
Call audio
Gọi audio trực tuyến
11
Search Text
12
Search Image
13
Search File
14
Create Group
15
Change Avatar
Thay đổi ảnh đại diện của nhóm chat
16
Rename Group
Đổi tên phịng chat
17
Change Joiners
Thay đổi thành viên trong phòng chat
18
Check Friend Online
Đổi biệt hiệu thành viên trong phịng chat
Tìm kiếm theo chữ
Tìm kiếm hình ảnh đã gửi trong phịng chat
Tìm kiếm file đã gửi trong phịng chat
Tạo nhóm chat mới
Kiểm tra bạn bè online
3. Đặc tả Use-case
3.1. Đặc tả Use-case “Login”
Mô tả
Tác nhân
Người dùng đăng nhập vào ứng dụng nhắn tin.
Người dùng
Hành vi của tác nhân
1. Người dùng mở ứng dụng.
Luồng chính
2. Nhập tài khoản, mật khẩu
vào.
3. Bấm nút đăng nhập.
17
Hành vi của hệ thống
4. Hệ thống kiểm tra tài khoản và
mật khẩu.
5. Nếu tài khoản hợp lệ, hệ thống sẽ
chuyển tiếp vào màn hình Home.
Sai tên đăng nhập hoặc mật khẩu:
Luồng thay thế
5. Hệ thống thông báo tên đăng nhập hoặc mật khẩu sai.
6. Người dùng thực hiện lại B2.
Điều kiện trước
Điều kiện sau
Điện thoại phải có kết nối mạng.
Thành cơng:
Thất bại:
CSDL khơng thay đổi.
CSDL không thay đổi.
3.2. Đặc tả Usecase “Logout”
Mô tả
Tác nhân
Người dùng đăng xuất khỏi ứng dụng nhắn tin.
Người dùng
Hành vi của tác nhân
Hành vi của hệ thống
1. Người đang ở ứng dụng.
Luồng chính
2. Bấm vào nút thốt.
3. Hệ thống sẽ chuyển về màn hình
Login.
Luồng thay thế
Khơng có
Điều kiện trước
Điện thoại phải có kết nối mạng.
Điều kiện sau
Thành cơng:
Thất bại:
CSDL không thay đổi.
CSDL không thay đổi.
18
3.3. Đặc tả Usecase “AutoLogin”
Mô tả
Tác nhân
Tự đăng nhập vào ứng dụng nếu trước đó người dùng chưa đăng
xuất
Người dùng
Hành vi của tác nhân
Hành vi của hệ thống
1. Người mở ứng dụng lên
Luồng chính
2. Hệ thống sẽ tự động đăng nhập.
3. Hệ thống chuyển vào màn hình
Home
Luồng thay thế
Khơng có
Điều kiện trước
Điện thoại phải có kết nối mạng.
Điều kiện sau
Thành công:
Thất bại:
CSDL không thay đổi.
CSDL không thay đổi.
3.4. Đặc tả Usecase “Link to Meer App”
Mô tả
Tác nhân
Mở Meer App khi muốn tạo tài khoản mới.
Người dùng
Hành vi của tác nhân
Hành vi của hệ thống
1. Người mở ứng dụng lên.
Luồng chính
2. Bấm vào nút Tạo tài khoản
3. Hệ thống sẽ kiểm tra người dùng
có tải phần mềm Meer App chưa.
19
4. Nếu có, mở ứng dụng Meer App
lên.
5. Tự động thực hiện Use case Sign
up trên Meer App.
Người dùng chưa cài đặt ứng dụng Meer App:
Luồng thay thế
5. Hệ thống thơng báo u cầu cài Meer App để có thể đăng ký tài
khoản.
Điều kiện trước
Điều kiện sau
Điện thoại phải có kết nối mạng.
Phải cài ứng dụng Meer App trước đó.
Thành công:
Thất bại:
CSDL không thay đổi.
CSDL không thay đổi.
3.5. Đặc tả Usecase “Send Text”
Mô tả
Tác nhân
Người dùng gửi tin nhắn chữ trong chat.
Người dùng
Hành vi của tác nhân
Hành vi của hệ thống
1. Người đăng nhập vào ứng
dụng..
2. Vào phịng chat mình muốn
Luồng chính
gửi tin nhắn.
3. Gõ văn bản vào ơ nhắn tin.
4. Nhấn nút gửi
5. Hệ thống sẽ lưu tin nhắn về
CSDL.
20
6. Hệ thống gửi thông báo cho tất cả
thành viên có trong phịng chat đó
về tin nhắn mới.
Kết nối mạng có vấn đề khi gửi tin nhắn:
5. Nếu có kết nối mạng lại, tin nhắn sẽ tự động gửi đi, thực hiện tiếp
Luồng thay thế
tục bước 5 trong luồng chính.
6. Ngược lại, tin nhắn sẽ tự động báo lỗi hoặc biến mất khi người
dùng thoát ứng dụng.
Điều kiện trước
Điện thoại phải có kết nối mạng.
Đã đăng nhập vào hệ thống.
Thất bại:
Thành công:
Điều kiện sau
- Tin nhắn được thêm vào CSDL không thay đổi.
CSDL.
3.6. Đặc tả Usecase “Send Image”
Mô tả
Tác nhân
Người dùng gửi hình trong chat.
Người dùng
Hành vi của tác nhân
1. Người đăng nhập vào ứng
dụng..
Luồng chính
2. Vào phịng chat mình muốn
gửi tin nhắn.
3. Bấm vào nút Gửi file
phương tiện.
21
Hành vi của hệ thống
4. Chọn hình mình mà mình
muốn gửi.
5. Bấm nút gửi.
6. Hệ thống sẽ lưu tin nhắn về
CSDL.
7. Hệ thống gửi thơng báo cho tất cả
thành viên có trong phịng chat đó
về tin nhắn mới.
Kết nối mạng có vấn đề khi gửi tin nhắn:
6. Nếu có kết nối mạng lại, tin nhắn sẽ tự động gửi đi, thực hiện tiếp
Luồng thay thế
tục bước 5 trong luồng chính.
7. Ngược lại, tin nhắn sẽ tự động báo lỗi hoặc biến mất khi người
dùng thốt ứng dụng.
Điều kiện trước
Điện thoại phải có kết nối mạng.
Đã đăng nhập vào hệ thống.
Thất bại:
Thành công:
Điều kiện sau
- Tin nhắn được thêm vào CSDL không thay đổi.
CSDL.
3.7. Đặc tả Usecase “Send File”
Mơ tả
Tác nhân
Luồng chính
Người dùng gửi file trong chat.
Người dùng
Hành vi của tác nhân
22
Hành vi của hệ thống
1. Người đăng nhập vào ứng
dụng..
2. Vào phịng chat mình muốn
gửi tin nhắn.
3. Bấm vào nút Gửi file.
4. Chọn file mình mà mình
muốn gửi.
5. Bấm nút gửi.
6. Hệ thống sẽ lưu tin nhắn về
CSDL.
7. Hệ thống gửi thông báo cho tất cả
thành viên có trong phịng chat đó
về tin nhắn mới.
Kết nối mạng có vấn đề khi gửi tin nhắn:
5. Nếu có kết nối mạng lại, tin nhắn sẽ tự động gửi đi, thực hiện tiếp
Luồng thay thế
tục bước 5 trong luồng chính.
6. Ngược lại, tin nhắn sẽ tự động báo lỗi hoặc biến mất khi người
dùng thoát ứng dụng.
Điều kiện trước
Điện thoại phải có kết nối mạng.
Đã đăng nhập vào hệ thống.
Thất bại:
Thành công:
Điều kiện sau
- Tin nhắn được thêm vào CSDL không thay đổi.
CSDL.
3.8. Đặc tả Usecase “Change Name Alias”
Mô tả
Đổi biệt hiệu của người dùng trong chat.
23