đồ án 1 xây dựng ứng dụng mạng xã hội tích hợp lucene

112 0 0
Tài liệu đã được kiểm tra trùng lặp
đồ án 1 xây dựng ứng dụng mạng xã hội tích hợp lucene

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Yêu cầu nghiệp vụ • Lưu trữ o Thông tin về người dùng: Hệ thống sẽ lưu trữ các thông tin của khách hàng như họ và tên, email, biệt danh, mật khẩu, ngày sinh, việc làm, trường học, vị tr

Trang 1

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TINKHOA CÔNG NGHỆ PHẦN MỀM

ĐỒ ÁN 1

XÂY DỰNG ỨNG DỤNG MẠNG XÃ HỘI TÍCH HỢP LUCENE

GV HƯỚNG DẪN: TS ĐỖ THỊ THANH TUYỀN SV THỰC HIỆN:

1 Lê Văn Phú – 21522466

2 Cao Quảng An Hưng – 21522112

TP HỒ CHÍ MINH, 2023

Trang 2

LỜI CẢM ƠN

Đầu tiên, nhóm xin gửi lời cảm ơn chân thành đến tập thể quý Thầy Cô Trường Đại học Công nghệ thông tin – Đại học Quốc gia TP.HCM và quý Thầy Cô khoa Công nghệ phần mềm đã giúp cho nhóm tác giả có những kiến thức cơ bản làm nền tảng để thực hiện đề tài này

Đặc biệt, nhóm tác giả xin gửi lời cảm ơn và lòng biết ơn sâu sắc nhất tới Cô Đỗ Thị Thanh Tuyền Cô đã trực tiếp hướng dẫn tận tình, sửa chữa và đóng góp nhiều ý kiến quý báu giúp nhóm tác giả hoàn thành tốt báo cáo môn học của mình

Trong thời gian một học kỳ thực hiện đề tài, nhóm đã vận dụng những kiến thức nền tảng đã tích lũy đồng thời kết hợp với việc học hỏi và nghiên cứu những kiến thức mới Từ đó, nhóm vận dụng tối đa những gì đã thu thập được để hoàn thành một báo cáo đồ án tốt nhất Tuy nhiên, trong quá trình thực hiện, nhóm không tránh khỏi những thiếu sót Chính vì vậy, nhóm tác giả rất mong nhận được những sự góp ý từ phía các Thầy Cô nhằm hoàn thiện những kiến thức mà nhóm tác giả đã học tập và là hành trang để nhóm tác giả thực hiện tiếp các đề tài khác trong tương lai

Xin chân thành cảm ơn các quý Thầy Cô!

Nhóm sinh viên thực hiện

Lê Văn Phú, Cao Quảng An Hưng

Trang 3

MỤC LỤC

Chương 1 GIỚI THIỆU 1

1.1 Giới thiệu đề tài 1

1.2 Nội dung thực hiện 1

1.3 Kết quả mong đợi 1

Chương 3 PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 8

3.1 Danh sách các yêu cầu 8

3.1.1 Yêu cầu nghiệp vụ 8

3.1.2 Yêu cầu hệ thống 8

3.1.3 Yêu cầu chất lượng 9

3.2 Phân tích yêu cầu 12

3.2.1 Sơ đồ Usecase 12

3.2.2 Danh sách các tác nhân của hệ thống 13

3.2.3 Danh sách các Usecase 13

Trang 4

3.2.4 Sơ đồ Usecase mức chi tiết 15

3.5.8 Màn hình chi tiết bài viết 85

3.5.9 Màn hình cài đặt thông tin tài khoản 86

3.5.10 Màn hình cài đặt thông báo 88

3.5.11 Màn hình quản lí nội dung của bạn 90

3.5.12 Màn hình quản lí danh sách chặn 91

3.5.13 Màn hình cập nhật mật khẩu mới 92

3.5.14 Màn hình trang cá nhân (bài viết người dùng) 93

Trang 5

3.5.15 Màn hình trang cá nhân (ảnh hoặc video) 94

3.5.16 Màn hình trang cá nhân (bài viết được lưu) 95

Chương 4 CÀI ĐẶT VÀ THỬ NGHIỆM 97

Trang 6

DANH MỤC HÌNH ẢNH

Hình 2.1 Các thành phần quan trọng cấu thành Lucene 4

Hình 2.2 Field trong Lucene 5

Hình 2.3 Ví dụ về Inverted index 7

Hình 3.1 Sơ đồ Usecase mức tổng quát 12

Hình 3.2 Usecase thiết lập tài khoản 15

Hình 3.3 Usecase quản lý thông báo 16

Hình 3.4 Usecase quản lý bài viết 16

Hình 3.5 Usecase quản lý bình luận của bài viết 17

Hình 3.6 Usecase quản lý người theo dõi 17

Hình 3.7 Usecase quản lý cuộc trò chuyện 18

Hình 3.8 Usecase quản lý ảnh và video cá nhân 18

Hình 3.9 Sơ đồ hoạt động cho Usecase Đăng ký tài khoản 41

Hình 3.10 Sơ đồ hoạt động cho Usecase Đăng nhập 42

Hình 3.11 Sơ đồ hoạt động cho Usecase Quên mật khẩu 43

Hình 3.12 Sơ đồ hoạt động cho Usecase Thiết lập tài khoản 44

Hình 3.13 Sơ đồ hoạt động cho Usecase Quản lý trang cá nhân 45

Hình 3.14 Sơ đồ hoạt động cho Usecase Quản lý thông báo 46

Hình 3.15 Sơ đồ hoạt động cho Usecase Quản lý bài viết (1) 47

Hình 3.16 Sơ đồ hoạt động cho Usecase Quản lý bài viết (2) 48

Hình 3.17 Sơ đồ hoạt động cho Usecase Quản lý bài viết (3) 48

Hình 3.18 Sơ đồ hoạt động cho Usecase Quản lý bình luận của bài viết (1) 49

Hình 3.19 Sơ đồ hoạt động cho Usecase Quản lý bình luận của bài viết (2) 49

Hình 3.20 Sơ đồ hoạt động cho Usecase Quản lý bình luận của bài viết (3) 50

Hình 3.21 Sơ đồ hoạt động cho Usecase Quản lý cuộc trò chuyện (1) 50

Hình 3.22 Sơ đồ hoạt động cho Usecase Quản lý cuộc trò chuyện (2) 51

Hình 3.23 Sơ đồ hoạt động cho Usecase Quản lý người theo dõi 52

Hình 3.24 Sơ đồ hoạt động cho Usecase Tìm kiếm người dùng, bình luận và bài viết 53

Trang 7

Hình 3.25 Sơ đồ tuần tự cho Usecase Đăng nhập 54

Hình 3.26 Sơ đồ tuần tự cho Usecase Đăng ký tài khoản 55

Hình 3.27 Sơ đồ tuần tự cho Usecase Quên mật khẩu 56

Hình 3.28 Sơ đồ tuần tự cho Usecase Thiết lập tài khoản 57

Hình 3.29 Sơ đồ tuần tự cho Usecase Quản lý thông báo 58

Hình 3.30 Sơ đồ tuần tự cho Usecase Quản lý bài viết (1) 59

Hình 3.31 Sơ đồ tuần tự cho Usecase Quản lý bài viết (2) 60

Hình 3.32 Sơ đồ tuần tự cho Usecase Quản lý bài viết (3) 61

Hình 3.33 Sơ đồ tuần tự cho Usecase Quản lý bài viết (4) 62

Hình 3.34 Sơ đồ tuần tự cho Usecase Quản lý bình luận của bài viết (1) 63

Hình 3.35 Sơ đồ tuần tự cho Usecase Quản lý bình luận của bài viết (2) 64

Hình 3.36 Sơ đồ tuần tự cho Usecase tìm kiếm người dùng, bài viết, bình luận 65

Hình 3.37 Sơ đồ tuần tự cho Usecase Quản lý người theo dõi (1) 66

Hình 3.38 Sơ đồ tuần tự cho Usecase Quản lý người theo dõi (2) 67

Hình 3.39 Sơ đồ tuần tự cho Usecase Quản lý cuộc trò chuyện (1) 68

Hình 3.40 Sơ đồ tuần tự cho Usecase Quản lý cuộc trò chuyện (2) 69

Hình 3.52 Màn hình chi tiết bài viết 85

Hình 3.53 Màn hình cài đặt thông tin tài khoản 86

Trang 8

Hình 3.54 Màn hình cài đặt thông báo 88

Hình 3.55 Màn hình quản lý nội dung của bạn 90

Hình 3.56 Màn hình quản lý danh sách chặn 91

Hình 3.57 Màn hình cập nhật mật khẩu mới 92

Hình 3.58 Màn hình trang cá nhân (bài viết người dùng) 93

Hình 3.59 Màn hình trang cá nhân (ảnh/video) 94

Hình 3.60 Màn hình trang cá nhân (bài viết được lưu) 95

Hình 4.1 Hướng dẫn cài đặt Redis 98

Trang 9

Bảng 3.8 Bảng đặc tả Usecase Đăng ký tài khoản 20

Bảng 3.9 Bảng đặc tả Usecase Quên mật khẩu 22

Bảng 3.10 Bảng đặc tả Usecase Quản lý trang cá nhân 23

Bảng 3.11 Bảng đặc tả Usecase Thiết lập tài khoản 24

Bảng 3.12 Bảng đặc tả Usecase Quản lý thông báo 25

Bảng 3.13 Bảng đặc tả Usecase Quản lý bài viết 28

Bảng 3.14 Bảng đặc tả Usecase Quản lý bình luận của bài viết 31

Bảng 3.15 Bảng đặc tả Usecase Quản lý cuộc trò chuyện 33

Bảng 3.16 Bảng đặc tả Usecase Quản lý người theo dõi 37

Bảng 3.17 Bảng đặc tả Usecase Quản lý ảnh và video cá nhân 39

Bảng 3.18 Bảng đặc tả Usecase Tìm kiếm người dùng, bình luận và bài viết 40

Trang 10

Bảng 3.36 Bảng mô tả màn hình cuộc trò chuyện 84

Bảng 3.37 Bảng mô tả màn hình thông báo 85

Bảng 3.38 Bảng mô tả màn hình chi tiết bài viết 86

Bảng 3.39 Bảng mô tả màn hình cài đặt thông tin tài khoản 88

Bảng 3.40 Bảng mô tả màn hình cài đặt thông báo 89

Bảng 3.41 Bảng mô tả màn hình quản lý nội dung của bạn 90

Bảng 3.42 Bảng mô tả màn hình quản lý danh sách chặn 91

Bảng 3.43 Bảng mô tả màn hình trang cá nhân (bài viết người dùng) 94

Bảng 3.44 Bảng mô tả màn hình trang các nhân (ảnh/video) 95

Bảng 3.45 Bảng mô tả màn hình trang cá nhân (bài viết được lưu) 96

Bảng 4.1 Bảng các công nghệ đã sử dụng trong đồ án 97

Bảng 4.2 Bảng đánh giá mức độ hoàn thành và thử nghiệm ứng dụng 99

Trang 11

1

Chương 1 GIỚI THIỆU

1.1 Giới thiệu đề tài

Mạng xã hội hiện đang đóng vai trò quan trọng trong cuộc sống hàng ngày của chúng ta, từ việc kết nối với bạn bè và gia đình đến truy cập thông tin, giải trí và quảng cáo Xây dựng một ứng dụng mạng xã hội không chỉ đáp ứng nhu cầu cơ bản của người dùng mà còn cung cấp một nền tảng để nghiên cứu, thử nghiệm và phát triển những tính năng mới và sáng tạo

Thêm vào đó, việc tích hợp một công cụ tìm kiếm mạnh mẽ như Lucene vào ứng dụng là cần thiết vì nó giúp người dùng dễ dàng tìm kiếm những thông tin như người dùng khác, các bài viết, hay các bình luận liên quan Điều này thực sự quan trọng bởi nó sẽ cải thiện trải nghiệm người dùng và tạo ra một ứng dụng mạng xã hội mạnh mẽ Bên cạnh đó, việc xây dựng ứng mạng xã hội tích hợp Lucene cũng giúp nhóm em phát triển kỹ năng, tích luỹ kích nghiệm và kiến thức về mạng xã hội, quản lý dự án và cuối cùng là hiểu rõ về quy trình phát triển phần mềm Chính vì thế cho nên đây là một cơ hội tuyệt vời cho nhóm em áp dụng những kiến thức đã học vào thực hành trong lĩnh vực công nghệ thông tin đầy thách thức và triển vọng

Tóm lại, đề tài này là sự kết hợp giữa sự phát triển của mạng xã hội, sử dụng công nghệ tìm kiếm mạnh mẽ, cơ hội học hỏi và phát triển bản thân Đây là đề tài có tiềm năng để tạo ra một ứng dụng hữu ích, đồng thời giúp nhóm em phát triển kỹ năng và kiến thức trong lĩnh vực công nghệ thông tin

1.2 Nội dung thực hiện

- Nghiên cứu lý thuyết về mạng xã hội và thuật toán Lucene - Thiết kế và xây dựng ứng dụng mạng xã hội

- Tích hợp Lucene vào ứng dụng

1.3 Kết quả mong đợi

Đề tài “Xây dựng ứng dụng mạng xã hội tích hợp Lucene” có mục tiêu là xây dựng một ứng dụng mạng xã hội có khả năng tìm kiếm thông tin nhanh chóng và

Trang 12

2

chính xác bằng thuật toán Lucene, ứng dụng này sẽ giúp người dùng dễ dàng tìm kiếm các bài viết, người dùng và bình luận Cụ thể, đề tài sẽ đạt được các mục tiêu sau:

- Xây dựng một ứng dụng mạng xã hội với các chức năng cơ bản như đăng bài, bình luận, …

- Tích hợp thuật toán Lucene vào ứng dụng để thực hiện chức năng tìm kiếm - Cải thiện hiệu suất tìm kiếm bằng cách tối ưu hoá thuật toán Lucene

Trang 13

Lịch sử mạng xã hội bắt đầu từ những ngày đầu của internet và đã phát triển mạnh mẽ qua các giai đoạn Từ các diễn đàn và trang web đầu tiên, chúng ta đã chứng kiến sự xuất hiện của các dịch vụ lớn như Facebook, Twitter, LinkedIn và Instagram Những nền tảng này không chỉ mở ra cơ hội giao tiếp mới mà còn tạo ra một không gian trực tuyến đa dạng với nhiều mục đích khác nhau

Có nhiều loại mạng xã hội với mục tiêu và đối tượng sử dụng khác nhau Mạng xã hội chung như Facebook thích hợp cho mọi đối tượng, trong khi LinkedIn tập trung vào kết nối chuyên nghiệp Instagram và YouTube đại diện cho mạng xã hội hình ảnh và video, đem lại trải nghiệm người dùng độc đáo

Mặc dù mạng xã hội mang lại nhiều ưu điểm như giao tiếp thuận tiện và cơ hội tiếp thị, nhưng cũng đối mặt với những thách thức như vấn đề quyền riêng tư và an toàn trực tuyến Sự đánh đổi giữa ưu và nhược điểm là một phần quan trọng của đà phát triển của chúng

Mạng xã hội không chỉ thay đổi cách chúng ta giao tiếp mà còn ảnh hưởng đến xã hội và văn hóa Nó tạo ra các cộng đồng trực tuyến, hỗ trợ cho các phong trào và thậm chí tác động đến quan điểm xã hội và chính trị

Với sự phát triển nhanh chóng của công nghệ, mạng xã hội có thể chứng kiến sự kết hợp với trí tuệ nhân tạo, thực tế ảo, và các xu hướng mới Việc này mở ra cánh cửa cho những trải nghiệm người dùng độc đáo và thú vị trong tương lai

Trang 14

4

2.2 Kiến thức tổng quan về Apache Lucene

Apache Lucene là một công cụ truy xuất dữ liệu mã nguồn mở, hiệu suất cao, có thể mở rộng với khả năng truy xuất dữ liệu mạnh mẽ Lucene đã được phát triển trong nhiều năm, cung cấp nhiều tính năng mạnh mẽ hơn và kiến trúc ngày càng tinh tế hơn Hiện tại nó hỗ trợ lập chỉ mục toàn văn bản cũng như cung cấp nhiều kiểu lập chỉ mục khác để đáp ứng yêu cầu của các loại truy vấn khác nhau

Lucene cho phép chúng ta thêm dữ liệu vào chỉ mục toàn văn bản, từ đó chúng ta có thể thực hiện truy vấn trên các chỉ mục đó, nó sẽ trả về kết quả được sắp xếp dựa trên mức độ liên quan của nội dung được tìm kiếm với câu truy vấn được thêm bởi người dùng Dữ liệu được thêm vào Lucene có thể bao gồm nhiều định dạng khác nhau như cơ sở dữ liệu SQL/No SQL, tập tin từ hệ thống hoặc thậm chí có thể là nội dung từ một website

Lucene được biết đến là một công cụ lập chỉ mục với hiệu suất cao, có thuật toán mạnh mẽ và tìm kiếm hiệu quả Lucene hiện nay được sử dụng bởi nhiều dự án mã nguồn mở lớn khác như ElasticSearch và Solr

2.3 Apache Lucene

Hình 2.1 Các thành phần quan trọng cấu thành Lucene

Trang 15

Tương tự như một hàng trong cơ sở dữ liệu quan hệ, một index có thể chứa nhiều documents Khi document được thêm vào index thì nó sẽ được gán một Id duy nhất, được gọi là Sequence Number

2.3.2 Field

Hình 2.2 Field trong Lucene

Field là một trong những đơn vị cơ bản nhất trong Apache Lucene, ta có xem nó như một cột ở trong cơ sở dữ liệu quan hệ, nó được dùng để lưu trữ thông tin của dữ liệu Hiện nay, field được Lucene cung cấp nhiều loại field khác nhau như

StringField, TextField và NumericDocValuesField

Một field được cấu tạo bởi ba thành phần: name, fieldData, type Thành phần name chính là tên của field, fieldsData là giá trị của field và cuối cùng, type là kiểu của field giúp xác định các field được lập chỉ mục

Trang 16

6

2.3.3 Term và Term Dictionary

Term trong Lucene được tạo ra bằng cách phân tích cú pháp văn bản của document Quá trình phân tích cú pháp này bao gồm việc chia văn bản thành các từ hoặc cụm từ, và sau đó chuẩn hóa chúng bằng cách loại bỏ dấu câu và các từ phổ biến khác

Term dictionary được tạo ra khi Lucene lập chỉ mục các document Term dictionary được lưu trữ dưới dạng một tập tin nhị phân, và nó bao gồm các thông tin từ term1, document frequency 2, total term frequency 3

2.3.4 Segment

Segment là một đơn vị cơ bản của chỉ mục Lucene Một chỉ mục Lucene có thể bao gồm một hoặc nhiều segment Mỗi segment chứa một tập hợp tài liệu và các thông tin liên quan đến các tài liệu đó Segment được tạo ra khi Lucene index các tài liệu Quá trình indexing là một quá trình phân tích văn bản của các document và tạo ra một tập hợp các term và các thông tin liên quan đến các term đó

Segment được lưu trữ dưới dạng một tập tin nhị phân bao gồm Term Dictionary, Posting lists4 và Deleted documents5

Segment đóng một vai trò quan trọng trong việc tìm kiếm trong Lucene Khi người dùng thực hiện truy vấn, Lucene sẽ tìm kiếm các term trong các segment để tìm tất cả các document chứa các term đó Sau đó, Lucene sẽ sử dụng thông tin trong các segment để tính toán mức độ liên quan của các tài liệu đó đối với truy vấn

2.3.5 Sequence Number

Sequence number là một số nguyên duy nhất được gán cho mỗi document trong chỉ mục Lucene Nó được sử dụng để theo dõi thứ tự mà các tài liệu được index vào

1 Term: Là danh sách các từ hoặc cụm từ

2 Document frequency: Số lượng tài liệu chưa được term

3 Total term frequency: Tổng số lần term xuất hiện trong tất cả các tài liệu

4 Posting lists: Danh sách các tài liệu chứa các một term cụ thể

5 Deleted documents: Một danh sách các tài liệu đã bị xoá

Trang 17

Hình 2.3 Ví dụ về Inverted index

Trang 18

8

Chương 3 PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG

3.1 Danh sách các yêu cầu 3.1.1 Yêu cầu nghiệp vụ

• Lưu trữ

o Thông tin về người dùng: Hệ thống sẽ lưu trữ các thông tin của khách hàng như họ và tên, email, biệt danh, mật khẩu, ngày sinh, việc làm, trường học, vị trí, ảnh cá nhân

o Thông tin về bài viết: Các thông tin như nội dụng, ảnh và video, số lượt tương tác, bình luận, thời gian tạo, chỉnh sửa bài viết

o Thông tin về thông báo: bao gồm loại thông báo, thời gian tạo thông báo, nội dung thông báo, người tương tác, người được gửi thông báo, thông báo đã được đọc hay chưa

o Thông tin về người theo dõi: bao gồm danh sách người theo dõi, danh sách người được theo dõi

o Thông tin về cài đặt cá nhân: bao gồm thông tin người dùng, cài đặt thông báo về tin nhắn, bài viết, tương tác, bình luận, danh sách chặn người dùng, bài viết được lưu

• Tính toán: Tính toán thời gian người dùng tạo bài viết, số lượt tương tác, số lượt bình luận, thời gian gửi tin nhắn, thời gian thông báo, số lượng người theo dõi và đang theo dõi để giúp người dùng nắm bắt chính xác thông tin về những

Trang 19

9 1 Ẩn dữ liệu

Thông tin về mật khẩu trong cơ sở dữ liệu đã mã hóa

Ẩn dữ liệu đối với những người dùng bị chặn

Thông tin sẽ được ẩn đi sau khi lưu vào cơ sở dữ liệu

Dữ liệu của người dùng bị chặn sẽ được ẩn đi theo 2 chiều từ bên phía chặn và bị chặn

Bảng 3.1 Bảng tính an toàn • Tính bảo mật:

o Mã hóa dữ liệu: Mã hóa thông tin cá nhân và dữ liệu truyền tải giữa máy khách và máy chủ

o Bảo vệ tài khoản người dùng: Thực hiện chính sách mật khẩu mạnh và đổi mật khẩu định kỳ

o Quản lý sự kiện và ghi chú: Ghi lại và theo dõi các sự kiện quan trọng như thông báo, tạo bài viết, gửi tin nhắn để nhanh chóng phát hiện o Bảo mật phần mềm: Đảm bảo rằng phần mềm được cập nhật định kỳ

để bảo vệ khỏi các lỗ hổng bảo mật đã biết

o Bảo vệ quyền riêng tư: Tuân thủ các quy định về quyền riêng tư và bảo vệ dữ liệu cá nhân Cung cấp cài đặt cho người dùng kiểm soát thông tin cá nhân, danh sách người theo dõi, người đang theo dõi, người chặn của họ

3.1.3 Yêu cầu chất lượng

• Tính tiến hóa:

STT Nghiệp vụ Tham số cần thay đổi

1 Thay đổi bài viết Ảnh, video, nội dung 2 Thay đổi bình luận Nội dung

Trang 20

10 • Tính tiện dụng

STT Nghiệp vụ Mức độ dễ học Mức độ dễ sử dụng Chú thích

1 Tạo bài viết Không cần

hướng dẫn Dễ thao tác

2 Theo dõi người dùng

Không cần

hướng dẫn Dễ thao tác

3 Thích bài viết Không cần

hướng dẫn Dễ thao tác 4 Tạo bình luận Không cần

hướng dẫn Dễ thao tác

5 Xem trang cá nhân

Không cần

hướng dẫn Dễ thao tác 3

Thay đổi danh sách người theo dõi, người được theo dõi, người bị chặn

Người theo dõi

4 Thay đổi cài đặt thông

báo Tin nhắn, tương tác, bình luận, theo dõi

5 Thay đổi thông tin cá nhân

Câu quote, nơi làm việc, trường học, vị trí địa lí

6 Thay đổi mật khẩu Mật khẩu hiện tại, mật khẩu mới Bảng 3.2 Bảng tính tiến hoá

Trang 21

11 6

Xem, lưu, hủy bài viết được lưu

Không cần

hướng dẫn Dễ thao tác

7 Tìm kiếm Không cần

hướng dẫn Dễ thao tác Bảng 3.3 Bảng tính tiện dụng • Tính hiệu quả:

STT Nghiệp vụ Tốc độ xử lý Dung lượng

lưu trữ Chú thích

1 Tạo bài viết

Sau 2 giây với bài viết

thường

Sau 10 giây với bài viết có video

<= 50 MB

2 Tìm kiếm bài viết Tất cả các bài viết sau 2 giây

3 Tìm kiếm người dùng

Tất cả người dùng sau 2 giây

4 Thay đổi thông tin

người dùng Ngay lập tức 5 Thay đổi cài đặt Ngay lập tức 6 Lưu bài viết Sau 1 giây

Trang 22

12 7 Xóa bài viết Sau 3 giây

9 Theo dõi, hủy theo

dõi người dùng Sau 1 giây

Trang 23

13

3.2.2 Danh sách các tác nhân của hệ thống

STT Tác nhân của hệ thống Ý nghĩa

01 Người dùng

Là người dùng chính của hệ thống, đóng vai trò lớn trong việc hình thành ứng dụng Bảng 3.5 Bảng danh sách các tác nhân của hệ thống

02 Quên mật khẩu

Chức năng có thể được thực hiện để lấy lại mật khẩu của tài khoản trong trường hợp người dùng quên mật khẩu

03 Đăng ký tài khoản Người dùng đăng ký tài khoản để có thể sử dụng ứng dụng

04 Thiết lập tài khoản Người dùng có thể chỉnh sửa cài đặt thông báo, xem lịch sử hoạt động và cuối cùng là đổi mật khẩu

05 Quản lý trang cá nhân

Usecase cho phép người dùng xem danh sách các bài viết đã lưu, Quản lý ảnh và video cá nhân, Quản lý người theo dõi và cập nhật thông tin cá nhân

Trang 24

14 06 Quản lý bài viết

Usecase cho phép người dùng đăng bài viết mới, chỉnh sửa bài viết, xoá bài viết, tìm kiếm bài viết, chia sẻ bài viết và cuối cùng là lưu bài viết

07 Quản lý bình luận của bài viết

Người dùng có thể bình luận một bài viết, xoá hay chỉnh sửa bình luận của mình

08 Quản lý thông báo

Usecase này đóng vai trò quan trọng trong ứng dụng cho phép người dùng biết được những diễn biến liên quan đến bài viết, bình luận hay người theo dõi Chức năng này bao gồm các tính năng phụ như thêm thông báo và đánh dấu thông báo đã được đọc

09 Quản lý cuộc trò chuyện

Usecase cho phép các người dùng nhắn tin với nhau với các phương thức như gửi tin nhắn, gọi qua video, gọi qua audio Ngoài ra, Người dùng còn có thể tạo một cuộc trò chuyện mới, xem danh sách các cuộc trò chuyện và tìm kiếm cuộc trò chuyện

10 Quản lý ảnh và video cá nhân

Usecase cho phép người dùng xem danh sách các ảnh và video của mình, các ảnh và video sẽ được thêm thông qua các bài viết được đăng bởi chính người dùng Ngoài ra, hệ thống còn cho phép người dùng gỡ bỏ những ảnh hoặc video của mình ra khỏi danh sách

11 Tìm kiếm bài viết và người dùng

Đây là một trong những chức năng quan trọng của ứng dụng với khả năng tăng trải nghiệm người dùng trong

Trang 25

15

việc tìm kiếm bài viết, người dùng hay thậm chí bình luận

Bảng 3.6 Bảng danh sách các Usecase

3.2.4 Sơ đồ Usecase mức chi tiết

Hình 3.2 Usecase thiết lập tài khoản

Trang 26

16

Hình 3.3 Usecase quản lý thông báo

Hình 3.4 Usecase quản lý bài viết

Trang 27

17

Hình 3.5 Usecase quản lý bình luận của bài viết

Hình 3.6 Usecase quản lý người theo dõi

Trang 28

18

Hình 3.7 Usecase quản lý cuộc trò chuyện

Hình 3.8 Usecase quản lý ảnh và video cá nhân

3.2.5 Đặc tả Usecase ID and Name UC Đăng nhập

Trang 29

19 Primary Actor Người dùng

Description Người dùng thực hiện việc đăng nhập để sử dụng các chức năng trong ứng dụng

Trigger Người dùng nhấn nút “Đăng nhập”

Preconditions

PRE-1 Hệ thống đã được khởi động

PRE-2 Tài khoản và mật khẩu đã được tạo trước đó Postconditions POST-1 Người dùng đăng nhập thành

4 Người dùng nhấn nút “Đăng nhập”

5 Hệ thống kiểm tra thông tin đăng nhập của người dùng 6 Hệ thống chuyển người dùng đến trang chủ của ứng dụng Sub Flows Không có

Alternative Flows

5a Nếu thông tin đăng nhập không đúng, hệ thống hiển thị thông báo lỗi và yêu cầu người dùng nhập lại thông tin đăng nhập Use case chuyển sang bước 4

Bảng 3.7 Bảng đặc tả Usecase Đăng nhập

ID and Name UC Đăng ký tài khoản

Primary Actor Người dùng

Trang 30

4a Trường hợp thông tin không hợp lệ, người dùng sẽ được yêu cầu bắt đầu trở lại từ bước số 3

5a Hệ thống thông báo “Không thể lưu được tài khoản”, người dùng sẽ được yêu cầu bắt đầu trở lại từ bước số 3

Bảng 3.8 Bảng đặc tả Usecase Đăng ký tài khoản

ID and Name UC Quên mật khẩu

Primary Actor Người dùng

Trang 31

21

Description Chức năng được sử dụng để lấy lại tài khoản cho người dùng trong trường hợp người dùng không nhớ mật khẩu của tài khoản Trigger Người dùng nhấn nút “Quên mật khẩu”

Preconditions

PRE-1 Hệ thống đã được khởi động

PRE-2 Tài khoản được yêu cầu đổi mật khẩu tồn tại Postconditions POST-1 Người dùng đổi mật khẩu thành công

khẩu đến email của người dùng

6 Người dùng ấn mở đường link và nhập mật khẩu mới, mật khẩu xác nhận

7 Hệ thống cập nhật thay đổi và thông báo đổi mật khẩu thành công

Sub Flows Không có

Alternative Flows

4a Trường hợp thông tin không hợp lệ, người dùng sẽ được yêu cầu bắt đầu trở lại từ bước số 3

6a Đường link được gửi bị hết hạn, hoặc bị hỏng, người dùng sẽ nhận được yêu cầu thực hiện lại từ bước số 3 trở đi

Trang 32

22

7a Hệ thống thông báo lỗi cập nhật, người dùng được yêu cầu thực hiện lại từ bước số 3 trở đi

Bảng 3.9 Bảng đặc tả Usecase Quên mật khẩu

ID and Name UC Quản lý trang cá nhân

Primary Actor Người dùng

Description

Chức năng được cung cấp để cho phép người dùng quản lý những thông tin cơ bản và những thông số liên quan đến bài viết, ảnh, video và thông tin cá nhân của người dùng

Trigger Người dùng nhấn nút “Trang cá nhân”

Preconditions

PRE-1 Hệ thống đã được khởi động

PRE-2 Người dùng đã đăng nhập vào ứng dụng với tài khoản được cung cấp

Postconditions

POST-1 Người dùng xem được danh sách người theo dõi POST-2 Người dùng xem được danh sách người đang theo dõi POST-3 Người dùng xem được danh sách người dùng bị chặn POST-4 Thông tin cá nhân được cập nhật thành công

POST-5 Người dùng xem được thư viện ảnh và video của mình POST-6 Người dùng xem được danh sách các bài viết của mình

Normal Flow

1 Người dùng nhấn nút “Thay đổi thông tin cá nhân”

2 Người dùng cập nhật những thay đổi dựa vào những trường được hiển thị

3 Người dùng nhấn nút “Lưu”

Trang 33

Bảng 3.10 Bảng đặc tả Usecase Quản lý trang cá nhân

ID and Name UC Thiết lập tài khoản

Primary Actor Người dùng

Description Chức năng cho phép người dùng đổi mật khẩu tài khoản hoặc có thể là cập nhật cài đặt thông báo

Trigger Người dùng nhấn nút “Thiết lập tài khoản”

Preconditions

PRE-1 Hệ thống đã được khởi động

PRE-2 Người dùng đã đăng nhập vào ứng dụng với tài khoản được cung cấp

Postconditions

POST-1 Người dùng đổi mật khẩu thành công

POST-2 Người dùng cập nhật được cài đặt thông báo

Trang 34

S2.1 Người dùng nhập mật khẩu cũ, mật khẩu mới và mật khẩu xác nhận

S2.3a Hệ thống không thể cập nhật do vấn đề đường truyền, người dùng được yêu cầu thử lại sau khi đường truyền ổn định S3.3a Thông tin người dùng nhập không hợp lệ, chính xác, người dùng được yêu cầu thực hiện lại từ bước S3.1

Bảng 3.11 Bảng đặc tả Usecase Thiết lập tài khoản

ID and Name UC Quản lý thông báo

Primary Actor Người dùng

Trang 35

25 Description

Chức năng đóng vai trò quan trọng trong ứng dụng giúp người dùng có thể nhận biết được những diễn biến xảy ra đối với các bài viết, bình luận hay người theo dõi

Trigger Người dùng nhấn vào biểu tượng Thông báo ở bên góc phải màn hình

Preconditions

PRE-1 Hệ thống đã được khởi động

PRE-2 Người dùng đã đăng nhập vào ứng dụng với tài khoản được cung cấp

Postconditions

POST-1 Danh sách thông báo của người dùng hiển thị

POST-2 Thông báo được đánh dấu đã được xem của người dùng được cập nhật

Normal Flow

1 Hệ thống hiển thị danh sách tin nhắn của người dùng 2 Người dùng nhấn vào một thông báo bất kỳ để xem 3 Hệ thống hiển thị chi tiết thông báo

4 Hệ thống cập nhật trạng thái của thông báo là “Đã được đọc” 5 Kết thúc

Sub Flows Không có Alternative

Flows

4a Hệ thống không thể cập nhật trạng thái do vấn đề đường truyền của người dùng, người dùng được yêu cầu thử lại sau Bảng 3.12 Bảng đặc tả Usecase Quản lý thông báo

ID and Name UC Quản lý bài viết

Primary Actor Người dùng

Trang 36

26 Description

Chức năng bao gồm các tính năng phụ như đăng bài viết mới, chỉnh sửa và xoá bài viết cá nhân, ngoài ra còn có tính năng lưu và chia sẻ

Preconditions

PRE-1 Hệ thống đã được khởi động

PRE-2 Người dùng đã đăng nhập vào ứng dụng với tài khoản được cung cấp

Trigger

TRIG-1 Người dùng nhấn vào nút “Đăng bài viết” TRIG-2 Người dùng nhấn vào nút “Chỉnh sửa bài viết” TRIG-3 Người dùng nhấn vào nút “Xoá bài viết” TRIG-4 Người dùng nhấn vào nút “Lưu bài viết” TRIG-5 Người dùng nhấn vào nút “Chia sẻ bài viết”

Postconditions

POST-1 Bài viết được tạo mới và lưu lại POST-2 Bài viết được chỉnh sửa

POST-3 Bài viết bị xoá

POST-4 Bài viết được lưu vào danh sách ưa thích của người dùng

POST-5 Đường liên kết dẫn đến bài viết được tạo

Trang 37

S1.1 Hệ thống hiển thị biểu mẫu

S1.2 Người dùng điền nội dung bài viết S1.3 Người dùng nhấn nút “Đăng bài” S1.4 Hệ thống kiểm tra tính hợp lệ

S1.5 Hệ thống lưu bài viết vào cơ sở dữ liệu S1.6 Kết thúc

S2 Chỉnh sửa bài viết

S2.1 Hệ thống hiển thị biểu mẫu

S2.2 Người dùng chỉnh sửa những nội dung của bài viết S2.3 Người dùng nhấn nút “Lưu”

S2.4 Hệ thống kiểm tra tính hợp lệ

S2.5 Hệ thống cập nhật bài viết trong cơ sở dữ liệu S2.6 Kết thúc

S3 Xoá bài viết

S3.1 Hệ thống hiển thị thông báo xác nhận S3.2 Người dùng nhấn nút “Xác nhận” S3.3 Hệ thống xoá bài viết

S3.4 Hệ thống hiển thị thông báo “Đã xoá thành công” S3.5 Kết thúc

Trang 38

28 S4 Lưu bài viết

S4.1 Hệ thống lưu bài viết vào danh sách những bài viết được lưu của người dùng đang sử dụng tài khoản S4.2 Hiển thị thông báo “Lưu thành công”

S4.3 Kết thúc S5 Chia sẻ bài viết

S5.1 Hệ thống tạo một đường liên kết dẫn đến bài viết được chia sẻ

S5.2 Người dùng sao chép đường liên kết và gửi đến nơi được chia sẻ

S5.3 Kết thúc

Alternative Flows

S1.4a Nội dung bài viết không hợp lệ, người dùng thực hiện lại từ bước S1.2

S1.5a Hệ thống không thể lưu bài viết, người dùng thực hiện lại từ bước S1.2

S2.4a Nội dung bài viết không hợp lệ, người dùng thực hiện lại từ bước S2.2

S2.5a Hệ thống không thể cập nhật nội dung bài viết, người dùng thực hiện lại từ bước S2.2

S3.3a Hệ thống không thể xoá bài viết, người dùng thực hiện lại từ bước S3.1

S4.1a Hệ thống không thể lưu bài viết vào danh sách bài viết ưa thích của người dùng, người dùng thực hiện lại từ bước S4.1

Bảng 3.13 Bảng đặc tả Usecase Quản lý bài viết

Trang 39

29

ID and Name UC Quản lý bình luận của bài viết

Primary Actor Người dùng

Description Chức năng bao gồm các chức năng phụ như Đăng bình luận, xoá bình luận, chỉnh sửa bình luận

Preconditions

PRE-1 Hệ thống đã được khởi động

PRE-2 Người dùng đã đăng nhập vào ứng dụng với tài khoản được cung cấp

Trigger

TRIG-1 Người dùng nhấn vào nút “Đăng bình luận” TRIG-2 Người dùng nhấn vào nút “Chỉnh sửa bình luận” TRIG-3 Người dùng nhấn vào nút “Xoá bình luận”

S1.1 Hệ thống hiển thị biểu mẫu

S1.2 Người dùng điền nội dung bình luận S1.3 Người dùng nhấn nút “Đăng bài”

Trang 40

S2.1 Hệ thống hiển thị biểu mẫu

S2.2 Người dùng chỉnh sửa những nội dung của bình luận S2.3 Người dùng nhấn nút “Lưu”

S3.4 Hệ thống hiển thị thông báo “Đã xoá thành công” S3.5 Kết thúc

Alternative Flows

S1.4a Nội dung bình luận không hợp lệ, người dùng thực hiện lại từ bước S1.2

S1.5a Hệ thống không thể lưu bình luận, người dùng thực hiện lại từ bước S1.2

S2.4a Nội dung bài viết không hợp lệ, người dùng thực hiện lại từ bước S2.2

S2.5a Hệ thống không thể cập nhật nội dung bình luận, người dùng thực hiện lại từ bước S2.2

Ngày đăng: 15/05/2024, 09:30

Tài liệu cùng người dùng

Tài liệu liên quan