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

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

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

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

<b>ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH </b>

<b>TRƯỜNG ĐẠI HỌC CƠNG NGHỆ THƠNG TINKHOA CƠNG NGHỆ PHẦN MỀM </b>

<b>ĐỒ ÁN 1</b>

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

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

1. Lê Văn Phú – 21522466

2. Cao Quảng An Hưng – 21522112

<b>TP. HỒ CHÍ MINH, 2023 </b>

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

<b>LỜI CẢM ƠN </b>

Đầ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ả hồ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 q 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 hồ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.

<b>Xin chân thành cảm ơn các q Thầy Cơ! </b>

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

<b> Lê Văn Phú, Cao Quảng An Hưng </b>

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

<b>MỤC LỤC </b>

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

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="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

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="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

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

<b>DANH MỤC HÌNH ẢNH </b>

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

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="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

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="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

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="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

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="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

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

1

<b>Chương 1. GIỚI THIỆU </b>

<b>1.1. Giới thiệu đề tài </b>

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.

<b>1.2. Nội dung thực hiện </b>

- 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.

<b>1.3. Kết quả mong đợi </b>

Đề 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à

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

2

chính xác bằng thuật tố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 tố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 hố thuật toán Lucene.

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="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.

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

4

<b>2.2. Kiến thức tổng quan về Apache Lucene </b>

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 tồ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 tố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.

<b>2.3. Apache Lucene </b>

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

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="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.

<b>2.3.2. Field </b>

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.

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

6

<b>2.3.3. Term và Term Dictionary </b>

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. Q 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ừ term<small>1</small>, document frequency <small>2</small>, total term frequency <small>3</small>.

<b>2.3.4. Segment </b>

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 q 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 lists<small>4</small> và Deleted documents<small>5</small>.

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 tốn mức độ liên quan của các tài liệu đó đối với truy vấn.

<b>2.3.5. Sequence Number </b>

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

<small>1 Term: Là danh sách các từ hoặc cụm từ. </small>

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

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

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

<small>5 Deleted documents: Một danh sách các tài liệu đã bị xố. </small>

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">

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

</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">

8

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

<b>3.1. Danh sách các yêu cầu 3.1.1. Yêu cầu nghiệp vụ </b>

• 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 tố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

</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="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 tồ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 số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ọ.

<b>3.1.3. Yêu cầu chất lượng </b>

• 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

</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="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 <sup>Khơng cần </sup>

hướng dẫn <sup>Dễ thao tác </sup>

2 <sup>Theo dõi </sup>người dùng

Không cần

hướng dẫn <sup>Dễ thao tác </sup>

3 Thích bài viết <sup>Khơng cần </sup>

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

hướng dẫn <sup>Dễ thao tác </sup>

5 <sup>Xem trang cá </sup>nhân

Không cần

hướng dẫn <sup>Dễ thao tác </sup>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 <sup>Tin nhắn, tương tác, bình luận, theo dõi </sup>

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 hố

</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21">

11 6

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

Không cần

hướng dẫn <sup>Dễ thao tác </sup>

7 Tìm kiếm <sup>Không cần </sup>

hướng dẫn <sup>Dễ thao tác </sup>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ý <sup>Dung lượng </sup>

lưu trữ <sup>Chú thích </sup>

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 <sup>Tìm kiếm người </sup>dùng

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

4 Thay đổi thông tin

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

</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">

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

9 <sup>Theo dõi, hủy theo </sup>

dõi người dùng <sup>Sau 1 giây </sup>

</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23">

13

<b>3.2.2. Danh sách các tác nhân của hệ thống </b>

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

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 <sup>Người dùng đăng ký tài khoản để có thể sử dụng ứng </sup><sub>dụng. </sub>

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

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.

</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="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, xố 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. Ngồ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. Ngồ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

</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="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

<b>3.2.4. Sơ đồ Usecase mức chi tiết </b>

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

</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="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

</div><span class="text_page_counter">Trang 27</span><div class="page_container" data-page="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

</div><span class="text_page_counter">Trang 28</span><div class="page_container" data-page="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

<b>3.2.5. Đặc tả Usecase ID and Name UC Đăng nhập </b>

</div><span class="text_page_counter">Trang 29</span><div class="page_container" data-page="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

<b>ID and Name UC Đăng ký tài khoản </b>

Primary Actor Người dùng

</div><span class="text_page_counter">Trang 30</span><div class="page_container" data-page="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

<b>ID and Name UC Quên mật khẩu </b>

Primary Actor Người dùng

</div><span class="text_page_counter">Trang 31</span><div class="page_container" data-page="31">

21

Description <sup>Chức năng được sử dụng để lấy lại tài khoản cho người dùng </sup>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.

</div><span class="text_page_counter">Trang 32</span><div class="page_container" data-page="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

<b>ID and Name UC Quản lý trang cá nhân </b>

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”

</div><span class="text_page_counter">Trang 33</span><div class="page_container" data-page="33">

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

<b>ID and Name UC Thiết lập tài khoản </b>

Primary Actor Người dùng

Description <sup>Chức năng cho phép người dùng đổi mật khẩu tài khoản hoặc có </sup>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.

</div><span class="text_page_counter">Trang 34</span><div class="page_container" data-page="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

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

Primary Actor Người dùng

</div><span class="text_page_counter">Trang 35</span><div class="page_container" data-page="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

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

Primary Actor Người dùng

</div><span class="text_page_counter">Trang 36</span><div class="page_container" data-page="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, ngồ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.

</div><span class="text_page_counter">Trang 37</span><div class="page_container" data-page="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 “Đã xố thành cơng”. S3.5. Kết thúc.

</div><span class="text_page_counter">Trang 38</span><div class="page_container" data-page="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ể xố 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

</div><span class="text_page_counter">Trang 39</span><div class="page_container" data-page="39">

29

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

Primary Actor Người dùng

Description <sup>Chức năng bao gồm các chức năng phụ như Đăng bình luận, xố </sup>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 “Xố 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”

</div><span class="text_page_counter">Trang 40</span><div class="page_container" data-page="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 “Đã xố 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.

</div>

×