Tải bản đầy đủ (.pdf) (115 trang)

XÂY DỰNG ỨNG DỤNG NHẮN TIN

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (9.15 MB, 115 trang )

Năm: 2023
TÊN ĐỀ TÀI: XÂY DỰNG ỨNG DỤNG NHẮN TIN
Nguyễn Văn Hoàn

ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
KHOA CÔNG NGHỆ SỐ

ĐỒ ÁN TỐT NGHIỆP
ĐẠI HỌC
NGÀNH: CÔNG NGHỆ THÔNG TIN
CHUYÊN NGÀNH: CÔNG NGHỆ THÔNG TIN
ĐỀ TÀI:

XÂY DỰNG ỨNG DỤNG NHẮN TIN

Sinh viên thực hiện
Mã sinh viên
Lớp
Người hướng dẫn

: Nguyễn Văn Hoàn
: 191150531018
: 19T2
: TS. Nguyễn Tấn Thuận

Đà Nẵng, 06/2023


ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT


KHOA CÔNG NGHỆ SỐ

ĐỒ ÁN TỐT NGHIỆP
ĐẠI HỌC
NGÀNH: CÔNG NGHỆ THÔNG TIN
CHUYÊN NGÀNH: CÔNG NGHỆ THÔNG TIN

ĐỀ TÀI:

XÂY DỰNG ỨNG DỤNG NHẮN TIN

Sinh viên thực hiện
Mã sinh viên
Lớp
Người hướng dẫn

: Nguyễn Văn Hoàn
: 1911505310218
: 19T2
: TS. Nguyễn Tấn Thuận
Giảng viên hướng dẫn duyệt

Đà Nẵng, 06/2023


NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN

...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................

...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
Xác nhận của Giảng viên hướng dẫn
(Ký, ghi rõ họ tên)

i


NHẬN XÉT CỦA GIẢNG VIÊN PHẢN BIỆN

...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................

...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
Xác nhận của Giảng viên phản biện
(Ký, ghi rõ họ tên)

ii


TÓM TẮT

Tên đề tài: Xây dựng ứng dụng nhắn tin.
Sinh viên thực hiện: Nguyễn Văn Hoàn.
Mã SV: 1911505310218

Lớp: 19T2.

Đồ án với đề tài Xây dựng ứng dụng nhắn tin được xây dựng bằng ngơn ngữ lập trình
Dart, sử dụng Flutter và sử dụng hệ quản trị cơ sở dữ liệu MongoDB. Server được viết bằng
ngôn ngữ NodeJS.
Ứng dụng nhắn tin là một dịch vụ và ứng dụng phần mềm tin nhắn tức thời chia sẻ
giao tiếp bằng ký tự và giọng nói. Cho phép người dùng trị chuyện với bạn bè, người thân.

iii


NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
Giảng viên hướng dẫn: TS. Nguyễn Tấn Thuận.

Sinh viên thực hiện: Nguyễn Văn Hoàn. Mã SV: 1911505310218.
1. Tên đề tài:
Xây dựng ứng dụng nhắn tin.
2. Các số liệu, tài liệu ban đầu:
− Dựa trên quy định upload tài liệu, các qui tắc đặt câu hỏi.
− Tài liệu tham khảo:
3. Nội dung chính của đồ án:
Quá trình xây dựng ứng dụng nhắn tin:
− Thu thập thơng tin tài liệu liên quan và khảo sát thực tế.
− Phân tích thiết kế các chức năng của hệ thống.
− Phân tích thiết kế cơ sơ dữ liệu.
− Thiết kế giao diện cho các chức năng.
− Xây dựng hệ thống app.
− Kiểm thử chương trình.
− Hồn thành báo cáo tổng hợp.
4. Các sản phẩm dự kiến
− Ứng dụng nhắn tin.
− File báo cáo hoàn chỉnh.
5. Ngày giao đồ án: 21/02/2023
6. Ngày nộp đồ án: 11/06/2023
Đà Nẵng, ngày
tháng
năm 2023
Người hướng dẫn

Trưởng Bộ môn

iv



LỜI NÓI ĐẦU

Lời đầu tiên, em xin gửi lời cảm ơn chân thành đến quý thầy cô đã giúp đỡ chúng em
thực hiện đề tài này. Đặc biệt là TS. Nguyễn Tấn Thuận đã tận tình giúp đỡ em trong suốt
quá trình thực hiện đề tài tốt nghiệp này.
Đồng thời, em cũng xin cảm ơn quý thầy cô thuộc ngành Công nghệ thông tin khoa
Công nghệ số, trường Đại học Sư phạm Kỹ thuật - Đại học Đà Nẵng đã truyền đạt những
kiến thức cần thiết và những kinh nghiệm quý báu cho chúng em trong suốt thời gian 4 năm
trên giảng đường để em có thể thực hiện tốt đề tài này. Đặc biệt, em xin gởi lời cảm ơn chân
thành tới TS. Nguyễn Tấn Thuận đã giúp đỡ em rất nhiều trong q trình học tập và cơng
việc.
Trong quá trình thực hiện đề tài, do kiến thức và thời gian cịn hạn chế nên khơng thể
tránh khỏi những sai sót. Vì vậy em mong q thầy, cơ thơng cảm và góp ý để em có thể
hồn thiện đề tài. Và những lời góp ý đó có thể giúp em có thể tránh được những sai lầm sau
này.
Em xin chân thành cảm ơn!
Đà Nẵng, ngày

tháng

năm 2023

Sinh viên thực hiện

v


CAM ĐOAN

Em xin cam đoan:

- Những nội dung trong luận văn này do em thực hiện dưới sự hướng dẫn của thầy
Nguyễn Tấn Thuận.
- Mọi tham khảo trong luận văn đều được trích dẫn rõ ràng tên tác giả, tên cơng
trình, thời gian, địa điểm cơng bố.
- Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, em xin chịu
hoàn toàn trách nhiệm.
Sinh viên thực hiện

vi


MỤC LỤC
NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN ....................................................... i
NHẬN XÉT CỦA GIẢNG VIÊN PHẢN BIỆN ......................................................... ii
TÓM TẮT .................................................................................................................... iii
NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP .......................................................................... iv
LỜI NÓI ĐẦU ................................................................................................................v
CAM ĐOAN ................................................................................................................. vi
MỤC LỤC ................................................................................................................... vii
DANH MỤC BẢNG BIỂU ....................................................................................... xiii
DANH MỤC HÌNH VẼ ............................................................................................. xiv
DANH MỤC CHỮ VIẾT TẮT TIẾNG VIỆT ....................................................... xvii
DANH MỤC CHỮ VIẾT TẮT TIẾNG ANH ....................................................... xviii
MỞ ĐẦU .........................................................................................................................1
1.

Lý do chọn đề tài ...............................................................................................1

2.


Mục tiêu đề tài ...................................................................................................1

3.

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

Đối tượng nghiên cứu..................................................................................1

3.2.

Pham vi nghiên cứu .....................................................................................2

4.

Phương pháp nghiên cứu ..................................................................................2

5.

Giải pháp công nghệ ..........................................................................................2

6.

Cấu trúc đồ án ...................................................................................................2

CHƯƠNG 1.

CƠ SỞ LÝ THUYẾT .........................................................................3

1.1. Flutter Framework ............................................................................................3

1.1.1.

Flutter là gì? ................................................................................................3

1.1.2.

Lịch sử phát triển.........................................................................................3

1.1.3.

Kiến trúc khung ...........................................................................................3

1.2. Ngôn ngữ lập trình Dart ...................................................................................3
1.2.1.

Dart là gì? ....................................................................................................3

1.2.2.

Các thư viện ................................................................................................4

1.2.3.

Nền tảng ......................................................................................................4

1.3. MongoDB ...........................................................................................................4
1.3.1.

Khái niệm ....................................................................................................4


1.3.2.

Lịch sử .........................................................................................................5
vii


1.4. Node.js ................................................................................................................5
CHƯƠNG 2.

PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG .....................................6

2.1. Khảo sát yêu cầu người dùng ...........................................................................6
2.2. Mô tả nghiệp vụ .................................................................................................6
2.2.1.

Danh sách Actors ........................................................................................6

2.2.2.

Xác định use-case của hệ thống ..................................................................6

2.3. Biểu đồ UseCase.................................................................................................8
2.3.1.

Biểu đồ Usecase Tổng quát .........................................................................8

2.3.2.

UseCase Đăng ký và đăng nhập ..................................................................9


2.3.3.

UseCase Quản lý hồ sơ ...............................................................................9

2.3.4.

UseCase Xem danh sách liên hệ ...............................................................10

2.3.5.

UseCase Tìm kiếm ....................................................................................10

2.3.6.

UseCase Gửi tin nhắn ................................................................................11

2.3.7.

UseCase Gửi hình ảnh video .....................................................................11

2.3.8.

UseCase Gửi Audio ...................................................................................12

2.3.9.

UseCase Gửi File ......................................................................................12

2.3.10. Usecase Gọi video .....................................................................................13
2.3.11. UseCase Bày tỏ cảm xúc tin nhắn .............................................................13

2.4. Đặc tả UseCase.................................................................................................13
2.4.1.

Đăng ký .....................................................................................................13

2.4.2.

Đăng nhập .................................................................................................14

2.4.3.

Đăng xuất ..................................................................................................15

2.4.4.

Gửi tin nhắn ...............................................................................................15

2.4.5.

Chia sẻ vị trí của tơi ..................................................................................16

2.4.6.

Chỉnh sửa hồ sơ cá nhân............................................................................17

2.4.7.

Gọi video ...................................................................................................18

2.4.8.


Xóa cuộc gọi khỏi lịch sử cuộc gọi ...........................................................18

2.4.9.

Phản hồi tin nhắn .......................................................................................19

2.4.10. Bày tỏ cảm xúc tin nhắn ............................................................................19
2.4.11. Tạo nhóm chat ...........................................................................................20
2.4.12. Thêm liên hệ vào nhóm chat .....................................................................20
2.4.13. Rời khỏi nhóm chat ...................................................................................21
2.4.14. Xem liên hệ ...............................................................................................21
2.4.15. Gỡ hoặc thu hồi tin nhắn ...........................................................................22
viii


2.4.16. Ghim tin nhắn ............................................................................................22
2.4.17. Chặn tài khản người dùng .........................................................................23
2.4.18. Thêm bạn bè ..............................................................................................23
2.4.19. Chấp nhận lời mời kết bạn ........................................................................23
2.4.20. Tìm kiếm ...................................................................................................24
2.4.21. Thống kê ....................................................................................................24
2.4.22. Quản lý người dùng ...................................................................................25
2.4.23. Quản lý nhóm ............................................................................................25
2.5. Biểu đồ hoạt động ............................................................................................26
2.5.1.

Đăng nhập .................................................................................................26

2.5.2.


Đăng xuất ..................................................................................................27

2.5.3.

Đăng ký .....................................................................................................28

2.5.4.

Gửi tin nhắn văn bản .................................................................................29

2.5.5.

Bày tỏ cảm xúc tin nhắn ............................................................................30

2.5.6.

Phản hồi tin nhắn .......................................................................................31

2.5.7.

Chia sẻ vị trí của tơi ..................................................................................32

2.5.8.

Chỉnh sửa hồ sơ cá nhân............................................................................33

2.5.9.

Rời khỏi nhóm chat ...................................................................................34


2.5.10. Gọi video ...................................................................................................35
2.5.11. Tạo nhóm chat ...........................................................................................36
2.5.12. Thêm liên hệ vào nhóm chat .....................................................................37
2.5.13. Rời khỏi nhóm chat ...................................................................................38
2.5.14. Quản lý Liên hệ .........................................................................................39
2.5.15. Gỡ hoặc thu hồi tin nhắn ...........................................................................40
2.5.16. Chặn trang cá nhân ....................................................................................41
2.5.17. Thêm bạn bè ..............................................................................................42
2.5.18. Chấp nhận lời mời kết bạn ........................................................................43
2.5.19. Tìm kiếm ...................................................................................................44
2.5.20. Thống kê ....................................................................................................45
2.5.21. Quản lý người dùng ...................................................................................46
2.5.22. Quản lý nhóm ............................................................................................47
2.6. Biểu đồ tuần tự ................................................................................................48
2.6.1.

Đăng nhập .................................................................................................48

2.6.2.

Đăng ký .....................................................................................................48
ix


2.6.3.

Đăng xuất ..................................................................................................49

2.6.4.


Gửi tin nhắn văn bản .................................................................................49

2.6.5.

Phản hồi tin nhắn .......................................................................................49

2.6.6.

Bày tỏ cảm xúc tin nhắn ............................................................................50

2.6.7.

Chia sẻ vị trí của tơi ..................................................................................51

2.6.8.

Chỉnh sửa hồ sơ cá nhân............................................................................51

2.6.9.

Rời khỏi nhóm chat ...................................................................................52

2.6.10. Gọi video ...................................................................................................52
2.6.11. Tạo nhóm chat ...........................................................................................53
2.6.12. Thêm liên hệ vào nhóm chat .....................................................................53
2.6.13. Rời khỏi nhóm chat ...................................................................................54
2.6.14. Xem liên hệ ...............................................................................................54
2.6.15. Gỡ hoặc thu hồi tin nhắn ...........................................................................55
2.6.16. Ghim tin nhắn ............................................................................................55

2.6.17. Chặn tài khản người dùng .........................................................................56
2.6.18. Thêm bạn bè ..............................................................................................56
2.6.19. Chấp nhận lời mời kết bạn ........................................................................57
2.6.20. Tìm kiếm ...................................................................................................57
2.6.21. Thống kê ....................................................................................................58
2.7. Biểu đồ lớp .......................................................................................................58
2.8. Thiết kế giao diện ............................................................................................59
2.8.1.

Đăng nhập .................................................................................................59

2.8.2.

Trang chủ...................................................................................................60

2.8.3.

Hồ sơ .........................................................................................................62

2.8.4.

Đoạn chat...................................................................................................64

2.8.5.

Tạo nhóm chat ...........................................................................................66

2.8.6.

Tìm kiếm ...................................................................................................67


2.8.7.

Liên hệ .......................................................................................................69

2.8.8.

Cuộc gọi ....................................................................................................70

2.8.9.

Camera ......................................................................................................71

2.8.10. Chia sẻ vị trí ..............................................................................................72
2.9. Thiết kế bảng cơ sở dữ liệu (NoSQL) ............................................................73
2.9.1.

Bảng User ..................................................................................................73

2.9.2.

Bảng Chatter ..............................................................................................74
x


2.9.3.

Bảng ChatMessage ....................................................................................74

2.9.4.


Bảng React ................................................................................................74

2.9.5.

Bảng Conversation ....................................................................................74

2.9.6.

Bảng Member ............................................................................................75

2.10. Sơ đồ ERD (SQL) ............................................................................................75
CHƯƠNG 3.

XÂY DỰNG CHƯƠNG TRÌNH .....................................................76

3.1. Cơng cụ xây dựng ............................................................................................76
3.2. Giao diện chương trình ...................................................................................77
3.2.1.

Giao diện Trang chủ ..................................................................................77

3.2.2.

Giao diện Đăng ký.....................................................................................77

3.2.3.

Giao diện Đăng nhập .................................................................................78


3.2.4.

Giao diện Tạo nhóm chat ..........................................................................79

3.2.5.

Giao diện Tab liên hệ ................................................................................79

3.2.6.

Giao diện Tab Cuộc gọi ............................................................................80

3.2.7.

Giao diện Hồ sơ .........................................................................................81

3.2.8.

Giao diện Chỉnh sửa hồ sơ ........................................................................83

3.2.9.

Giao diện Cuộc hội thoại...........................................................................85

3.2.10. Giao diện Chia sẻ vị trí của tơi ..................................................................85
3.2.11. Giao diện Phản hồi tin nhắn ......................................................................86
3.2.12. Giao diện Chuyển tiếp tin nhắn .................................................................86
3.2.13. Giao diện Gọi video ..................................................................................87
3.2.14. Giao diện Tìm kiếm ..................................................................................87
3.2.15. Giao diện Camera ......................................................................................88

3.2.16. Giao diện Xem hình ảnh ...........................................................................88
3.2.17. Giao diện Chọn ảnh, video, file, âm thanh từ thư viện .............................89
3.2.18. Giao diện Bày tỏ cảm xúc tin nhắn ...........................................................90
3.2.19. Giao diện Thống kê ...................................................................................90
3.2.20. Giao diện Quản lý người dùng ..................................................................91
3.2.21. Giao diện Quản lý nhóm ...........................................................................91
3.2.22. Giao diện Hồ sơ của admin .......................................................................92
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN .................................................................93
Kết luận ............................................................................................................93

1.
1.1.

Về công nghệ .............................................................................................93

1.2.

Về ứng dụng ..............................................................................................93
xi


2.

Hướng phát triển .............................................................................................93

TÀI LIỆU THAM KHẢO ...........................................................................................94

xii



DANH MỤC BẢNG BIỂU

Bảng 2.1. Danh sách Actors ............................................................................................6
Bảng 2.2. Use-case của hệ thống .....................................................................................6
Bảng 2.3. Đặc tả Usecase Đăng ký ................................................................................13
Bảng 2.4. Đặc tả Usecase Đăng nhập ............................................................................14
Bảng 2.5. Đặc tả Usecase Đăng xuất .............................................................................15
Bảng 2.6. Đặc tả Usecase Gửi tin nhắn .........................................................................15
Bảng 2.7. Đặc tả Usecase Chia sẻ vị trí của tơi .............................................................16
Bảng 2.8. Đặc tả Usecase Chỉnh sửa hồ sơ cá nhân ......................................................17
Bảng 2.9. Đặc tả Usecase Gọi video .............................................................................18
Bảng 2.10. Đặc tả Usecase Xóa cuộc gọi khỏi lịch sử cuộc gọi ...................................18
Bảng 2.11. Đặc tả Usecase Phản hồi tin nhắn ...............................................................19
Bảng 2.12. Đặc tả Usecase Bày tỏ cảm xúc tin nhắn ....................................................19
Bảng 2.13. Đặc tả Usecase Tạo nhóm chat ...................................................................20
Bảng 2.14. Đặc tả Usecase Thêm liên hệ vào nhóm chat .............................................20
Bảng 2.15. Đặc tả Usecase Rời khỏi nhóm chat ...........................................................21
Bảng 2.16. Đặc tả Usecase Xem liên hệ ........................................................................21
Bảng 2.17. Đặc tả Usecase Gỡ hoặc phản hồi tin nhắn .................................................22
Bảng 2.18. Đặc tả Usecase Ghim tin nhắn ....................................................................22
Bảng 2.19. Đặc tả Usecase Chặn trang cá nhân ............................................................23
Bảng 2.20. Đặc tả Usecase Thêm bạn bè ......................................................................23
Bảng 2.21. Đặc tả Usecase Chấp nhận lời mời kết bạn.................................................23
Bảng 2.22. Đặc tả Usecase Tìm kiếm............................................................................24
Bảng 2.23. Đặc tả Usecase Thống kê ............................................................................24
Bảng 2.24. Đặc tả Usecase Quản lý người dùng ...........................................................25
Bảng 2.25. Đặc tả Usecase Quản lý nhóm ....................................................................25
Bảng 2.26. Đặc tả giao diện Đăng nhập ........................................................................59
Bảng 2.27. Đặc tả giao diện Trang chủ .........................................................................61
Bảng 2.28. Đặc tả giao diện Hồ sơ ................................................................................62

Bảng 2.29. Đặc tả giao diện Đoạn tin nhắn ...................................................................64
Bảng 2.30. Đặc tả giao diện Tạo nhóm chat..................................................................66
Bảng 2.31. Đặc tả giao diện Tìm kiếm ..........................................................................67
Bảng 2.32. Đặc tả giao diện Liên hệ .............................................................................69
Bảng 2.33. Đặc tả giao diện Tab cuộc gọi .....................................................................70
Bảng 2.34. Đặc tả giao diện Camera .............................................................................71
Bảng 2.35. Đặc tả giao diện Chia sẻ vị trí .....................................................................73
Bảng 2.36. Bảng User ....................................................................................................73
Bảng 2.37. Bảng Chatter................................................................................................74
Bảng 2.38. Bảng ChatMessage ......................................................................................74
Bảng 2.39. Bảng React ..................................................................................................74
Bảng 2.40. Bảng Conversation ......................................................................................74
Bảng 2.41. Bảng Member ..............................................................................................75

xiii


DANH MỤC HÌNH VẼ
Hình 2.1. Biểu đồ Usecase tổng qt ..............................................................................8
Hình 2.2. Sơ đồ Usecase Đăng ký và đăng nhập.............................................................9
Hình 2.3. Sơ đồ UseCase Quản lý hồ sơ .........................................................................9
Hình 2.4. Sơ đồ UseCase Xem danh sách liên hệ .........................................................10
Hình 2.5. Sơ đồ UseCase Tìm kiếm ..............................................................................10
Hình 2.6. Biểu đồ UseCase Gửi tin nhắn ......................................................................11
Hình 2.7. Biểu đồ UseCase Gửi hình ảnh video............................................................11
Hình 2.8. Biểu đồ UseCase Gửi Audio .........................................................................12
Hình 2.9. Biểu đồ UseCase Gửi File .............................................................................12
Hình 2.10. Biểu đồ Usecase Gọi video..........................................................................13
Hình 2.11. Biểu đồ UseCase Bày tỏ cảm xúc tin nhắn .................................................13
Hình 2.12. Biểu đồ hoạt động Đăng nhập .....................................................................26

Hình 2.13. Biểu đồ hoạt động của Usecase Đăng xuất .................................................27
Hình 2.14. Biểu đồ hoạt động Đăng ký .........................................................................28
Hình 2.15. Biểu đồ hoạt động của usecase Gửi tin nhắn văn bản .................................29
Hình 2.16. Biểu đồ hoạt động cảu Usecase bày tỏ cảm xúc tin nhắn............................30
Hình 2.17. Biểu đồ hoạt động của Usecase Phản hồi tin nhắn ......................................31
Hình 2.18. Biểu đồ hoạt động của Usecase Chia sẻ vị trí của tơi..................................32
Hình 2.19. Biểu đồ hoạt động của Usecase Chỉnh sửa hồ sơ cá nhân ...........................33
Hình 2.20. Biểu đồ hoạt động của Usecase Rời khỏi nhóm chat ..................................34
Hình 2.21. Biểu đồ hoạt động của Usecase Gọi video ..................................................35
Hình 2.22. Biểu đồ hoạt động của Usecase Tạo nhóm chat ..........................................36
Hình 2.23. Thêm liên hệ vào nhóm chat .......................................................................37
Hình 2.24. Biểu đồ hoạt động của Usecase Rời khỏi nhóm chat. .................................38
Hình 2.25. Biểu đồ hoạt động của Usecase Quản lý Liên hệ ........................................39
Hình 2.26. Biểu đồ hoạt động của Usecase Gỡ hoặc thu hồi tin nhắn ..........................40
Hình 2.27. Biểu đồ hoạt động của Usecase Chặn trang cá nhân ...................................41
Hình 2.28. Biểu đồ hoạt động của Usecase Thêm bạn bè .............................................42
Hình 2.29. Biểu đồ hoạt động của Usecase Chấp nhận lời mời kết bạn .......................43
Hình 2.30. Biểu đồ hoạt động của Usecase Tìm kiếm ..................................................44
Hình 2.31. Biểu đồ hoạt động của Usecase Thống kê ...................................................45
Hình 2.32. Biểu đồ hoạt động của Usecase Quản lý người dùng ..................................46
Hình 2.33. Biểu đồ hoạt động của Usecase Quản lý nhóm ...........................................47
Hình 2.34. Biểu đồ tuần tự Đăng nhập ..........................................................................48
Hình 2.35. Biểu đồ tuần tự đăng ký ...............................................................................48
Hình 2.36. Biểu đồ tuần tự của Usecase Đăng xuất ......................................................49
Hình 2.37. Biểu đồ tuần tự Gửi tin nhắn văn bản..........................................................49
Hình 2.38. Biểu đồ tuần tự của Usecase Phản hồi tin nhắn...........................................50
Hình 2.39. Biểu đồ tuần tự của Usecase Bày tỏ cảm xúc tin nhắn ................................50
Hình 2.40. Biểu đồ tuần tự của Usecase Chia sẻ vị trí của tơi ......................................51
Hình 2.41. Biểu đồ tuần tự của Usecase Chỉnh sửa hồ sơ cá nhân ...............................51
Hình 2.42. Biểu đồ tuần tự của Usecase Rời khỏi nhóm chat .......................................52

Hình 2.43. Biểu đồ tuần tự của Usecase Gọi video .......................................................52
Hình 2.44. Biểu đồ tuần tự của Usecase Tạo nhóm chat ...............................................53
xiv


Hình 2.45. Biểu đồ tuần tự của Usecase Thêm liên hệ vào nhóm chat .........................53
Hình 2.46. Biểu đồ tuần tự của Usecase Rời khỏi nhóm chat .......................................54
Hình 2.47. Biểu đồ tuần tự của Usecase Xem liên hệ ...................................................55
Hình 2.48. Biểu đồ tuần tự của Usecase Gỡ hoặc thu hồi tin nhắn ...............................55
Hình 2.49. Biểu đồ tuần tự của Usecase Ghim tin nhắn................................................55
Hình 2.50. Biểu đồ tuần tự của Usecase Chặn tài khản người dùng .............................56
Hình 2.51. Biểu đồ tuần tự của Usecase Thêm bạn bè ..................................................56
Hình 2.52. Biểu đồ tuần tự của Usecase Chấp nhận lời mời kết bạn ............................57
Hình 2.53. Biểu đồ tuần tự của Usecase Tìm kiếm .......................................................57
Hình 2.54. Biểu đồ tuần tự của Usecase Thống kê .......................................................58
Hình 2.55. Biểu đồ lớp ..................................................................................................58
Hình 2.56. Giao diện đăng nhập ....................................................................................59
Hình 2.57. Giao diện trang chủ .....................................................................................60
Hình 2.58. Giao diện hồ sơ ............................................................................................62
Hình 2.59. Giao diện đoạn chat .....................................................................................64
Hình 2.60. Giao diện Tạo nhóm chat ............................................................................66
Hình 2.61. Giao diện của Tìm kiếm ..............................................................................67
Hình 2.62. Giao diện của Liên hệ ..................................................................................69
Hình 2.63. Giao diện của Tab Cuộc gọi ........................................................................70
Hình 2.64. Giao diện của màn hình Camera .................................................................71
Hình 2.65. Giao diện của màn hình Chia sẻ vị trí .........................................................73
Hình 2.66. Sơ đồ ERD ...................................................................................................75
Hình 3.1. Giao diện Trang chủ ......................................................................................77
Hình 3.2. Giao diện Đăng ký .........................................................................................78
Hình 3.3. Giao diện Đăng nhập .....................................................................................78

Hình 3.4. Giao diện tạo nhóm chat ................................................................................79
Hình 3.5. Giao diện Liên hệ - Bạn bè ............................................................................79
Hình 3.6. Giao diện Liên hệ - Nhóm .............................................................................80
Hình 3.7. Giao diện Tab Cuộc gọi .................................................................................80
Hình 3.8. Giao diện hồ sơ cá nhân ................................................................................81
Hình 3.9. Giao diện hồ sơ người khác ...........................................................................82
Hình 3.10. Giao diện hồ sơ nhóm ..................................................................................82
Hình 3.11. Giao diện chỉnh sửa Hồ sơ ..........................................................................83
Hình 3.12. Giao diện chỉnh sửa tên ...............................................................................83
Hình 3.13. Giao diện chỉnh sửa tiểu sử .........................................................................84
Hình 3.14. Giao diện chỉnh sửa liên kết ........................................................................84
Hình 3.15. Giao diện Cuộc hội thoại .............................................................................85
Hình 3.16. Giao diện gửi vị trí của tơi và dẫn ra Google Maps ....................................85
Hình 3.17. Giao diện phản hồi tin nhắn.........................................................................86
Hình 3.18. Giao diện chuyển tiếp tin nhắn ....................................................................86
Hình 3.19. Giao diện gọi video .....................................................................................87
Hình 3.20. Giao diện Tìm kiếm .....................................................................................87
Hình 3.21. Giao diện Camera ........................................................................................88
Hình 3.22. Giao diện xem hình ảnh ...............................................................................88
Hình 3.23. Giao diện chọn ảnh, video, file, âm thanh từ thư viện ................................89
Hình 3.24. Giao diện bày tỏ cảm xúc tin nhắn ..............................................................90
Hình 3.25. Giao diện Thống kê .....................................................................................90
Hình 3.26. Giao diện Quản lý người dùng ....................................................................91
xv


Hình 3.27. Giao diện Quản lý nhóm..............................................................................91
Hình 3.28. Giao diện Hồ sơ của admin .........................................................................92

xvi



DANH MỤC CHỮ VIẾT TẮT TIẾNG VIỆT

Chữ viết tắt

Giải nghĩa

1

CNTT

Công nghệ thông tin

2

CSDL

Cơ sở dữ liệu

Stt

xvii


DANH MỤC CHỮ VIẾT TẮT TIẾNG ANH

Stt

Chữ viết tắt


1

HTML

2

ERD

3

OOP

4

JIT

5
6

AOT
SDK

7

JSON

8

UTF-8


9

I/O

10

SIMD

11
12

DOM
SSPL

13

NoSQL

14

MVVM

15

API

Giải nghĩa
Hyper Text Markup
Language

Entity Relationship
Diagram
Object Oriented
Progamming

Nghĩa tiếng Việt
Ngôn ngữ đánh dấu siêu văn bản
Sơ đồ thực thể quan hệ
Lập trình hướng đối tượng

Đúng sản phẩm - với đúng số
Just-in-time
lượng - tại đúng nơi - vào đúng
thời điểm cần thiết
Ahead-of-time
Biên dịch trước thời hạn
Software Development Kit Bộ công cụ phát triển phần mềm
Một kiểu dữ liệu mở trong
JavaScript Object Notation
JavaScript
8-bit Unicode
Định dạng chuyển đổi Unicode
Transformation Format
8-bit
Input/Output
Đầu vào/đầu ra hay nhập/xuất
Một lệnh đơn, nhiều dữ liệu là
Single Instruction Multiple
một kiểu xử lý song song trong
Data

phân loại của Flynn
Document Object Model
Giao diện lập trình ứng dụng
Server Side Public License Giấy phép phần mềm
Non relational Data
Hệ thống Cơ sở dữ liệu Phi quan
Management System
hệ
Mơ hình xây dụng ứng dụng
Model - View - ViewModel
Flutter
Application Programming
Giao diện lập trình ứng dụng
Interface

xviii


Xây dựn ứng dụng nhắn tin

MỞ ĐẦU
1. Lý do chọn đề tài
Với nhu cầu sử dụng điện thoại thông minh phổ biến như hiện nay hay cịn gọi là
Smartphone thì việc liên lạc giữa người với người là vô cùng tất yếu, nó đóng một vai trị
quan trọng trong cuộc sống. Không những giúp chúng ta trong việc liên lạc, mà nó cịn giúp
cho chúng ta giải quyết được những nhu cầu về mặt giải trí và những lợi ích xã hội khác.
Càng ngày nó đã trở thành một cơng cụ hỗ trợ đắc lực cho con người trong mọi lĩnh vực.
Trước đây chúng ta thường hay liên lạc với nhau thông qua số điện thoại với sim và
như vậy nó làm cho chúng ta sẽ tốn tiền khi chuyển tin nhắn hoặc gọi cho nhau. Thậm chí
là đơi khi chúng ta muốn gọi hoặc nhắn trong một thời gian dài, điều đó sẽ dẫn đến chúng ta

sẽ mất rất nhiều tiền và chúng ta sẽ cảm thấy không thật sự thoải mái. Không những thế, do
nhu cầu của chúng ta mà chúng ta cũng cần có những hội nhóm cho riêng mình mà ở đó
chúng ta có thể liên lạc cho nhau.
Chính vì vậy, để đáp ứng những nhu cầu cấp thiết trên cùng với những kiến thức mà
tôi đã học được trong thời gian qua, tôi quyết định sẽ xây dựng một ứng dụng chat mà ở đó
mọi người có thể kết nối thơng qua ứng dụng mà khơng có bất kỳ giới hạn nào, chỉ cần có
ứng dụng và kết nối mạng Internet là chúng ta đã có thể kết nối đến mọi người ở khắp mọi
nơi. Với mong muốn mọi người có thể cảm thấy thối mái hơn khi liên lạc với nhau mà
khơng có bất kỳ trở ngại, giúp mọi người có thể gần gũi và gắn kết hơn với nhau. Đó cũng
chính là điều mà tôi muốn nhất trong việc lựa chọn đề tài này.
2. Mục tiêu đề tài
Với mục tiêu là giúp cho mọi người có thể liên lạc với nhau một cách thuận tiện hơn,
ứng dụng không chỉ giúp cho mọi người kết nối được với nhau dễ dàng hơn, mà còn giúp
cho mọi người có thể kết bạn và tạo hội nhóm với nhau. Tiếp đó, ứng dụng cịn cung cấp nơi
cho chúng ta có thể đưa những bức ảnh đại diện của mình lên và nhờ đó mà chúng ta có thể
tìm được nhau và kết bạn với nhau một cách dễ dàng nhất. Ngồi ra nó cịn được bảo mật
một cách an tồn giúp cho thơng tin của người dùng khơng bị lộ ra ngồi.
3. Đối tượng và phạm vi nghiên cứu
3.1. Đối tượng nghiên cứu
Phân tích thiết kế chức năng nhắn tin, quản lý.
-

Ngơn ngữ lập trình Dart
Framework Flutter
Cơng cụ lập trình Visual Studio Code
Nền tảng CSDL MongoDB

Sinh viên thực hiện: Nguyễn Văn Hoàn

Người hướng dẫn: TS. Nguyễn Tấn Thuận


1


Xây dựn ứng dụng nhắn tin

- Hệ điều hành Android
3.2. Pham vi nghiên cứu
Đề tài được áp dụng cho người dùng tại Việt Nam.
4. Phương pháp nghiên cứu
• Phương pháp nghiên cứu lý thuyết thu thập thông tin qua internet, tài liệu, sách để
tìm được các cơ sở lý thuyết liên quan vấn đề mình nghiên cứu.
• Phương pháp triển khai thực nghiệm: xây dựng app.
5. Giải pháp cơng nghệ
• Frontend: Dart - Flutter.
• Backend: NodeJS
• Hệ quản trị cơ sở dữ liệu: MongoDB.
• Cơng cụ hỗ trợ: Visual Studio Code, Android Studio, MongoDB Compass,
Postman.
6. Cấu trúc đồ án
Cấu trúc đồ án tốt nghiệp gồm các phần như sau:
Mở đầu: Nghiên cứu, tìm hiểu và đưa ra lý do chọn đề tài, mục tiêu và mục đích khi
xây dựng và phát triển đề tài. Xác định rõ phạm vi và đối tượng hướng đến, giải pháp công
nghệ để triển khai, xây dựng đề tài, đồng thời phân tích đặc tả yêu cầu nghiệp vụ.
Chương 1: Tìm hiểu, giới thiệu tổng qt các kiến thức về ngơn ngữ lập trình frontend:
Dart – Flutter, backend: NodeJS và hệ quản trị cơ sở dữ liệu MongoDB.
Chương 2: Phân tích các tác nhân và chức năng của từng tác nhân, yêu cầu phi chức
năng của hệ thống. Thiết kế sơ đồ use-case, sơ đồ hoạt động, sơ đồ ERD. Thiết kế cơ sở dữ
liệu. Xây dựng kịch bản cho từng use-case trong hệ thống.
Chương 3: Xây dựng giao diện và chức năng của hệ thống.

Kết luận: Kết luận chung cho các chương trong đồ án. Trình bày những vấn đề đã giải
quyết đồng thời trình bày hướng phát triển.

Sinh viên thực hiện: Nguyễn Văn Hoàn

Người hướng dẫn: TS. Nguyễn Tấn Thuận

2


Xây dựn ứng dụng nhắn tin

CHƯƠNG 1.

CƠ SỞ LÝ THUYẾT

1.1. Flutter Framework
1.1.1. Flutter là gì?
Flutter là một SDK phát triển ứng dụng di động nguồn mở được tạo ra bởi Google. Nó
được sử dụng để phát triển ứng ứng dụng cho Android và iOS, cũng là phương thức chính
để tạo ứng dụng cho Google Fuchsia.
1.1.2. Lịch sử phát triển
Phiên bản đầu tiên của Flutter được gọi là "Sky" và chạy trên hệ điều hành Android.
Nó được cơng bố tại hội nghị nhà phát triển Dart 2015, với dự định ban đầu để có thể kết
xuất ổn định ở mức 120 khung hình trên giây. Trong bài phát biểu chính ở hội nghị Google
Developer Days tại Thượng Hải, Google công bố phiên bản Flutter Release Preview 2, đây
là phiên bản lớn cuối cùng trước Flutter 1.0. Vào ngày 4 tháng 12 năm 2018, Flutter 1.0 đã
được phát hành tại sự kiện Flutter Live, là phiên bản"ổn định"đầu tiên của framework này.
1.1.3. Kiến trúc khung
Các thành phần chính của Flutter gồm:

− Nền tảng Dart: Ứng dụng Flutter được viết bằng ngôn ngữ Dart và tận dụng nhiều
tính năng nâng cao của ngơn ngữ này. Trên Android, và
trên Windows, macOS và Linux thông qua dự án chưa chính thức mang tên Flutter
Desktop Embedding, Flutter chạy trên máy ảo Dart với engine thực thi just-intime (JIT). Do giới hạn về thực thi mã động của App Store, ứng dụng Flutter sử
dụng biên dịch ahead-of-time (AOT) trên iOS.
− Flutter engine: Engine của Flutter được viết chủ yếu bằng C++, cung cấp sự hỗ trợ
kết xuất ở mức độ thấp bằng thư viện đồ họa Skia của Google. Thêm vào đó, nó
giao tiếp với các SDK của riêng nền tảng như các SDK do Android và iOS cung
cấp.
− Thư viện Foundation.
− Các widget được thiết kế riêng.
1.2. Ngơn ngữ lập trình Dart
1.2.1. Dart là gì?
Dart là một ngơn ngữ lập trình web do Google phát triển. Nó được chính thức cơng bố
tại Hội thảo GOTO Lưu trữ 2012-12-21 tại Wayback Machine ngày 10-12 tháng 10 năm
2011 tại Aarhus. Mục đích của Dart khơng phải để thay thế JavaScript như là ngơn ngữ kịch
bản chính bên trong trình duyệt web, mà là cung cấp sự lựa chọn hiện đại hơn.

Sinh viên thực hiện: Nguyễn Văn Hoàn

Người hướng dẫn: TS. Nguyễn Tấn Thuận

3


Xây dựn ứng dụng nhắn tin

1.2.2. Các thư viện
Dart có một bộ thư viện cốt lõi phong phú , cung cấp các yếu tố cần thiết cho nhiều tác
vụ lập trình hàng ngày:

− Các loại, bộ sưu tập tích hợp và chức năng cốt lõi khác cho mọi chương trình Dart
( dart:core)
− Các loại bộ sưu tập phong phú hơn như hàng đợi, danh sách được liên kết, hashmap
và cây nhị phân ( dart:collection)
− Bộ mã hóa và giải mã để chuyển đổi giữa các biểu diễn dữ liệu khác nhau, bao
gồm JSON và UTF-8 ( dart:convert)
− Các hằng số và hàm toán học, và tạo số ngẫu nhiên ( dart:math)
− Tệp, ổ cắm, HTTP và hỗ trợ I/O khác cho các ứng dụng không phải web ( dart:io)
− Hỗ trợ lập trình khơng đồng bộ, với các lớp như Futurevà Stream ( dart:async)
− Danh sách xử lý hiệu quả dữ liệu có kích thước cố định (ví dụ: số nguyên 8 byte
không dấu) và loại số SIMD ( dart:typed_data)
− Giao diện chức năng nước ngoài cho khả năng tương tác với mã khác trình bày
giao diện kiểu C ( dart:ffi)
− Lập trình đồng thời bằng cách sử dụng các bộ tách biệt —các công nhân độc lập
tương tự như các luồng nhưng không chia sẻ bộ nhớ, chỉ giao tiếp qua thông báo (
dart:isolate)
− Các phần tử HTML và các tài nguyên khác dành cho các ứng dụng dựa trên web
cần tương tác với trình duyệt và Mơ hình đối tượng tài liệu (DOM) ( dart:html)
1.2.3. Nền tảng
Công nghệ biên dịch của Dart cho phép bạn chạy mã theo nhiều cách khác nhau:
− Native platform: Đối với các ứng dụng nhắm mục tiêu thiết bị di động và máy tính
để bàn, Dart bao gồm cả Dart VM với trình biên dịch just-in-time (JIT) và trình
biên dịch trước thời hạn (AOT) để tạo mã máy.
− Web platform: Đối với các ứng dụng nhắm mục tiêu web, Dart có thể biên dịch
cho mục đích phát triển hoặc sản xuất. Trình biên dịch web của nó dịch Dart thành
JavaScript..
1.3. MongoDB
1.3.1. Khái niệm
MongoDB là một hệ quản trị cơ sở dữ liệu NoSQL mã nguồn mở đa nền tảng viết bằng
C++. Bản ghi trong MongoDB được lưu trữ dạng một dữ liệu văn bản (Document), là một

cấu trúc dữ liệu bao gồm các cặp giá trị và trường tương tự như các đối tượng JSON.
MongoDB được phát triển bởi MongoDB Inc. dưới dạng giấy phép Server Side Public
License (SSPL)
Sinh viên thực hiện: Nguyễn Văn Hoàn

Người hướng dẫn: TS. Nguyễn Tấn Thuận

4


Xây dựn ứng dụng nhắn tin

1.3.2. Lịch sử
− MongoDB được bắt đầu phát triển vào đầu năm 2007 khi công ty 10gen đang phát
triển một nền tảng tương tự dịch vụ Azure của Microsoft. Công ty 10gen là một
công ty phần mềm có trụ sở tại New York, nay được đổi tên thành MongoDB Inc.
Việc phát triển ban đầu tập trung vào xây dựng PaaS (một nền tảng dịch vụ) nhưng
sau đó vào năm 2009, MongoDB đã xuất hiện trên thị trường như một dự án mã
nguồn mở máy chủ cơ sở dữ liệu và được duy trì bởi chính tổ chức này.
− Tháng 3 năm 2010, MongoDB Inc. đã tung ra sản phẩm sẵn sàng đầu tiên của mình
là phiên bản 1.4. Phiên bản ổn định tiếp theo của MongoDB là phiên bản 2.4.9
được phát hành vào ngày 10 tháng 1 năm 2014.
− Đầu năm 2015, phiên bản 3.0 được phát hành, cuối năm 2015 phiên 3.2 ra đời đi
kèm với công cụ quản trị trên giao diện đồ họa MongoDB Compass.
1.4.

Node.js
Node.js là một hệ thống phần mềm được thiết kế để viết các ứng dụng internet có khả

năng mở rộng, đặc biệt là máy chủ web. Chương trình được viết bằng JavaScript, sử dụng

kỹ thuật điều khiển theo sự kiện, nhập/xuất không đồng bộ để tối thiểu tổng chi phí và tối đa
khả năng mở rộng. Node.js bao gồm có V8 JavaScript engine của Google, libUV, và vài thư
viện khác.

Sinh viên thực hiện: Nguyễn Văn Hoàn

Người hướng dẫn: TS. Nguyễn Tấn Thuận

5


×