ĐẠ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
LÝ HIỀN PHÚC
LÊ ĐÌNH TRỌNG NGHĨA
KHĨA LUẬN TỐT NGHIỆP
XÂY DỰNG ỨNG DỤNG SỔ TAY GIA ĐÌNH
HỖ TRỢ TƯƠNG TÁC
Build a family handbook application supporting interaction
KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM
TP. HỒ CHÍ MINH, 2021
ĐẠ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
LÝ HIỀN PHÚC – 17520904
LÊ ĐÌNH TRỌNG NGHĨA – 17520798
KHĨA LUẬN TỐT NGHIỆP
XÂY DỰNG ỨNG DỤNG SỔ TAY GIA ĐÌNH
HỖ TRỢ TƯƠNG TÁC
Build a family handbook application supporting interaction
KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM
GIẢNG VIÊN HƯỚNG DẪN
TS. NGUYỄN HÀ GIANG
ThS. NGUYỄN THỊ THANH TRÚC
TP. HỒ CHÍ MINH, 2021
THƠNG TIN HỘI ĐỒNG CHẤM KHĨA LUẬN TỐT NGHIỆP
Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định số …………………… ngày
………………….. của Hiệu trưởng Trường Đại học Công nghệ Thông tin.
1. ……………………………………… – Chủ tịch
2. ……………………………………… – Thư ký
3. ……………………………………… – Ủy viên
4. ……………………………………… – Ủy viên
ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh Phúc
CÔNG NGHỆ THÔNG TIN
TP. HCM ngày 22 tháng 7 năm 2021
NHẬN XÉT KHÓA LUẬN TỐT NGHIỆP
(CỦA CÁN BỘ HƯỚNG DẪN)
Tên khóa luận:
XÂY DỰNG ỨNG DỤNG SỔ TAY GIA ĐÌNH
HỖ TRỢ TƯƠNG TÁC
Nhóm sinh viên thực hiện:
Cán bộ hướng dẫn:
Lý Hiền Phúc
17520904
TS. Nguyễn Hà Giang
Lê Đình Trọng Nghĩa
17520798
ThS. Nguyễn Thị Thanh Trúc
Đánh giá khóa luận:
1. Về cuốn báo cáo:
2. Về nội dung:
3. Về chương trình ứng dụng:
4. Về thái độ làm việc của sinh viên:
Đánh giá chung:
Điểm từng sinh viên:
Lý Hiền Phúc:
Lê Đình Trọng Nghĩa:
Người nhận xét
(Ký tên và ghi rõ học tên)
ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh phúc
CÔNG NGHỆ THÔNG TIN
TP. HCM, ngày tháng năm 2021
NHẬN XÉT KHÓA LUẬN TỐT NGHIỆP
(CỦA CÁN BỘ PHẢN BIỆN)
Tên khóa luận:
XÂY DỰNG ỨNG DỤNG SỔ TAY GIA ĐÌNH
HỖ TRỢ TƯƠNG TÁC
Nhóm sinh viên thực hiện:
Cán bộ hướng dẫn:
Lý Hiền Phúc
17520904
TS. Nguyễn Hà Giang
Lê Đình Trọng Nghĩa
17520798
ThS. Nguyễn Thị Thanh Trúc
Đánh giá khóa luận:
1. Về cuốn báo cáo:
2. Về nội dung:
3. Về chương trình ứng dụng:
4. Về thái độ làm việc của sinh viên:
Đánh giá chung:
Điểm từng sinh viên:
Lý Hiền Phúc:
Lê Đình Trọng Nghĩa:
Người nhận xét
(Ký tên và ghi rõ học tên)
LỜI CẢM ƠN
Lời đầu tiên chúng em xin gửi lời cảm ơn chân thành và tri ân sâu
sắc đến ban giám hiệu nhà trường, quý thầy cô cũng như tất cả các
cán bộ và nhân viên đã và đang công tác tại trường Đại học Công
nghệ Thông tin – ĐHQG TP. HCM vì đã tạo điều kiện, dẫn dắt và
trang bị cho chúng em những kiến thức quý báu để có thể hồn thành
tốt khóa luận tốt nghiệp.
Đặc biệt, chúng em xin gửi lời cảm ơn và lòng biết ơn sâu sắc tới TS.
Nguyễn Hà Giang và ThS. Nguyễn Thị Thanh Trúc, người đã dẫn dắt,
giúp đỡ và tạo kiện để chúng em có thể hồn thành tốt khóa luận của
mình. Cảm ơn quý giảng viên vì những chỉ bảo tận tình trong suốt thời
gian qua đã giúp cho khóa luận của chúng em ngày càng hoàn thiện hơn.
Chúng em cũng chân thành cảm ơn quý giảng viên phản biện và các quý
giảng viên thầy cô trong ban hội đồng chấm luận văn đã cho chúng em
những đóng góp quý báu để luận văn thêm hoàn chỉnh.
Lời cuối, chúng em xin chúc quý thầy cô cùng tập thể cán bộ và nhân
viên của trường sẽ ln có thật nhiều sức khỏe, gặp thật nhiều may mắn
và thành công trên con đường của mình.
TP. Hồ Chí Minh, tháng
năm 2021
Nhóm thực hiện
Lý Hiền Phúc
Lê Đình Trọng Nghĩa
ĐỀ CƯƠNG CHI TIẾT
TÊN ĐỀ TÀI:
XÂY DỰNG ỨNG DỤNG SỔ TAY GIA ĐÌNH HỖ TRỢ TƯƠNG TÁC
TÊN ĐỀ TÀI TIẾNG ANH:
BUILD A FAMILY HANDBOOK APPLICATION SUPPORTING
INTERACTION
Cán bộ hướng dẫn: TS. Nguyễn Hà Giang, Ths. Nguyễn Thị Thanh Trúc
Thời gian thực hiện: Từ ngày 06/09/2021 đến ngày 01/01/2022
Sinh viên thực hiện:
Lý Hiền Phúc – 17520904
Lê Đình Trọng Nghĩa – 17520798
Nội dung đề tài:
(Mô tả chi tiết mục tiêu, phạm vi, đối tượng, phương pháp thực hiện, kết quả mong đợi
của đề tài)
1. Mục tiêu
1.1. Bối cảnh đề tài
Trong bối cảnh xã hội hiện đại, khi con người ngày càng bận rộn với công việc
cũng như việc học bên ngồi và ít có thời gian hơn để xử lý các cơng việc trong
gia đình. Đặc biệt trong thời gian giãn cách xã hội do đại dịch Covid-19 khiến cho
nhiều người cơng tác xa gia đình và khơng thể về. Nhu cầu quản lý các công việc,
sự kiện trong gia đình và tương tác với các thành viên gia đình càng tăng cao.
Đứng ở góc độ này, ý tưởng giúp việc quản lý các công việc, sự kiện và tương tác
với các thành viên trong gia đình dần hình thành. Đó là việc ứng dụng cơng nghệ
vào việc xây dựng một ứng dụng sổ tay gia đình hỗ trợ tương tác giúp tăng hiệu
quả quản lý công việc cũng như tính tương tác từ xa cho gia đình. Chính vì vậy,
nhóm chúng em quyết định thực hiện đề tài này.
1.2. Mục tiêu
− Tạo ra một không gian tương tác từ xa giành riêng cho gia đình.
− Bên cạnh đó cũng giúp các thành viên trong gia đình:
o Lên danh sách các cơng việc trong gia đình và phân cơng cơng việc cho
các thành viên trong gia đình.
o Đặt lịch để nhắc nhở các thành viên về những sự kiện quan trọn.
o Chia sẻ vị trí với các thành viên trong gia đình để tiện quan sát.
o Giúp các thành viên trong gia đình cập nhật được tình hình thu chi hàng
tháng và thể hiện các số liệu thông qua biểu đồ.
2. Phạm vi nghiên cứu
2.1. Lý thuyết
− Thực trạng để quản lý công việc, lên danh sách sự kiện và cũng như cách thức
liên hệ, tương tác từ xa mà các gia đình đang áp dụng hiện nay.
− Thực trạng của các ứng dụng mạng xã hội ngày nay đáp ứng về sự tương tác
giữa giới trẻ và các thành viên trong gia đình của họ.
− Các ứng dụng liên quan hoặc có cụm tính năng tương tự đã được triển khai và
đưa vào sử dụng trên thực tế.
− Các công nghệ kỹ thuật nhằm hỗ trợ việc xây dựng database, ứng dụng trên
mobile và backend.
− Đề tài của khoá trước.
2.2. Các tính năng
− Xác thực và quản lý thơng tin cá nhân.
− Quản lý công việc trong nhà.
− Quản lý sự kiện chung.
− Album ảnh gia đình.
− Quản lý thu chi.
− Chia sẻ vị trí và cảnh báo khẩn cấp.
− Tương tác qua khung chat chung.
− Tương tác qua cuộc gọi thường.
− Tương tác qua cuộc gọi video.
3. Đối tượng nghiên cứu
3.1. Công nghệ
− Backend: Java(Spring boot).
− Mobile: React Native(Redux).
− Database: PostgreSQL.
− Backend deployment: Heroku.
− Mobile app CI/CD: Bitrise.
− Source Control: Github.
3.2. Đối tượng trong phạm vi đề tài hướng đến
− Những người ở xa nhà có nhu cầu quản lý công việc, sự kiện hiệu quả hơn
thông qua Mobile App.
− Những người khi đi xa nhà vẫn có thể tương tác và có thể định vị được các
thành viên trong gia đình.
4. Tính mới và thực tiễn:
− Nhóm em đã tiến hành khảo sát các ứng dụng liên quan hoặc có cụm tính năng
tương tự đã được triển khai và đưa vào sử dụng trên thực tế:
o Cozi, ChoresMonster, OurHome cho phép đồng bộ hóa lịch cho cả gia đình
với khả năng lập danh sách và phân cơng các cơng việc cần làm.
o Keepy cung cấp tính năng lưu trữ, tổ chức và quản lý những hình ảnh và
video kỷ niệm của gia đình vào một nơi duy nhất và cho các thành viên
đều có khả năng truy cập.
o Life360 hỗ trợ việc định vị người thân dựa vào tính năng GPS và cảnh báo
trong trường hợp khẩn cấp.
o MoneyLover, Spendee, Mint, MoneyPocket hỗ trợ việc quản lý thu chi,
giám sát hóa đơn, theo dõi mức chi so với ngân sách và trực quan hóa chi
tiêu qua biểu đồ.
o Facebook Messenger, Skype, Twitter có thể hỗ trợ người sử dụng tương
tác qua hình thức nhắn tin, voice call và video call.
− Qua khảo sát có thể thấy các ứng dụng hiện có chỉ hỗ trợ một tác vụ nhất định,
dẫn đến sự bất định cho người dùng khi phải sử dụng quá nhiều ứng dụng cùng
lúc để giải quyết các cơng việc. Bên cạnh đó, các hoạt động tương tác của giới trẻ
trên mạng xã hội có xu hướng nghiêng về bạn bè và các mối quan hệ xã hội khác
hơn là gia đình. Bởi đó, nhóm em nhận thấy tính mới và tính thực tiễn của đề tài
như sau:
-
Tính mới:
So với những ứng dụng đã khảo sát:
o Tích hợp các tính năng quản lý cơng việc, sự kiện, thu chi, album gia đình
và tương tác từ xa qua các hình thức nhắn tin, voice call, video call vào
một ứng dụng duy nhất.
o Tạo ra không gian tương tác từ xa dành riêng cho các thành viên trong gia
đình nhằm tăng tính gắn kết giữa các thành viên trong gia đình với nhau.
So với đề tài khoá trước:
o Bổ sung thêm khả năng tương tác thông qua internet giữa các thành viên
trong gia đình qua hình thức nhắn tin, voice call và video call trực tiếp.
o Hỗ trợ 2 ngôn ngữ tiếng Anh và tiếng Việt.
o Tích hợp đăng nhập bằng các tài khoản social networking bên thứ 3 như:
Facebook, Google, Apple(với nền tảng iOS).
o Quản lý thu chi trong gia đình và thống kê thành biểu đồ cho người dùng.
-
Tính thực tiễn:
o Hỗ trợ các gia đình thực hiện các tác vụ hằng ngày dễ dàng và thuận tiện
hơn.
o Tăng tính gắn kết giữa các thành viên trong việc thực hiện công việc nhà.
o Tăng tính giao tiếp và chia sẻ giữa các thành viên qua việc nhắc nhở về sự
kiện.
o Tăng tính thống nhất, tương tác và chia sẻ ý kiến giữa các thành viên.
5. Phương pháp thực hiện
− Nhóm thực hiện theo 2 hình thức online hoặc offline, bên cạnh đó kết hợp với
việc trao đổi với giảng viên hướng dẫn để định hướng cho đề tài.
− Nghiên cứu việc tương tác của giới trẻ với gia đình của họ trên các ứng dụng
mạng xã hội.
− Nghiên cứu thực trạng quản lý công việc, và các sự kiện của các gia đình hiện
nay.
− Khảo sát các ứng dụng liên quan hoặc có cụm tính năng tương tự
− Khảo sát nhu cầu sử dụng ứng dụng sổ tay xã hội hỗ trợ tương tác của các gia
đình thực tế.
− Tiến hành phân tích các nhu cầu trên và thống kê thành danh sách các yêu cầu.
− Tìm hiểu và nghiên cứu các phương pháp thiết kế UI/UX thân thiện với người sử
dụng và dễ dàng thao tác.
− Thiết kế hệ thống (Các sơ đồ UML và thiết kế database).
− Thiết kế giao diện cho mobile app.
− Xây dựng tính năng.
− Triển khai và kiểm thử.
6. Kết quả mong đợi
-
Xây dựng ứng dụng có tính thực tế cao và đáp ứng nhu cầu người dùng.
-
Có thể mở rộng và phát triển các tính năng mới trong tương lai.
Kế hoạch thực hiện:(Mô tả kế hoạch làm việc và phân công công việc cho từng sinh
viên tham gia)
STT
Nội dung công việc
Thời gian
Phân công
thực hiện
Giai đoạn 1: Nghiên cứu và khảo sát
1
1.1
Thực hiện nghiên cứu việc tương tác của giới
trẻ với gia đình của họ trên các ứng dụng
06/09/2021
Phúc, Nghĩa
-
mạng xã hội.
08/09/2021
1.2
Thực hiện nghiên cứu thực trạng quản lý công
09/09/2021
việc, và các sự kiện của các gia đình hiện nay.
11/09/2021
Phúc, Nghĩa
1.3
Khảo sát và phân tích u cầu.
12/09/2021
Phúc, Nghĩa
14/09/2021
1.4
Tìm hiểu các ứng dụng tương tự.
15/09/2021
Phúc, Nghĩa
17/09/2021
1.5
Tìm hiểu và nghiên cứu các phương pháp thiết
18/09/2021
kế UI/UX thân thiện với người sử dụng và dễ
-
Phúc, Nghĩa
dàng thao tác.
20/09/2021
Giai đoạn 2: Thiết kế hệ thống
2
2.1
Thiết kế cơ sở dữ liệu và vẽ sơ đồ UML(Use
case Diagram, Activity Diagram, Sequence
21/09/2021
Phúc, Nghĩa
-
Diagram, Entity Relation Diagram, Class
27/09/2021
Diagram)
2.2
Thiết kế giao diện và vẽ wireframe cho ứng
dụng
28/09/2021
Phúc
04/10/2021
3
3.1
Giai đoạn 3: Thực hiện các chức năng
Xác thực và quản lý thông tin cá nhân.
05/10/2021
11/10/2021
Phúc, Nghĩa
3.2
Quản lý công việc trong nhà
12/10/2021
Phúc, Nghĩa
18/10/2021
3.3
Quản lý sự kiện chung
19/10/2021
Phúc, Nghĩa
25/10/2021
3.4
Album ảnh gia đình
26/10/2021
Phúc, Nghĩa
01/11/2021
3.5
Quản lý thu chi
02/11/2021
Phúc, Nghĩa
08/11/2021
3.6
Chia sẻ vị trí của các thành viên và cảnh báo
khẩn cấp
09/11/2021
Phúc, Nghĩa
15/11/2021
3.7
Tương tác qua việc nhắn tin
16/11/2021
Phúc, Nghĩa
22/11/2021
3.8
Tương tác qua cuộc gọi thông thường
23/11/2021
29/11/2021
Phúc, Nghĩa
3.9
Tương tác qua cuộc gọi video
30/11/2021
Phúc, Nghĩa
06/12/2021
4
4.1
Giai đoạn 4: Đánh giá kết quả đạt được và soạn báo cáo
Lập bảng đánh giá kết quả thu được sau khi
hoàn thành ứng dụng
07/12/2021
Phúc, Nghĩa
10/12/2021
4.2
Soạn báo cáo
11/12/2021
Phúc, Nghĩa
17/12/2021
Xác nhận của CBHD
TP. HCM, ngày 18 tháng 08 năm 2021
(Ký tên và ghi rõ họ tên)
Sinh viên 1
TS. Nguyễn Hà Giang
(Ký tên và ghi rõ họ tên)
Lý Hiền Phúc
Ths. Nguyễn Thị Thanh Trúc
Sinh viên 2
(Ký tên và ghi rõ họ tên)
Lê Đình Trọng Nghĩa
MỤC LỤC
Chương 1.
GIỚI THIỆU CHUNG ......................................................................... 2
1.1.
Lý do chọn đề tài ......................................................................................... 2
1.2.
Tính mới và tính thực tiễn ........................................................................... 2
1.2.1.
Tính mới ............................................................................................... 2
1.2.2.
Tính thực tiễn ....................................................................................... 3
1.3.
Phạm vi nghiên cứu ..................................................................................... 4
1.4.
Đối tượng nghiên cứu .................................................................................. 4
Chương 2.
KIẾN THỨC NỀN TẢNG ................................................................... 5
2.1.
Javascript ..................................................................................................... 5
2.2.
React Native ................................................................................................ 7
2.2.1.
Redux ................................................................................................... 8
2.2.2.
Redux Saga........................................................................................... 9
2.3.
Firebase ...................................................................................................... 10
2.4.
PostgreSQL ................................................................................................ 11
2.5.
Java ............................................................................................................ 12
2.6.
Spring......................................................................................................... 18
Chương 3.
XÂY DỰNG HỆ THỐNG ................................................................. 25
3.1.
Phát biểu bài toán ...................................................................................... 25
3.2.
Phân tích yêu cầu ....................................................................................... 26
3.2.1.
Yêu cầu nghiệp vụ .............................................................................. 26
3.2.2.
Yêu cầu chức năng ............................................................................. 27
3.2.3.
Yêu cầu phi chức năng ....................................................................... 28
3.3.
Thiết kế sơ đồ Usecase .............................................................................. 29
3.3.1.
Mơ hình use case tồn hệ thống ......................................................... 29
3.3.2.
Đặc tả usecase .................................................................................... 30
3.3.2.1.
Đăng ký tài khoản ....................................................................... 30
3.3.2.2.
Đăng nhập ................................................................................... 32
3.3.2.3.
Quên mật khẩu ............................................................................ 34
3.3.2.4.
Cập nhật thông tin tài khoản cá nhân .......................................... 37
3.3.2.5.
Quản lý thành viên trong gia đình .............................................. 39
3.3.2.6.
Quản lý các album gia đình ........................................................ 41
3.3.2.7.
Quản lý các công việc nhà .......................................................... 43
3.3.2.8.
Quản lý sự kiện trong gia đình .................................................... 45
3.3.2.9.
Quản lý thu chi hằng tháng ......................................................... 47
3.3.2.10. Định vị các thành viên ................................................................ 49
3.3.2.11. Hỗ trợ tương tác .......................................................................... 51
3.3.2.12. Quản lý các bài viết ẩm thực ...................................................... 53
3.4.
Thiết kế cơ sở dữ liệu ................................................................................ 55
3.4.1.
Bảng Users ......................................................................................... 56
3.4.2.
Bảng Families ..................................................................................... 57
3.4.3.
Bảng Albums ...................................................................................... 57
3.4.4.
Bảng Photos........................................................................................ 58
3.4.5.
Bảng PhotosInAlbums........................................................................ 58
3.4.6.
Bảng UserFirebaseToken ................................................................... 59
3.4.7.
Bảng Chores ....................................................................................... 59
3.4.8.
Bảng ChoreAlbums ............................................................................ 60
3.4.9.
Bảng PhotosInChoreAlbums .............................................................. 60
3.4.10.
Bảng Events .................................................................................... 60
3.4.11.
Bảng GroupEvents .......................................................................... 61
3.4.12.
Bảng EventAlbums ......................................................................... 62
3.4.13.
Bảng PhotosInEvents ...................................................................... 62
3.4.14.
Bảng UsersInCallRooms ................................................................ 63
3.4.15.
Bảng Notifications .......................................................................... 63
3.4.16.
Bảng Transactions .......................................................................... 64
3.4.17.
Bảng TransactionPhotos ................................................................. 64
3.4.18.
Bảng PhotosInTransactions ............................................................ 65
3.4.19.
Bảng TransactionCategories ........................................................... 65
3.4.20.
Bảng TransactionGroup .................................................................. 66
3.4.21.
Bảng CuisinePosts .......................................................................... 66
3.4.22.
Bảng CuisinePostPool .................................................................... 67
3.4.23.
Bảng UserReactCuisinePost ........................................................... 67
3.5.
Thiết kế giao diện ...................................................................................... 68
Chương 4.
4.1.
ÁP DỤNG THUẬT TOÁN................................................................ 90
Một số định nghĩa ...................................................................................... 90
4.1.1.
Utility matrix ...................................................................................... 90
4.1.2.
Cosine similarity ................................................................................ 91
4.1.3.
Reddit’s hot ranking ........................................................................... 93
4.1.3.1.
Hiện tượng snowball ................................................................... 93
4.1.3.2.
Ảnh hưởng của yếu tố thời gian .................................................. 93
4.1.3.3.
The logarithm scale ..................................................................... 94
4.1.3.4.
Ảnh hưởng của các lượt downvote ............................................. 95
4.1.3.5.
4.1.4.
4.2.
Phương pháp....................................................................................... 97
4.2.1.1.
Neighborhood-based collaborative filtering ............................... 97
4.2.1.2.
User-user collaborative filtering ................................................. 99
4.2.1.3.
Item-item collaborative filtering ............................................... 104
4.2.2.
Đánh giá ........................................................................................... 105
Áp dụng các thuật toán recommendation vào ứng dụng ......................... 106
Chương 5.
5.1.
Root Mean Squared Error (RMSE) .................................................... 97
Thực nghiệm .............................................................................................. 97
4.2.1.
4.3.
Tính điểm bài viết từ thời gian đăng bài ..................................... 96
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ....................................... 108
Kết quả đạt được ...................................................................................... 108
5.1.1.
Lý thuyết .......................................................................................... 108
5.1.2.
Công nghệ ........................................................................................ 108
5.1.3.
Ứng dụng .......................................................................................... 105
5.1.4.
Hạn chế............................................................................................. 108
5.2.
Hướng phát triển ...................................................................................... 109
DANH MỤC HÌNH
Hình 2.1: Mơ hình Event loop trong Javascript ......................................................... 6
Hình 2.2: Logo React Native ...................................................................................... 7
Hình 2.3: Logo Redux ................................................................................................ 8
Hình 2.4: Logo Redux-Saga ....................................................................................... 9
Hình 2.5: Logo Firebase ........................................................................................... 10
Hình 2.6: Logo PostgreSQL ..................................................................................... 11
Hình 2.7: Logo Java ................................................................................................. 12
Hình 2.8: Quy trình thơng dịch và biên dịch mã nguồn của Java ............................ 14
Hình 2.9: Minh hoạ máy ảo Java .............................................................................. 17
Hình 2.10: Minh hoạ JDK và JRE ............................................................................ 18
Hình 2.11: Logo Spring ............................................................................................ 18
Hình 2.12: Spring application context container ...................................................... 20
Hình 3.1: Sơ đồ use case tổng quát .......................................................................... 29
Hình 3.2: Use case đăng ký tài khoản ...................................................................... 30
Hình 3.3: Use case đăng nhập .................................................................................. 32
Hình 3.4: Use case quên mật khẩu ........................................................................... 34
Hình 3.5: Use case cập nhật thông tin tài khoản cá nhân ......................................... 37
Hình 3.6: Use case quản lý thành viên trong gia đình .............................................. 39
Hình 3.7: Use case quản lý album gia đình .............................................................. 41
Hình 3.8: Use case quản lý cơng việc nhà ................................................................ 43
Hình 3.9: Use case quản lý sự kiện trong gia đình ................................................... 45
Hình 3.10: Use case quản lý thu chi hằng tháng ...................................................... 47
Hình 3.11: Use case định vị các thành viên ............................................................. 49
Hình 3.12: Use case hỗ trợ tương tác ....................................................................... 51
Hình 3.13: Use case quản lý các bài viết ẩm thực .................................................... 53
Hình 3.14: Sơ đồ dữ liệu .......................................................................................... 55
Hình 3.15: Giao diện đăng nhập ............................................................................... 68
Hình 3.16: Giao diện đăng ký tài khoản .................................................................. 70
Hình 3.17: Giao diện xác thực tài khoản .................................................................. 71
Hình 3.18: Giao diện đặt lại mật khẩu mới .............................................................. 72
Hình 3.19: Giao diện quản lý thông tin tài khoản các nhân ..................................... 73
Hình 3.20: Giao diện quản lý danh sách gia đình và thành viên .............................. 74
Hình 3.21: Giao diện quản lý album gia đình .......................................................... 75
Hình 3.22: Giao diện cập nhật danh sách cơng việc nhà .......................................... 76
Hình 3.23: Giao diện tạo cơng việc mới................................................................... 77
Hình 3.24: Giao diện cập nhật danh sách sự kiện trong gia đình ............................. 78
Hình 3.25: Giao diện tạo sự kiện mới ...................................................................... 79
Hình 3.26: Giao diện hiển thị danh sách các mục thu chi hằng tháng ..................... 81
Hình 3.27: Giao diện tạo mục thu hoặc chi mới....................................................... 82
Hình 3.28: Giao diện hiển thị danh sách loại hình thu hoặc chi ............................... 83
Hình 3.29: Giao diện tạo loại hình thu hoặc chi mới ............................................... 84
Hình 3.30: Giao diện chat......................................................................................... 85
Hình 3.31: Giao diện gọi video call ......................................................................... 86
Hình 3.32: Giao diện định vị .................................................................................... 87
Hình 3.33: Giao diện hiển thị các bài viết ẩm thực .................................................. 88
Hình 3.34: Giao diện tạo bài viết ẩm thực mới ........................................................ 89
Hình 4.1: Ví dụ về Utility matrix ............................................................................. 90
Hình 4.2: Cơng thức tính cosine similarity trên góc θ ............................................. 92
Hình 4.3: Độ tương quan giữa hai vector ................................................................. 92
Hình 4.4: Mơ tả thuật tốn Reddit’s hot ranking ...................................................... 93
Hình 4.5: Minh họa về xếp hạng các bài viết có cùng số lượt upvote và downvote
nhưng được đăng tải ở các mốc thời gian khác nhau ............................................... 94
Hình 4.6: Hàm logarithm.......................................................................................... 94
Hình 4.7: Cách tính điểm cho bài viết dựa trên số lượt up và downvote ................. 95
Hình 4.8: Ảnh hưởng của số lượt downvote đến xếp hạng của bài viết................... 96
Hình 4.9: Tính hiệu số giữa thời gian đăng bài và một mốc thời gian cố định trong
quá khứ ..................................................................................................................... 96
Hình 4.10: Cơng thức tính RMSE ............................................................................ 97
Hình 4.11: Ví dụ về user-item utility matrix ............................................................ 99
Hình 4.12: Ví dụ mơ tả User-user collaborative filtering ....................................... 101
Hình 4.13: Cơng thức chi tiết tính hằng số cosine của góc hợp thành bởi hai vector
A và B với 𝐴𝑖, 𝐵𝑖 là các chiều của hai vector A và B tương ứng ........................... 102
Hình 4.14: Cơng thức để dự đốn rating của user u lên user i ............................... 103
Hình 4.15: Ví dụ áp dụng cơng thức dự đốn kết quả ............................................ 103
Hình 4.16: Ví dụ item-item collaborative filtering................................................. 104
Hình 4.17: Gợi ý bài viết ẩm thực trong ứng dụng ................................................ 107
DANH MỤC BẢNG
Bảng 3.1: Yêu cầu nghiệp vụ ................................................................................... 26
Bảng 3.2: Yêu cầu chức năng ................................................................................... 28
Bảng 3.3: Đặc tả use case đăng ký tài khoản ........................................................... 31
Bảng 3.4: Đặc tả use case đăng nhập ....................................................................... 33
Bảng 3.5: Đặc tả use case quên mật khẩu ................................................................ 36
Bảng 3.6: Đặc tả use case cập nhật thông tin cá nhân .............................................. 38
Bảng 3.7: Đặc tả use case quản lý thành viên trong gia đình ................................... 40
Bảng 3.8: Đặc tả use case quản lý album gia đình ................................................... 42
Bảng 3.9: Đặc tả use case quản lý công việc nhà ..................................................... 44
Bảng 3.10: Đặc tả use case quản lý sự kiện trong gia đình ...................................... 46
Bảng 3.11: Đặc tả use case quản lý thu chi hằng tháng ........................................... 48
Bảng 3.12: Đặc tả use case định vị các thành viên................................................... 50
Bảng 3.13: Đặc tả use case hỗ trợ tương tác ............................................................ 52
Bảng 3.14: Đặc tả use case quản lý các bài viết ẩm thực ......................................... 54
Bảng 3.15: Users ...................................................................................................... 56
Bảng 3.16: Families .................................................................................................. 57
Bảng 3.17: Albums ................................................................................................... 57
Bảng 3.18: Photos..................................................................................................... 58
Bảng 3.19: PhotosInAlbums..................................................................................... 58
Bảng 3.20: UserFirebaseToken ................................................................................ 59
Bảng 3.21: Chores .................................................................................................... 59
Bảng 3.22: ChoreAlbums ......................................................................................... 60
Bảng 3.23: PhotosInChoreAlbums ........................................................................... 60
Bảng 3.24: Events..................................................................................................... 61
Bảng 3.25: GroupEvents .......................................................................................... 61
Bảng 3.26: EventAlbums ......................................................................................... 62
Bảng 3.27: PhotosInEvents ...................................................................................... 62
Bảng 3.28: UsersInCallRooms ................................................................................. 63
Bảng 3.29: Notifications........................................................................................... 63
Bảng 3.30: Transactions ........................................................................................... 64
Bảng 3.31: TransactionPhotos .................................................................................. 65
Bảng 3.32: PhotosInTransactions ............................................................................. 65
Bảng 3.33: TransactionCategories ........................................................................... 65
Bảng 3.34: TransactionGroup .................................................................................. 66
Bảng 3.35: CuisinePosts ........................................................................................... 67
Bảng 3.36: CuisinePostPool ..................................................................................... 67
Bảng 3.37: UserReactCuisinePost ............................................................................ 67
Bảng 3.38: Bảng mô tả giao diện đăng nhập ............................................................ 69
Bảng 3.39: Bảng mô tả giao diện đăng ký tài khoản ................................................ 70
Bảng 3.40: Bảng mô tả giao diện xác thực tài khoản ............................................... 71
Bảng 3.41: Bảng mô tả giao diện đặt lại mật khẩu mới ........................................... 72
Bảng 3.42: Bảng mô tả giao diện quản lý thông tin tài khoản các nhân .................. 73
Bảng 3.43: Bảng mô tả giao diện quản lý danh sách gia đình và thành viên ........... 74
Bảng 3.44: Bảng mơ tả giao diện quản lý album gia đình ....................................... 75
Bảng 3.45: Bảng mô tả giao diện cập nhật danh sách công việc nhà ....................... 76
Bảng 3.46: Bảng mô tả giao diện tạo công việc mới................................................ 77
Bảng 3.47: Bảng mô tả giao diện cập nhật danh sách sự kiện trong gia đình .......... 78
Bảng 3.48: Bảng mô tả giao diện tạo sự kiện mới ................................................... 80
Bảng 3.49: Bảng mô tả giao diện hiển thị danh sách các mục thu chi hằng tháng .. 81
Bảng 3.50: Bảng mô tả giao diện tạo mục thu hoặc chi mới.................................... 82
Bảng 3.51: Bảng mô tả giao diện tạo loại hình thu hoặc chi mới ............................ 84
Bảng 3.52: Bảng mô tả giao diện chat...................................................................... 85
Bảng 3.53: Mô tả giao diện gọi video call ............................................................... 86
Bảng 3.54: Mô tả giao diện định vị .......................................................................... 87
Bảng 3.55: Mô tả giao diện hiển thị các bài viết ẩm thực ........................................ 88
Bảng 3.56: Mô tả giao diện tạo bài viết ẩm thực mới .............................................. 89
Bảng 4.1: Thống kê RMSE trên 5 bộ split U1 đến U5........................................... 105
DANH MỤC TỪ VIẾT TẮT
Từ viết tắt
Từ đầy đủ
Giải thích
CSDL
Cơ sở dữ liệu
Cơ sở dữ liệu cho ứng dụng
API
Application Programming
Phương thức trung gian kết nối các
Interface
ứng dụng và thư viện khác nhau
User Interface/User
Giao diện người dùng/ Trải nghiệm
Experience
người dùng
Extensible Markup
Ngôn ngữ đánh dấu mở rộng
UI/UX
XML
Language
MVC
Model View Controller
Một dạng design pattern dựa trên 3
thành phần chính: Model, View,
Controller
OCR
Optical Character
Nhận diện ký tự quang học
Recognition
NBCF
Neighborhood-Based
Phương pháp lọc cộng tác
Collaborative Filtering
RMSE
Root-Mean-Square-Error
Sai số toàn phương trung bình
NLP
Natural Language
Xử lý ngơn ngữ tự nhiên
Processing
KNN
K-Nearest Neibors
Giải thuật giúp tìm ra label cho K
điểm gần nhất trong dataset