Đang tải... (xem toàn văn)
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 2LỜ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 3MỤ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 43.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 53.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 6DANH 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 7Hì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 8Hì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 9Bả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 10Bả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 111
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 122
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 13Lị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 144
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 15Tươ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 166
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 17Hình 2.3 Ví dụ về Inverted index
Trang 188
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 199 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 2010 • 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 2111 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 2212 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 2313
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 2414 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 2515
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 2616
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 2717
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 2818
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 2919 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 304a 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 3121
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 3222
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 33Bả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 34S2.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 3525 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 3626 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 37S1.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 3828 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 3929
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 40S2.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