ĐẠI HỌC QUỐC QIA TP. HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM
----------
BÁO CÁO
ĐỒ ÁN 1
Lớp: SE121.M21.PMCL
Đề tài: Ứng dụng Mạng Xã Hội
Giảng viên hướng dẫn:
Thầy Mai Trọng Khang
Nhóm thực hiện:
19520898
Lưu Ngọc Sáng
19520646
Võ Hồng Đức Khoa
TPHCM, tháng 6 năm 2022
Mục lục
Chương 1: Thông tin chung
5
1.1
Tên đề tài : Ứng dụng mạng xã hội........................................................................ 5
1.2
Môi trường phát triển ứng dụng (dự kiến) : React Native, NodeJS ....................... 5
1.3
Thơng tin nhóm ...................................................................................................... 5
Chương 2: Phát biểu bài tốn
1.1
6
Trình bày khảo sát hiện trạng................................................................................. 6
1.1.1
Nhu cầu thực tế của đề tài ............................................................................... 6
1.1.2
Các yêu cầu của hệ thống ................................................................................ 6
Chương 3: Mô hình use case
7
2.1
Sơ đồ Use-case ....................................................................................................... 7
2.2
Danh sách các Actor .............................................................................................. 7
2.3
Danh sách các use-case .......................................................................................... 7
2.4
Đặc tả use-case ....................................................................................................... 8
2.4.1
Đặc tả usecase “Đăng nhập” ........................................................................... 8
2.4.2
Đặc tả usecase “Đăng xuất” ............................................................................ 9
2.4.3
Đặc tả usecase “Đăng kí” ................................................................................ 9
2.4.4
Đặc tả usecase “Thay đổi mật khẩu”............................................................. 10
2.4.5
Đặc tả usecase “CRUD bài viết” ................................................................... 11
2.4.6
Đặc tả usecase “Chia sẻ bài viết” .................................................................. 12
2.4.7
Đặc tả usecase “CRUD thông tin cá nhân” ................................................... 13
2.4.7.1
Xem thông tin cá nhân
13
2.4.7.2
Sửa thông tin cá nhân
13
2.4.8
Đặc tả usecase “Gửi tin nhắn”....................................................................... 14
2.4.9
Đặc tả usecase “Theo dõi bài viết của người khác” ...................................... 15
2.4.10 Đặc tả usecase “Bỏ theo dõi bài viết” ........................................................... 16
2.4.11 Đặc tả use case “Tìm kiếm người dùng”....................................................... 16
Chương 4: Phân tích
3.1
18
Sơ đồ lớp (mức phân tích).................................................................................... 18
3.1.1
Sơ đồ lớp (mức phân tích) ............................................................................. 18
3.1.2
Danh sách các lớp đối tượng và quan hệ....................................................... 18
3.1.3
Mô tả chi tiết từng lớp đối tượng .................................................................. 19
3.1.3.1
Lớp “User”
19
3.1.3.2
Lớp “Profile”
19
3.1.3.3
Lớp “Post”
19
3.1.3.4
Lớp “Comment”
20
3.1.3.5
Lớp “Conversation”
20
3.1.3.6
Lớp “Message”
20
Chương 5: Thiết kế dữ liệu
22
4.1
Sơ đồ logic ........................................................................................................... 22
4.2
Mô tả chi tiết các kiểu dữ kiệu trong sơ đồ logic ................................................. 23
4.2.1
Bảng “Account” ............................................................................................ 23
4.2.2
Bảng “Profile” ............................................................................................... 23
4.2.3
Bảng “Product” ............................................................................................. 23
4.2.4
Bảng “ProductProperties” ............................................................................. 24
4.2.5
Bảng “Category” ........................................................................................... 24
4.2.6
Bảng “CategoryProperties” ........................................................................... 24
4.2.7
Bảng “Image” ................................................................................................ 25
Chương 6: Thiết kế kiến trúc
5.1
25
Kiến trúc hệ thống ................................................................................................ 25
Chương 7: Thiết kế giao diện
27
6.1
Danh sách các màn hình ...................................................................................... 27
6.1
Mơ tả chi tiết mỗi màn hình ................................................................................. 28
6.1.1
Đăng nhập ..................................................................................................... 28
6.1.2
Đăng ký ......................................................................................................... 29
6.1.3
Trang chủ....................................................................................................... 31
6.1.4
Tạo bài đăng .................................................................................................. 33
6.1.5
Comment bài đăng ........................................................................................ 34
6.1.6
Thông báo ...................................................................................................... 35
6.1.7
Thông tin người dùng đăng nhập .................................................................. 36
6.1.8
Chỉnh sửa thông tin người dùng .................................................................... 37
6.1.9
Danh sách following ..................................................................................... 39
6.1.10 Thông tin người dùng khác ........................................................................... 41
6.1.11 Chat ............................................................................................................... 42
6.1.12 Chat room ...................................................................................................... 43
Chương 8: Kết luận
45
7.1
Môi trường phát triển và môi trường triển khai ................................................... 45
7.1.1
Môi trường phát triển ứng dụng .................................................................... 45
7.1.2
Môi trường triển khai ứng dụng .................................................................... 45
7.2
Kết quả đạt được .................................................................................................. 45
7.3
Khó khăn gặp phải ............................................................................................... 45
7.4
Hướng phát triển .................................................................................................. 45
7.5
Bảng phân công công việc ................................................................................... 47
Chương 1: Thông tin chung
1.1 Tên đề tài : Ứng dụng mạng xã hội
1.2 Môi trường phát triển ứng dụng (dự kiến) : React Native, NodeJS
-
Hệ điều hành: Microsoft Windows, Linux
-
Hệ quản trị cơ sở dữ liệu: Firebase
-
Công cụ phân tích thiết kế: Draw.io, Figma
-
Cơng cụ xây dựng ứng dụng: Visual Studio Code, Postman
1.3 Thơng tin nhóm
STT
MSSV
Họ và tên
Email
1
19520898
Lưu Ngọc Sáng
2
19520646
Võ Hoàng Đức Khoa
Chương 2: Phát biểu bài tốn
1.1
Trình bày khảo sát hiện trạng
1.1.1
Nhu cầu thực tế của đề tài
Những năm gần đây, mạng xã hội (MXH) đã có bước phát triển mạnh mẽ, tác động lớn
đến đời sống xã hội ở hầu hết các quốc gia trên thế giới, trong đó có Việt Nam.
MXH góp phần tích cực vào sự phát triển nhận thức, tư duy và kỹ năng sống của con
người. MXH đang ngày càng trở thành nơi cung cấp tin tức, kiến thức về tất cả các lĩnh
vực của đời sống xã hội. Chỉ với một vài thao tác đơn giản, người dùng sẽ luôn nhận
được những thông tin cập nhật kịp thời về lĩnh vực, vấn đề mà mình quan tâm theo dõi.
Qua đó giúp họ có thể nắm bắt được các xu thế của đời sống phục vụ cho cơng việc và
cuộc sống của mình.
MXH góp phần tích cực vào sự phát triển của văn hóa cộng đồng. Văn hóa MXH là một
bộ phận của văn hóa cộng đồng và có ảnh hưởng ngày càng lớn đến văn hóa cộng đồng.
Nhờ áp dụng tiến bộ của khoa học kỹ thuật, MXH cho phép người dùng có thể kết nối,
tương tác với bạn bè, gia đình, cộng đồng ngày một thuận tiện hơn.
MXH góp phần thúc đẩy q trình hội nhập quốc tế trên lĩnh vực văn hóa của Việt
Nam. Các MXH, nhất là MXH xuyên quốc gia như Facebook, Youtube… đã tạo ra
những cơ hội, khả năng tiếp xúc, giao lưu văn hóa, thúc đẩy xích lại gần nhau, hiểu biết
lẫn nhau giữa dân tộc ta với các dân tộc khác trên thế giới.
Nhận thấy điều đó, nhóm quyết định làm app mạng xã hội để mọi người kết nối chia sẻ,
tiếp nhận thông tin một cách nhanh chóng và hiệu quả
1.1.2
Các yêu cầu của hệ thống
1
Cho phép tạo, chia sẻ, bình luận và react bài đăng
2
Chức năng chat thời gian thực
3
Chức năng đăng nhập, đổi mật khẩu, xem và cập nhật thông tin cá nhân
4
Theo dõi người dùng khác
5
Gửi thông báo bài viết tới người dùng
6
Đáp ứng được lưu lượng truy xuất lớn
7
Giao diện trực quan, thân thiện với người dùng
Chương 3: Mơ hình use case
2.1 Sơ đồ Use-case
*Mọi usecase bên dưới đều yêu cầu đăng nhập hoặc đăng kí trước (quan hệ include)
CRUD thông
tin cá nhân
Chia sẻ bài viết
Gửi thơng báo bài
viết tới người
dùng
Nhắn tin nhóm
CRUD bài viết
<<extend>>
CRUD bình
luận
Nhắn tin
Bỏ theo dõi bài
viết
<<extend>>
Theo dõi bài
viết của người
khác
Tìm kiếm
người dùng
2.2 Danh sách các Actor
STT
1
Tên Actor
Người dùng
Ý nghĩa/Ghi chú
Người sử dụng phần mềm
2.3 Danh sách các use-case
STT
Tên Use-case
Ý nghĩa/Ghi chú
1
Đăng nhập
2
Đăng kí
3
Cập nhật thơng tin cá nhân
4
Thay đổi mật khẩu
5
Gửi thơng báo bài viết tới
người dùng
Gửi thơng báo mỗi khi có bài viết mới
6
Nhắn tin
Nhắn tin realtime giữa 2 người
7
Theo dõi bài viết của người
khác
8
CRUD bài viết
9
Tìm kiếm người dùng
10
Nhắn tin nhóm
Thêm/Xóa/Sửa bài viết
Nhắn tin giữa nhiều người cùng lúc
11
Bỏ theo dõi bài viết
Bỏ theo dõi người nào đó
2.4 Đặc tả use-case
2.4.1 Đặc tả usecase “Đăng nhập”
Tên chức năng
Đăng nhập
Tóm tắt
Chức năng đăng nhập vào ứng dụng
Dịng sự kiện chính
1. Ứng dụng hiển thị form đăng nhập.
2. Người dùng nhập tài khoản và mật khẩu rồi bấm nút
“Đăng nhập”
3. Ứng dụng giao tiếp với server để kiểm tra thông tin
đăng nhập
(Dịng sự kiện khác: Thơng tin đăng nhập sai).
4.Ứng dụng chuyển sang màn hình chính (màn hình hiển
thị bài viết).
Dịng sự kiện khác
1. Thơng tin đăng nhập sai:
Ứng dụng hiển thị thông báo “Thông tin đăng nhập sai”
Các yêu cầu đặc biệt
Khơng có
Trạng thái hệ thống trước Ứng dụng khởi động thành công
khi thực thiện use case
Điều kiện: không có
Trạng thái hệ thống sau Người dùng đăng nhập thành công và được chuyển đến
khi thực hiện use case
trang chủ của ứng dụng (hiển thị danh sách bài viết)
Điểm mở rộng
Khơng có
2.4.2 Đặc tả usecase “Đăng xuất”
Tên chức năng
Đăng xuất
Tóm tắt
Đăng xuất khỏi ứng dụng
Dịng sự kiện chính
1. Người dùng bấm nút Đăng xuất
2. Ứng dụng xố thơng tin người dùng trên thiết bị và
chuyển người dùng về trang đăng nhập
Dòng sự kiện khác
Khơng có
Các u cầu đặc biệt
Khơng có
Trạng thái hệ thống trước Điều kiện: người dùng đã đăng nhập thành công
khi thực hiện use case
Trạng thái hệ thống sau Người dùng đăng xuất thành công
khi thực hiện use case
Ứng dụng chuyển về trang đăng nhập
Thông tin người dùng được lưu ở thiết bị (nếu có) xố
thành cơng
Điểm mở rộng
Khơng có
2.4.3 Đặc tả usecase “Đăng kí”
Tên chức năng
Đăng kí
Tóm tắt
Dịng sự kiện chính
1. Người dùng nhấn vào nút Đăng kí
2. Ứng dụng hiển thị form Đăng kí
2. Người dùng nhập những thơng tin cần thiết, sau đó bấm
nút “Tạo tài khoản”
3. Hệ thống kiểm tra thơng tin đăng kí và chuyển người
dùng sang trang chủ của ứng dụng (trang hiển thị danh
sách bài viết)
(Dịng sự kiện khác: Thơng tin đăng kí khơng hợp lệ).
Dịng sự kiện khác
1. Thơng tin khơng hợp lệ:
Ứng dụng hiển thị thông báo lỗi ở trường dữ liệu được
cho là không hợp lệ
Các yêu cầu đặc biệt
Khơng có
Trạng thái hệ thống trước Điều kiện: Khơng có
khi thực hiện use case
Trạng thái hệ thống sau Tài khoản của người dùng dược tạo thành công trên hệ
khi thực hiện use case
thống
Điểm mở rộng
Khơng có
2.4.4 Đặc tả usecase “Thay đổi mật khẩu”
Tên chức năng
Thay đổi mật khẩu
Tóm tắt
Thay đổi mật khẩu cho tài khoản người dùng
Dịng sự kiện chính
1. Người dùng nhấn tài khoản của mình và chọn “Thay
đổi mật khẩu”
2. Người dùng nhập mật khẩu cũ, mật khẩu mới và xác
nhận mật khẩu mới
Dịng sự kiện khác
Khơng có
Các yêu cầu đặc biệt
Mật khẩu mới phải trùng với mật khẩu xác nhận
Trạng thái hệ thống trước Actor: tất cả các actor
khi thực thiện use case
Điều kiện: người dùng đã đăng nhập hệ thống
Trạng thái hệ thống sau Người dùng thay đổi mật khẩu
khi thực hiện use case
Điểm mở rộng
Khơng có
2.4.5 Đặc tả usecase “CRUD bài viết”
Tên chức năng
CRUD bài viết
Tóm tắt
Thêm, xố, sửa bài viết của chính mình
Xem bài viết của mọi user trong hệ thống
Dịng sự kiện chính
❖ Tạo bài viết:
1. Người dùng mở trang chủ của ứng dụng
2. Người dùng nhấn vào nút tạo bài viết
3. Nhập thông tin bài viết (ảnh, text)
4. Ứng dụng lưu dữ liệu đã được nhập vào, tạo bài
viết và thêm vào hệ thống
(Dòng sự kiện khác: Thông tin không hợp lệ, lỗi upload
ảnh)
❖ Chỉnh sửa bài viết:
1. Người dùng bấm vào bài viết muốn chỉnh sửa
2. Chọn tuỳ chọn chỉnh sửa => hệ thống hiển thị giao
diện chỉnh sửa bài viết
3. Người dùng chỉnh sửa bài viết và bấm lưu
(Dịng sự kiện khác: Cập nhật lỗi )
❖ Xố bài viết: (chỉ xoá bài viết của bản thân)
1. Người dùng bấm vào nút xoá bài viết tại menu tuỳ
chọn bài viết
2. Hệ thống xoá bài viết và ứng dụng cập nhật lại giao
diện
❖ Xem bài viết:
1. Người dùng chuyển sang trang chính của ứng dụng
=> ứng dụng hiển thị danh sách bài viết
Dịng sự kiện khác
1,3. Thơng tin khơng hợp lệ, Cập nhật lỗi:
Ứng dụng hiển thị thông báo lỗi tại vị trí dữ liệu được cho
là khơng hợp lệ
2. Lỗi upload ảnh:
Ứng dụng hiển thị thông báo lỗi “Không thể upload ảnh”
Các u cầu đặc biệt
Khơng có
Trạng thái hệ thống trước Điều kiện: Người dùng đã đăng nhập vào hệ thống.
khi thực hiện use case
Trạng thái hệ thống sau Ứng dụng thực hiện chức năng được định nghĩa
khi thực thiện use case
Điểm mở rộng
Khơng có
2.4.6 Đặc tả usecase “Chia sẻ bài viết”
Tên chức năng
Tóm tắt
Chia sẻ bài viết
Dịng sự kiện chính
1. Người dùng bấm vào chia sẻ bài viết
2. Hệ thống lưu thông tin và cập nhật lại giao diện
Dịng sự kiện khác
Khơng có
Các u cầu đặc biệt
Khơng có
Trạng thái hệ thống trước Điều kiện: Khơng có
khi thực hiện use case
Trạng thái hệ thống sau Thông tin được lưu thành công
khi thực thiện use case
Điểm mở rộng
Không có
2.4.7 Đặc tả usecase “CRUD thơng tin cá nhân”
2.4.7.1 Xem thơng tin cá nhân
Tên chức năng
Xem thơng tin cá nhân
Tóm tắt
Dịng sự kiện chính
1. Người dùng chuyển tới trang cá nhân
2. Người dùng bấm vào nút xem thơng tin
Dịng sự kiện khác
Khơng có
Các u cầu đặc biệt
Khơng có
Trạng thái hệ thống trước Điều kiện: Khơng có
khi thực hiện use case
Trạng thái hệ thống sau Hệ thống không thay đổi
khi thực thiện use case
Điểm mở rộng
Khơng có
2.4.7.2 Sửa thơng tin cá nhân
Tên chức năng
Sửa thông tin cá nhân
Tóm tắt
Dịng sự kiện chính
1. Người dùng chuyển tới trang cá nhân
2. Người dùng bấm vào nút xem thông tin
3. Người dùng bấm nút sửa thông tin
4. Người dùng nhập thơng tin muốn sửa sau đó bấm nút
“Cập nhật”
(Dịng sự kiện khác: Thông tin cập nhật không hợp lệ).
5. Hệ thống lưu thơng tin
Dịng sự kiện khác
1. Thơng tin khơng hợp lệ:
Ứng dụng hiển thị thông báo lỗi ở trường dữ liệu được
cho là không hợp lệ
Các yêu cầu đặc biệt
Khơng có
Trạng thái hệ thống trước Điều kiện: Người dùng đăng nhập thành công vào ứng
khi thực hiện use case
dụng
Trạng thái hệ thống sau Người dùng cập nhật thông tin người dùng thành công vào
khi thực thiện use case
hệ thống.
Điểm mở rộng
Khơng có
2.4.8 Đặc tả usecase “Gửi tin nhắn”
Tên chức năng
Gửi tin nhắn
Tóm tắt
Gửi và nhận tin nhắn (ảnh, text) realtime đến/ từ người
khác
Dịng sự kiện chính
1. Người dùng bấm vào icon tin nhắn ở thanh điều hướng
tại trang chủ của ứng dụng
2. Ứng dụng hiển thị màn hình “danh sách tin nhắn” chứa
các cuộc hội thoại của người dùng được trả về từ server
3. Người dùng chọn cuộc hội thoại muốn gửi tin nhắn
4. Ứng dụng hiển thị các tin nhắn gần đây của người dùng
5. Người dùng nhập nội dung tin nhắn (ảnh, text) và bấm
gửi
6. Ứng dụng thực hiện giao tiếp với server gửi tin nhắn
của người dùng đi và cập nhật lại giao diện
Dòng sự kiện khác
Các yêu cầu đặc biệt
Khơng có
Trạng thái hệ thống trước Điều kiện: Người dùng đã đăng nhập thành công vào ứng
khi thực hiện use case
dụng
Trạng thái hệ thống sau Hệ thống không thay đổi
khi thực thiện use case
Điểm mở rộng
Tin nhắn nhóm:
Tại giao diện “danh sách tin nhắn”, người dùng chọn thẻ
“room chat” để chuyển đến trang tin nhắn
* Giống flow chính từ bước số 3
2.4.9 Đặc tả usecase “Theo dõi bài viết của người khác”
Tên chức năng
Theo dõi bài viết của người khác
Tóm tắt
Ứng dụng hiển thị bài viết của người được theo dõi
Dịng sự kiện chính
1. Người dùng chọn hoặc tìm kiếm người muốn theo dõi
2. Chọn nút theo dõi ở trang cá nhân của đối tượng
Dịng sự kiện khác
Các u cầu đặc biệt
Khơng có
Trạng thái hệ thống trước Khơng có
khi thực hiện use case
Trạng thái hệ thống sau Đối tượng được thêm vào danh sách theo dõi của người
khi thực thiện use case
dùng
Điểm mở rộng
Bỏ theo dõi bài viết
2.4.10 Đặc tả usecase “Bỏ theo dõi bài viết”
Tên chức năng
Bỏ theo dõi bài viết của người khác
Tóm tắt
Dịng sự kiện chính
1. Người dùng chọn hoặc tìm kiếm người muốn theo dõi
2. Chọn nút bỏ theo dõi ở trang cá nhân của đối tượng
Dòng sự kiện khác
Các u cầu đặc biệt
Khơng có
Trạng thái hệ thống trước Khơng có
khi thực hiện use case
Trạng thái hệ thống sau Đối tượng được xoá khỏi danh sách theo dõi của người
khi thực thiện use case
dùng
Điểm mở rộng
2.4.11 Đặc tả use case “Tìm kiếm người dùng”
Tên chức năng
Tìm kiếm người dùng
Tóm tắt
Dịng sự kiện chính
1. Khách hàng nhập nội dung tìm kiếm vào thanh tìm
kiếm và bấm Enter
2. Ứng dụng hiển thị danh sách người dùng
Dịng sự kiện khác
Khơng tìm thấy người dùng nào => hệ thống hiển thị giao
diện khơng tìm thấy người dùng
Các u cầu đặc biệt
Khơng có
Trạng thái hệ thống trước Khơng có
khi thực hiện use case
Trạng thái hệ thống sau Hệ thống hiển thị danh sách người dùng tìm thấy
khi thực thiện use case
Điểm mở rộng
Khơng có
Chương 4: Phân tích
3.1 Sơ đồ lớp (mức phân tích)
3.1.1 Sơ đồ lớp (mức phân tích)
3.1.2 Danh sách các lớp đối tượng và quan hệ
STT Tên lớp/quan hệ
Loại
Ý nghĩa/Ghi chú
1
User
Lớp
Lớp người dùng
2
Profile
Lớp
Lớp Thơng tin cá nhân
3
Post
Lớp
Lớp bài đăng
4
Comment
Lớp
Lớp bình luận
5
Group
Lớp
Lớp nhóm
6
Conversation
Lớp
Lớp cuộc trị chuyện
7
Message
Lớp
Lớp tin nhắn
3.1.3 Mơ tả chi tiết từng lớp đối tượng
3.1.3.1 Lớp “User”
a) Danh sách thuộc tính
ST
T
Tên thuộc tính
Loại
Ràng buộc
Ý nghĩa/ghi chú
1
id
String
Public
Mã người dùng
2
username
String
Public
Tên người dùng
3
email
String
Public
Email người dùng
4
profile
Profile
Public
Profile người dùng
STT Tên thuộc tính
Loại
Ràng buộc
Ý nghĩa/ghi chú
1
createUser
void
Public
Tạo người dùng
2
updateUser
void
Public
Cập nhật người dùng
3
deleteUser
void
Public
Xóa người dùng
STT Tên thuộc tính
Loại
Ràng buộc
Ý nghĩa/ghi chú
1
name
String
Public
Tên người dùng
2
surname
String
Public
Họ người dùng
STT Tên thuộc tính
Loại
Ràng buộc
Ý nghĩa/ghi chú
1
createProfile
void
Public
Tạo thông tin người dùng
2
updateProfile
void
Public
Cập nhật thông tin người
dùng
b) Danh sách phương thức
3.1.3.2 Lớp “Profile”
a) Danh sách thuộc tính
b) Danh sách phương thức
3.1.3.3 Lớp “Post”
a) Danh sách thuộc tính
STT Tên thuộc tính
Loại
Ràng buộc
Ý nghĩa/ghi chú
1
id
String
Public
Tên comment
2
author
User
Public
Tác giả bài post
3
comment
Comment[]
Public
Danh sách comment
STT Tên thuộc tính
Loại
Ràng buộc
Ý nghĩa/ghi chú
1
createPost
void
Public
Tạo bài post
2
updatePost
void
Public
Cập nhật bài post
3
deletePost
void
Public
Xóa bài post
STT Tên thuộc tính
Loại
Ràng buộc
Ý nghĩa/ghi chú
1
id
String
Public
Id comment
2
content
String
Public
Nội dung comment
STT Tên thuộc tính
Loại
Ràng buộc
Ý nghĩa/ghi chú
1
postComment
void
Public
Tạo comment
2
updateComment
void
Public
Cập nhật comment
3
deleteComment
void
Public
Xóa comment
STT Tên thuộc tính
Loại
Ràng buộc
Ý nghĩa/ghi chú
1
id
String
Public
Id consersation
2
userIds
String[]
Public
Consersation user ids
3
messages
Message[]
Public
Danh sách tin nhắn
STT Tên thuộc tính
Loại
Ràng buộc
Ý nghĩa/ghi chú
1
String
Public
Mã tin nhắn
b) Danh sách phương thức
3.1.3.4 Lớp “Comment”
a) Danh sách thuộc tính
b) Danh sách phương thức
3.1.3.5 Lớp “Conversation”
a) Danh sách thuộc tính
3.1.3.6 Lớp “Message”
a) Danh sách thuộc tính
id
2
userId
String
Public
Tác giả tin nhắn
3
content
String
Public
Nội dung tin nhắn
4
image
String
Public
Đường dẫn đến ảnh đính
kèm
STT Tên thuộc tính
Loại
Ràng buộc
Ý nghĩa/ghi chú
1
sendMessage
void
Public
Tạo tin nhắn
2
updateMessage
void
Public
Cập nhật tin nhắn
3
sendImage
void
Public
Gửi tin nhắn hình ảnh
b) Danh sách phương thức
Chương 5: Thiết kế dữ liệu
4.1 Sơ đồ logic
STT
Tên bảng dữ liệu
Diễn giải
1
User
Thông tin tài khoản người dùng
2
Profile
Chi tiết thông tin cá nhân
3
Post
Thông tin bài đăng
4
Comment
Thông tin comment
5
React
Thông tin reaction
6
PostContent
Thông tin chi tiết nội dung bài đăng
7
Conversation
Thông tin đoạn chat
8
Message
Thông tin 1 tin nhắn
4.2 Mô tả chi tiết các kiểu dữ kiệu trong sơ đồ logic
4.2.1 Bảng “User”
STT
Tên thuộc tính
Kiểu
Ràng buộc
Ý nghĩa/Ghi chú
1
id
string
Khóa chính, Not null,
Tạo tự động.
Mã tài khoản
2
username
string
Khơng null
Tên đăng nhập
3
email
string
4
profile
string
Email
Khơng null, khóa
ngoại
Mã profile
4.2.2 Bảng “Profile”
STT
1
Tên thuộc tính
id
Kiểu
string
Ràng buộc
Khóa chính, Not null,
Ý nghĩa/Ghi chú
Mã tài khoản
Tạo tự động.
Not null
Tên người dùng
2
name
string
3
picture
string
URI avatar người
dùng
4
gender
string
Giới tính
5
phone
string
Số điện thoại
6
posts
string[]
Khóa ngoại
Mã bài post
4.2.3 Bảng “Post”
STT
1
Tên thuộc tính
Kiểu
Ràng buộc
id
string
Khóa chính, Not null,
Ý nghĩa/Ghi chú
Mã bài đăng
Tạo tự động.
2
author
string
Not null, khóa ngoại
Mã người đăng bài
Loại bài viết
3
type
string
4
comments
string
Khóa ngoại
Mã comment
5
reacts
string
Khóa ngoại
Mã reactions
6
content
string
Not null, khóa ngoại
Mã nội dung bài
viết
4.2.4 Bảng “Comment”
Tên thuộc tính
Kiểu
Ràng buộc
1
id
string
Khóa chính, Not null,
tạo tự động
Mã comment
2
author
string
Not null, khóa ngoại
Mã người đăng bài
3
text
string
Not null
Nội dung comment
4
images
string
5
reacts
string
STT
Ý nghĩa/Ghi chú
Hình ảnh trong
comment
Khóa ngoại
Mã reaction
4.2.5 Bảng “PostContent”
Tên thuộc tính
Kiểu
Ràng buộc
1
id
string
Khóa chính, Not null,
Tạo tự động.
Mã post content
2
sharedPostId
string
Khóa ngoại
Mã bài được share
(nếu có)
3
text
string
Not null
Nội dung bài đăng
4
images
string
STT
Ý nghĩa/Ghi chú
Mã hình ảnh
4.2.6 Bảng “Reaction”
STT
1
Tên thuộc tính
Kiểu
Ràng buộc
id
string
Khóa chính, Not null,
Ý nghĩa/Ghi chú
Mã reaction
Tạo tự động.
2
type
string
Not null
Loại reaction
3
userId
string
Not null, khóa ngoại
Mã user reaction
4.2.7 Bảng “Conversation”
STT
1
Tên thuộc tính
Kiểu
Ràng buộc
Ý nghĩa/Ghi chú
id
string
Khóa chính, Not null,
Mã cuộc trị chuyện
Tạo tự động.
2
Participants
string
Not null, khóa ngoại
Mã người trong hội
thoại
Chương 6: Thiết kế kiến trúc
Kiến trúc hệ thống
Firebase là nền tảng được xây dựng, cung cấp bởi Google, hoạt động trên nền tảng Cloud
nhằm hỗ trợ phát triển các ứng dụng trên web và di động dựa trên nguyên tắc đơn giản
hóa thao tác lập trình. Các CSDL có sẵn mang đến khả năng code nhanh chóng, thuận
tiện hơn.
Ở mơ hình truyền thống, Frontend tương tác với Backend qua API, Backend sẽ làm các
phần việc xử lý data. Tuy nhiên với các app sử dụng Firebase, ta sẽ không cần Backend