Danh sách thuộc tính bảng client_group

Một phần của tài liệu Xây dựng ứng dụng hỗ trợ kết nối và hỗ trợ trong học tập (Trang 63)

Bảng dữ liệu comment: Lưu thơng tin bình luận của bài viết

STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Ý nghĩa

1 _id ObjectId Khóa chính Id của đối tượng

2 oid String Là duy nhất, tham

chiếu với khóa chính

Dạng text của _id

3 post_id String Bắt buộc Id của bài post

trong bình luận này

4 content String Nội dung bài viết

5 image String Nội dung hình

51

6 author_id String Bắt buộc Id tác giả

7 status Boolean Bắt buộc Trạng thái tồn tại

của bài viết

8 id_edited Boolean Bắt buộc Trạng thái đã

chỉnh sửa Bảng 2.24: Danh sách thuộc tính bảng comment

Bảng dữ liệu conversation: Lưu thơng tin cuộc hội thoại, thông tin người tham gia.

STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Ý nghĩa

1 _id ObjectId Khóa chính Id của đối tượng

2 oid String Là duy nhất, tham

chiếu với khóa chính

Dạng text của _id

3 name String Tên cuộc trò

chuyện

4 participants List<string> Bắt buộc Danh sách người

tham gia

5 status Boolean Bắt buộc Trạng thái

Bảng 2.25: Danh sách thuộc tính bảng conversation

Bảng dữ liệu downvote: Lưu thơng tin Downvote của đối tượng (Bài viết, Bình luận, Phản hồi bình luận)

STT Tên thuộc tính Kiểu dữ

liệu Ràng buộc Ý nghĩa

1 _id ObjectId Khóa chính Id của đối tượng

2 oid String Là duy nhất, tham

chiếu với khóa chính Dạng text của _id

3 object_vote_id String Tham chiếu tới oid

của đối tượng, có thể là post.oid,

comment.oid, reply_comment.oid

Id của đối tượng được downvote

52

4 downvote_by String Tham chiếu tới

user.oid

Id của người dùng thực hiện hành động downvote

5 is_deleted Boolean Bắt buộc Trạng thái

xóa/chưa xóa của đổi tượng

Bảng 2.26: Danh sách thuộc tính bảng “downvote”

Bảng dữ liệu external_login: Lưu thông tin đăng nhập bằng dịch vụ bên thứ ba của ứng dụng. Ví dụ: Google, Facebook, …

STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Ý nghĩa

1 _id ObjectId Khóa chính Id của đối tượng

2 oid String Là duy nhất,

tham chiếu với khóa chính

Dạng text của _id

3 login_provider String Bắt buộc Tên dịch vụ sử dụng

4 email String Bắt buộc, tham

chiếu

Email người dùng sử dụng để đăng nhập Bảng 2.27: Danh sách thuộc tính bảng external_login

Bảng dữ liệu fcm_info: Lưu thông tin dịch vụ Firebase Cloud Messaging.

STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Ý nghĩa

1 _id ObjectId Khóa chính Id của đối tượng

2 oid String Là duy nhất, tham

chiếu với khóa chính

Dạng text của _id

53

user.oid dùng

4 device_token String Bắt buộc Token của thiết

bị được cung cấp bởi Google Bảng 2.28: Danh sách thuộc tính bảng fcm_info

Bảng dữ liệu field: Lưu thông tin lĩnh vực của người dùng, của bài viết.

STT Tên thuộc tính Kiểu dữ liệu

Ràng buộc Ý nghĩa

1 _id ObjectId Khóa chính Id của đối tượng

2 oid String Là duy nhất, tham

chiếu với khóa chính

Dạng text của _id

3 value String Bắt buộc, duy nhất Tên lĩnh vực đó

4 status int Bắt buộc Trạng thái (chặn,

xóa, active, …) Bảng 2.29: Danh sách thuộc tính bảng field

Bảng dữ liệu follow: Lưu thơng tin theo dõi giữa các người dùng với nhau

STT Tên thuộc tính Kiểu dữ liệu

Ràng buộc Ý nghĩa

1 _id ObjectId Khóa chính Id của đối tượng

2 oid String Là duy nhất, tham

chiếu với khóa chính

Dạng text của _id

54

4 from_id String Bắt buộc, tham chiếu

tới user.oid

Id của người chủ động theo dõi.

5 to_id String Bắt buộc, tham chiếu

tới user.oid

Id của người được người khác theo dõi.

Bảng 2.30: Danh sách thuộc tính bảng follow Bảng dữ liệu level: Lưu thông tin các giá trị của cấp độ Bảng dữ liệu level: Lưu thông tin các giá trị của cấp độ

STT Tên thuộc tính Kiểu dữ liệu

Ràng buộc Ý nghĩa

1 _id ObjectId Khóa chính Id của đối tượng

2 oid String Là duy nhất, tham

chiếu với khóa chính

Dạng text của _id

3 name String Bắt buộc, duy nhất Tên gọi của cấp độ

4 description String Mô tả của cấp độ

5 order Int Bắt buộc Thứ tự ưu tiên

6 icon String Bắt buộc Tên file icon

9 is_active Boolean Bắt buộc Trạng thái hoạt

động Bảng 2.31: Danh sách thuộc tính bảng level

55

Bảng dữ liệu message_image: Lưu thơng tin các tin nhắn có hình ảnh hoặc file đa phương tiện

STT Tên thuộc tính Kiểu dữ liệu

Ràng buộc Ý nghĩa

1 _id ObjectId Khóa chính Id của đối tượng

2 oid String Là duy nhất, tham

chiếu với khóa chính

Dạng text của _id

3 sender_id String Tham chiếu với

user.oid

Id người gửi tin nhắn

4 convesation_id String Tham chiếu tới

conversation.oid

Id của cuộc hội thoại chứa tin nhắn này

5 is_edited Boolean Bắt buộc Trạng thái đã chỉnh

sửa

6 message_type Int Bắt buộc Loại tin nhắn

7 status Int Bắt buộc Trạng thái

Bảng 2.32: Danh sách thuộc tính bảng message_image

Bảng dữ liệu message_text: Lưu thơng tin tin nhắn có chứa nội dung văn bản

STT Tên thuộc tính Kiểu dữ liệu

Ràng buộc Ý nghĩa

1 _id ObjectId Khóa chính Id của đối tượng

56

với khóa chính

3 sender_id String Tham chiếu với user.oid Id người gửi tin

nhắn

4 convesation_id String Tham chiếu tới

conversation.oid

Id của cuộc hội thoại chứa tin nhắn này

5 is_edited Boolean Bắt buộc Trạng thái đã

chỉnh sửa

6 message_type Int Bắt buộc Loại tin nhắn

7 status Int Bắt buộc Trạng thái

8 created_date DateTime Bắt buộc Ngày tạo

9 modified_date DateTime Bắt buộc Ngày chỉnh sửa

10 content List<string> Nội dung

Bảng 2.33: Danh sách thuộc tính bảng message_text Bảng dữ liệu notification_detail: Lưu thông tin chi tiết thông báo Bảng dữ liệu notification_detail: Lưu thông tin chi tiết thơng báo

ST T

Tên thuộc tính Kiểu dữ liệu

Ràng buộc Ý nghĩa

1 _id ObjectId Khóa chính Id của đối tượng

2 oid String Là duy nhất, tham

chiếu với khóa chính

Dạng text của _id

3 notification_object_

id

String Tham chiếu với

nofitication_object.

Id của

57

oid

4 creator_id String Tham chiếu tới

user.oid

Id của người thực hiện hành động tao ra thông báo

5 receiver_id String Tham chiếu tới

user.oid

Id của người nhận thông báo

6 created_date DateTime Bắt buộc Ngày tạo

7 modified_date DateTime Bắt buộc Ngày chỉnh sửa

8 is_read Boolean Bắt buộc Trạng thái đã xem

thông báo hay chưa

9 is_deleted Boolean Bắt buộc Trạng thái đã

xóa/chưa xóa của thơng báo

Bảng 2.34: Danh sách thc tính bảng notification_detail

Bảng dữ liệu notification_object: Lưu thơng tin nguồn gốc thơng báo dính tới đối tượng

STT Tên thuộc tính Kiểu dữ

liệu Ràng buộc

Ý nghĩa

1 _id ObjectId Khóa chính Id của đối tượng

2 oid String Là duy nhất, tham chiếu

với khóa chính Dạng text của _id

3 object_id String

Tham chiếu tới user.oid, post.oid, comment.oid, reply_comment.oid

Thông tin Id của đối tượng liên quan thông báo

58

4 owner_id String Tham chiếu tới user.oid Thông tin id người

sở hữu đối tượng

5 notification_type String Bắt buộc. Tham chiếu

tới notification_type.oid Loại thông báo Bảng 2.35: Danh sách thuộc tính bảng notification_object

Bảng dữ liệu object_level: Lưu thơng tin cấp độ, lĩnh vực của một đối tượng, ví dụ như người dùng hoặc bài viết

STT Tên thuộc tính Kiểu dữ

liệu Ràng buộc

Ý nghĩa

1 _id ObjectId Khóa chính Id của đối tượng

2 oid String Là duy nhất, tham chiếu

với khóa chính Dạng text của _id

3 object_id String Tham chiếu tới user.oid,

post.oid

Id của đối tượng cần lưu cấp độ

4 field_id String Tham chiếu tới field.oid Id của lĩnh vực

5 level_id String Tham chiếu tới level.oid Id của cấp độ

6 point Int Chỉ có user mới có giá

trị

Điểm hoạt động theo lĩnh vực

7 created_date DateTime Bắt buộc Ngày tạo

8 modified_date DateTime Bắt buộc Ngày chỉnh sửa

9 is_active Boolean Bắt buộc Trạng thái hoạt

động (bị ẩn, hiện) Bảng 2.36: Danh sách thuộc tính bảng object_level

59

Bảng dữ liệu post: Lưu thông tin bài viết của người dùng

STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Ý nghĩa

1 _id ObjectId Khóa chính Id của đối tượng

2 oid String Là duy nhất, tham

chiếu với khóa chính Dạng text của _id

3 title String Bắt buộc Là tiêu đề bài viết

4 author_id String Tham chiếu tới

user.oid Id tác giả

5 created_date DateTime Bắt buộc Ngày tạo

6 modified_date DateTime Bắt buộc Ngày chỉnh sửa

7 string_contents List<object> Nội dung dạng

văn bản

8 image_contents List<object> Nội dung đa

phương tiện

9 Status Int Bắt buộc Trạng thái

Bảng 2.37: Danh sách thuộc tính bảng post

Bảng dữ liệu reply_comment: Lưu thơng tin phản hồi bình luận của người dùng

STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Ý nghĩa

1 _id ObjectId Khóa chính Id của đối tượng

60

chiếu với khóa chính

3 parent_id String Tham chiếu tới

comment.oid

Id của bình luận mà nó được trả lời

4 content String Bắt buộc Nội dung

5 author_id String Tham chiếu tới

user.oid Id tác giả

6 status Int Bắt buộc Trạng thái

7 created_date DateTime Bắt buộc Ngày tạo

8 modified_date DateTime Bắt buộc Ngày chỉnh sửa

9 is_edited Boolean Bắt buộc Trạng thái chỉnh

sửa Bảng 2.38: Danh sách thuộc tính bảng reply_comment

Bảng dữ liệu report: Lưu thông tin báo cáo sai phạm của người dùng đối với một đối tượng

STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Ý nghĩa

1 _id ObjectId Khóa chính Id của đối tượng

2 oid String Là duy nhất, tham

chiếu với khóa chính Dạng text của _id

3 author_id String Tham chiếu tới

user.oid

Id người tạo báo cáo

61

post.oid, comment.oid, reply_comment.oid, user.oid

báo cáo

5 object_type String Loại đối tượng

6 reason List<string> Id của report_reason Danh sách Id lý

do báo cáo

7 is_approved Boolean Trạng thái duyệt

8 approve_by String Tham chiếu tới

user.oid Người duyệt

9 approve_date DateTime Ngày duyệt

10 created_date DateTime Bắt buộc Ngày tạo

11 modified_date DateTime Bắt buộc Ngày chỉnh sửa

Bảng 2.39: Danh sách thuộc tính bảng report

Bảng dữ liệu upvote: Lưu dữ liệu upvote của người dùng với đối tượng

STT Tên thuộc tính Kiểu dữ

liệu Ràng buộc

Ý nghĩa

1 _id ObjectId Khóa chính Id của đối tượng

2 oid String Là duy nhất, tham

chiếu với khóa chính Dạng text của _id

3 object_vote_id String Tham chiếu tới oid

của đối tượng, có thể là post.oid,

comment.oid, reply_comment.oid

Id của đối tượng được downvote

4 upvote_by String Tham chiếu tới

user.oid

Id của người dùng thực hiện hành động upvote

62

xóa/chưa xóa của đổi tượng

Bảng 2.40: Danh sách thuộc tính bảng upvote Bảng dữ liệu user: Thông tin người dùng Bảng dữ liệu user: Thông tin người dùng

STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Ý nghĩa

1 _id ObjectId Khóa chính Id của đối tượng

2 oid String Là duy nhất, tham

chiếu với khóa chính Dạng text của _id

3 first_name string Bắt buộc Họ

4 last_name String Bắt buộc Tên lót và tên

5 date_of_birth DateTime Bắt buộc Ngày sinh

6 email String

Là duy nhất, tham chiếu với

account.email

Email

7 phone_number String Bắt buộc, là duy nhất Số điện thoại

8 address Object Địa chỉ

9 avatar Object Ảnh đại diện

10 avatar_hash String Url hình ảnh

11 call_id string Id video call

12 refresh_token String Refresh token

gần nhất

63

khoản

14 created_date DateTime Bắt buộc Ngày tạo

15 modified_date DateTime Bắt buộc Ngày chỉnh sửa

16 additional_infos Dictionary Thông tin thêm

17 post_saved List<string> Danh sách bài

viết đã lưu

18 jwt_tokens List<string> Danh sách token

đang hoạt động Bảng 2.41: Danh sách thuộc tính bảng user

2.2.3. Thiết kế kiến trúc hệ thống 2.2.3.1. Kiến trúc tổng thể hệ thống 2.2.3.1. Kiến trúc tổng thể hệ thống

Ảnh 2.16: Sơ đồ hệ thống Trong đó: Trong đó:

- CoStudy App: Ứng dụng di động đang phát triển. Cũng là sản phẩm của đề

64 - .NET Core Server: Server của hệ thống.

- .NET Admin: Trang quản lý người dùng.

- Firebase Cloud Messaging: Hệ thống gửi tin thời gian thực.

- Firebase Storage: Nơi lưu trữ dữ liệu trực tuyến của Firebase.

- Firebase Authentication: API Xác thực của Firebase.

- Google Maps API: Để xác định khoảng cách và vị trí người dùng.

- MongoDb: Database của hệ thống

- SMTP Mail Server: Mail server của hệ thống

2.2.3.2. Kiến trúc ứng dụng di động

Ảnh 2.17: Kiến trúc ứng dụng di động

2.2.4. Thiết kế giao diện

2.2.4.1. Danh sách màn hình

Màn hình cho ứng dụng di động

STT Tên màn hình Mơ tả chức năng

1 Đăng nhập – 1 Màn hình đăng nhập 1

65

3 Đăng kí – 1 Màn hình đăng kí 1

4 Đăng kí – 2 Màn hình đăng kí 2

5 Bài viết đã lưu Màn hình danh sách bài viết đã

lưu của người dùng

6 Lĩnh vực cá nhân Màn hình chứa thơng tin các lĩnh

vực cá nhân của người dùng

7 Bảng tin Màn hình chứa bảng tin của người

dùng

8 Bảng xếp hạng

Màn hình bảng xếp hạng điểm hoạt động theo lĩnh vực của người dùng

9 Báo cáo bài viết Màn hình báo cáo nội dung vi

phạm của người dùng

10 Cập nhật thơng tin

Màn hình cập nhật thơng tin của người dùng như thông tin cơ bản, thông tin lĩnh vực

11 Chi tiết bài viết

Màn hình chứa thơng tin chi tiết bài viết như thông tin bài viết, một số bình luận của bài viết…

12 Chi tiết bình luận

Chứa thơng tin chi tiết bình luận và thơng tin các phản hồi bình luận

13 Đăng bài viết Màn hình chứa các tác vụ cho hoạt

động đăng bài viết mới

66

nhân đang theo dõi

15 Gọi video Màn hình gọi video

16 Người theo dõi Màn hình danh sách người đang

theo dõi bản thân

17 Nhắn tin Giao diện nhắn tin giữa hai người

dùng với nhau

18 Thơng báo Màn hình hiển thị các cập nhật

những đối tượng liên quan

19 Thơng tin cá nhân Màn hình hiển thị thơng tin cá hân

20 Tìm kiếm bài viết – 1 Màn hình tìm kiếm bài viết 1

21 Tìm kiếm bài viết – 2 Màn hình tìm kiếm bài viết 2

22 Tìm kiếm bài viết – 3 Màn hình tìm kiếm bài viết 3

23 Tìm kiếm người dùng Màn hình tìm kiếm người dùng

24 Tìm kiếm người lân cận Màn hình tìm người lân cận dựa

theo khoảng cách

25 Xem thông tin Màn hình xem chi tiết thơng tin

Bảng 2.42 : Danh sách màn hình Màn hình cho quản trị viên Màn hình cho quản trị viên

STT Tên màn hình Mơ tả chức năng

26 Admin – backend API Màn hình truy vết lời gọi

API của người dùng

27 Admin – Chi tiết cấp độ Màn hình chi tiết cấp độ

xuất hiện trên UI di động được thể hiện ở đây

67

28 Admin – Chi tiết lĩnh vực Màn hình chi tiết lĩnh vực

xuất hiện lên UI di động được thể hiện ở đây

29 Admin – Chi tiết nhóm lĩnh vực Màn hình chứa thơng tin

nhóm lĩnh vực để thực hiện gom nhóm bài viết theo chủ đề liên quan, tăng trải nghiệm tìm kiếm

30 Admin – Chi tiết tài khoản Màn hình thơng tin chi tiết

tài khoản người dùng được quản lý bởi quản trị viên

31 Admin – Đăng nhập Màn hình đăng nhập vào

trang của quản trị viên

31 Admin – Danh mục cấp độ Màn hình danh sách cấp

độ sẵn có được quản lý bởi quản trị viên để người dùng có thể chọn cho bài viết của mình

32 Admin – Danh mục lĩnh vực Màn hình danh sách lĩnh

vực sẵn có được quản lý bởi quản trị viên để người dùng có thể chọn cho bài viết của mình

33 Admin – Danh sách bài viết Màn hình chứa danh sách

bài viết được quản lý bởi quản trị viên

68

34 Admin – Danh sách báo cáo Màn hình chứa danh sách

báo cáo vi phạm mà người dùng báo cáo sẽ được quản lý bởi quản trị viên

35 Admin – Danh sách bình luận Màn hình chứa danh sách

bình luận sẽ hiển thị và giám sát bởi quản trị viên ở đây

36 Admin – Danh sách người dùng Màn hình chứ danh sách

tài khoản

37 Admin – Danh sách nhóm lĩnh vực Quản lý nhóm lĩnh vực

38 Admin – Danh sách phản hồi Quản lý danh sách các câu

trả lời (phản hồi) của bình luận

39 Admin – Thêm lĩnh vực Thêm mới lĩnh vực được

thực hiện bởi quản trị viên

40 Admin – Thêm nhóm lĩnh vực Thêm mới nhóm lĩnh vực

Một phần của tài liệu Xây dựng ứng dụng hỗ trợ kết nối và hỗ trợ trong học tập (Trang 63)