1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

112 1 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Thông tin cơ bản

Định dạng
Số trang 112
Dung lượng 8,92 MB

Cấu trúc

  • Chương 1. GIỚI THIỆU (11)
    • 1.1. Giới thiệu đề tài (11)
    • 1.2. Nội dung thực hiện (11)
    • 1.3. Kết quả mong đợi (11)
  • Chương 2. KIẾN THỨC NỀN TẢNG (13)
    • 2.1. Mạng xã hội (13)
    • 2.2. Kiến thức tổng quan về Apache Lucene (14)
    • 2.3. Apache Lucene (14)
      • 2.3.1. Index và Document (15)
      • 2.3.2. Field (15)
      • 2.3.3. Term và Term Dictionary (16)
      • 2.3.4. Segment (16)
      • 2.3.5. Sequence Number (16)
      • 2.3.6. Inverted index (17)
  • Chương 3. PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG (18)
    • 3.1. Danh sách các yêu cầu (18)
      • 3.1.1. Yêu cầu nghiệp vụ (18)
      • 3.1.2. Yêu cầu hệ thống (18)
      • 3.1.3. Yêu cầu chất lượng (19)
    • 3.2. Phân tích yêu cầu (22)
      • 3.2.1. Sơ đồ Usecase (22)
      • 3.2.2. Danh sách các tác nhân của hệ thống (23)
      • 3.2.3. Danh sách các Usecase (23)
      • 3.2.4. Sơ đồ Usecase mức chi tiết (25)
      • 3.2.5. Đặc tả Usecase (28)
      • 3.2.6. Sơ đồ hoạt động (51)
      • 3.2.7. Sơ đồ tuần tự (64)
      • 3.2.8. Sơ đồ lớp (80)
    • 3.3. Thiết kế hệ thống (80)
      • 3.3.1. Kiến trúc hệ thống (80)
      • 3.3.2. Mô tả các thành phần trong hệ thống (81)
    • 3.4. Thiết kế dữ liệu (82)
    • 3.5. Thiết kế giao diện (87)
      • 3.5.1. Màn hình đăng nhập (87)
      • 3.5.2. Màn hình đăng ký (89)
      • 3.5.3. Màn hình quên mật khẩu (90)
      • 3.5.4. Màn hình chính (91)
      • 3.5.5. Màn hình tìm kiếm (92)
      • 3.5.6. Màn hình cuộc trò chuyện (93)
      • 3.5.7. Màn hình thông báo (94)
      • 3.5.8. Màn hình chi tiết bài viết (95)
      • 3.5.9. Màn hình cài đặt thông tin tài khoản (96)
      • 3.5.10. Màn hình cài đặt thông báo (98)
      • 3.5.11. Màn hình quản lí nội dung của bạn (0)
      • 3.5.12. Màn hình quản lí danh sách chặn (0)
      • 3.5.13. Màn hình cập nhật mật khẩu mới (102)
      • 3.5.14. Màn hình trang cá nhân (bài viết người dùng) (103)
      • 3.5.15. Màn hình trang cá nhân (ảnh hoặc video) (104)
      • 3.5.16. Màn hình trang cá nhân (bài viết được lưu) (105)
  • Chương 4. CÀI ĐẶT VÀ THỬ NGHIỆM (107)
    • 4.1. Công nghệ sử dụng (107)
    • 4.2. Cài đặt (107)
      • 4.2.1. Mã nguồn (107)
      • 4.2.2. Hướng dẫn cài đặt (107)
    • 4.3. Thử nghiệm (108)
  • TÀI LIỆU THAM KHẢO (112)

Nội dung

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

GIỚI THIỆU

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.

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.

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à

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

KIẾN THỨC NỀN TẢNG

Mạng xã hội

Mạng xã hội là một website hoặc một ứng dụng cho phép mọi người trên thế giới kết nối với nhau Các trang mạng xã hội đều có các cách hoạt động giống nhau, thường thì mỗi cá nhân sẽ có trang cá nhân của mình bao gồm các thông tin chi tiết về bản thân, cho phép người sử dụng gửi tin nhắn, chia sẻ và tìm kiếm thông tin trên một cơ sở dữ liệu trực tuyến lớn

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

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.

Apache Lucene

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

Lucene là một thư viện tìm kiếm toàn văn mã nguồn mở, bao gồm các thành phần sau:

Chúng ta có thể xem Lucene Index là một folder chứa các documents, ta có thể thêm một tài liệu mới vào hoặc có thể lấy một tài liệu ra, nhưng nếu chúng ta muốn chỉnh sửa một tài liệu thì trước tiên ta phải lấy nó ra, chỉnh sửa nó và cuối cùng là thêm nó vào lại thư mục Ta có thể thêm nhiều loại documents vào thư mục bởi vì Lucene có thể đánh chỉ mục document dù nó có loại dữ liệu gì đi chăng nữa

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

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ư

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

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

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 lists 4 và Deleted documents 5

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

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á

7 chỉ mục Ngoài ra, Sequence number được tạo ra khi một tài liệu được lập chỉ mục và sẽ được tăng dần cho mỗi tài liệu được lập chỉ mục

Lucene cho phép tìm kiếm văn bản siêu nhanh bằng cách sử dụng cấu trúc dữ liệu đặc biệt được gọi là Inverted index Thay vì phải tìm kiếm văn bản theo thứ tự tuần tự trong tất cả các documents, Lucene tạo trước một Inverted index của các document

Inverted index được cấu thành bởi 2 yếu tố Thứ nhất là Term Dictionary, đây là thành phần chứa tất cả các terms trong index cùng với tần suất xuất hiện của các terms Thứ hai là Postings, Postings là một danh sách các documents chứa các terms Ngoài ra, postings có thể sẽ lưu trữ thông tin về từ được tìm kiếm nằm ở vị trí nào ở trong documents

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

PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG

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

• 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 việc đã làm

STT Nghiệp vụ Đối tượng Ghi chú

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ọ

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

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

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

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

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á

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

STT Nghiệp vụ Tốc độ xử lý Dung lượng lưu trữ Chú thích

Sau 2 giây với bài viết thường Sau 10 giây với bài viết có video

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

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

Bảng 3.4 Bảng tính hiệu quả

• Tính tương thích: Ứng dụng web tương thích với hầu hết trình duyệt như là Chrome, Edge, … và được có thể sử dụng ở hầu hết mọi thiết bị.

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

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

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

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

Người dùng đăng nhập vào ứng dụng với tài khoản đã đăng ký Usecase đăng nhập là điều kiện tiên quyết để thực hiện các chức năng liên quan đến người dùng trong ứng dụng

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

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

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

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

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

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

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

ID and Name UC Đăng nhập

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”

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

1 Người dùng truy cập vào trang đăng nhập của ứng dụng

2 Ứng dụng hiển thị giao diện đăng nhập

3 Người dùng nhập tên đăng nhập và mật khẩu của mình vào các trường tương ứng

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ó

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

Description Người dùng thực hiện việc tạo tài khoản để có thể sử dụng ứng dụng

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

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

Postconditions POST-1 Người dùng tạo tài khoản thành công

1 Người dùng tiến hành truy cập trang web của ứng dụng

2 Người dùng nhấn nút “Đăng ký tài khoản”

3 Người dùng nhập đầy đủ các thông tin cần thiết vào các trường

4 Hệ thống kiểm tra thông tin được nhập có hợp lệ hay không?

5 Hệ thống lưu thông tin tài khoản của người dùng

6 Người dùng được chuyển hướng đến màn hình đăng nhập tài khoản

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

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”

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

1 Người dùng tiến hành truy cập trang web của ứng dụng

2 Người dùng nhấn nút “Quên mật khẩu”

3 Người dùng nhập đầy đủ các thông tin cần thiết vào các trường

4 Hệ thống kiểm tra thông tin được nhập có hợp lệ hay không?

5 Hệ thống gửi một đường link và thông báo yêu cầu đổi mật 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

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

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

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”

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

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

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”

4 Hệ thống cập nhật thay đổi và lưu vào cơ sở dữ liệu

5 Kết thúc Sub Flows Không có

4a Hệ thống không thể lưu những thay đổi vào cơ sở dữ liệu, người dùng được yêu cầu thực hiện lại từ bước 1

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

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”

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

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

1 Nếu người dùng chọn chức năng Cập nhật cài đặt thông báo, thực hiện luồng sự kiện phụ S1

2 Nếu người dùng chọn chức năng Đổi mật khẩu, thực hiện luồng sự kiện phụ S1

Sub Flows S1 Cập nhật cài đặt thông báo

S1.1 Hệ thống hiển thị màn hình cài đặt gồm 4 công tắc thông báo

S1.2 Người dùng tuỳ chỉnh các công tắc như mong muốn S1.3 Hệ thống cập nhật cài đặt thông báo

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.2 Người dùng nhấn “Xác nhận”

S2.3 Hệ thống kiểm tra tính chính xác và hợp lệ của thông tin

S2.4 Hệ thống cập nhật thay đổi và thông báo “Đổi mật khẩu thành công”

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

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

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

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

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”

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

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ẻ

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

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”

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

6 Nếu người dùng chọn chức năng đăng bài viết, thực hiện luồng sự kiện phụ S1

7 Nếu người dùng chọn chứcc năng Chỉnh sửa bài viết, thực hiện luồng sự kiện phụ S2

8 Nếu người dùng chọn chức năng Xoá bài viết, thực hiện luồng sự kiện phụ S3

9 Nếu người chọn chức năng xoá bài viết Lưu bài viết, thực hiện luồng sự kiện phụ S4

10 Nếu người dùng chọn chức năng Chia sẻ bài viết, thực hiện luồng sự kiện phụ S5

S1 Đăng 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à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

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”

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ẻ

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

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

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

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

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”

POST-1 Bình luận được tạo mới và lưu lại

POST-2 Bình luận được chỉnh sửa

POST-3 Bình luận bị xoá

1 Nếu người dùng chọn chức năng đăng bình luận, thực hiện luồng sự kiện phụ S1

2 Nếu người dùng chọn chứcc năng Chỉnh sửa bình luận, thực hiện luồng sự kiện phụ S2

3 Nếu người dùng chọn chức năng Xoá bình luận, thực hiện luồng sự kiện phụ S3

S1 Đăng 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”

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

S1.5 Hệ thống lưu bình luận vào cơ sở dữ liệu

S2 Chỉnh sửa bình luận 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”

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

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

S3 Xoá bình luận 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

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

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

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

ID and Name UC Quản lý cuộc trò chuyện

Description Chức năng bao gồm các chức năng phụ như Xem danh sách cuộc trò chuyện, Tạo cuộc trò chuyện và xem chi tiết cuộc trò chuyện

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 biểu tượng tin nhắn ở thanh điều hướng

POST-1 Danh sách cuộc trò chuyện được hiển thị

POST-2 Danh sách tin nhắn của một cuộc trò chuyện được hiển thị

POST-3 Danh sách thành viên của một cuộc trò chuyện được hiển thị

POST-4 Cuộc trò chuyện được tạo

POST-5 Thành viên được thêm vào cuộc trò chuyện

Normal Flow 1 Hệ thống hiển thị danh sách các cuộc trò chuyện hiện có của người dùng

2 Nếu người dùng chọn chức năng tìm kiếm cuộc trò chuyện, thực hiện luồng sự kiện phụ S1

3 Nếu người dùng chọn chức năng Tạo cuộc trò chuyện, thực hiện luồng sự kiện phụ S2

4 Nếu người dùng chọn chức năng Xem chi tiết cuộc trò chuyện, thực hiện luồng sự kiện phụ S3

S1 Tìm kiếm cuộc trò chuyện S1.1 Hệ thống hiển thị thanh tìm kiếm

S1.2 Người dùng nhập từ khoá

S1.3 Hệ thống đưa ra danh sách những cuộc trò chuyện được tìm thấy

S2 Xem chi tiết cuộc trò chuyện

S2.1 Từ danh sách cuộc trò chuyện, người dùng chọn một cuộc trò chuyện bất kỳ

S2.2 Hệ thống hiển thị chi tiết cuộc trò chuyện bao gồm danh sách tin nhắn, …

Thiết kế hệ thống

Nhóm đã sử dụng kiến trúc phần mềm MVC cho ứng dụng MVC được viết tắt cho Model-View-Controller Ý tưởng của kiến trúc này là mỗi thành phần sẽ có một mục đích riêng của nó, nhằm giúp tách biệt các phần của ứng dụng, làm cho mã nguồn được quản lý dễ hơn, tái sử dụng linh hoạt Ngoài ra, nó còn giúp cải thiện khả năng bảo trì và mở rộng của ứng dụng

Hình 3.42 Kiến trúc MVC và các thành phần

3.3.2 Mô tả các thành phần trong hệ thống

STT Thành phần Diễn giải

1 Model Là thành phần liên quan đến dữ liệu, được sử dụng giữa View và Controller Nó có thể thêm hoặc truy xuất từ cơ sở dữ liệu

2 Controller Là thành phần giúp kết nối giữa Model và

View, xử lý toàn bộ logic, xử lý yêu cầu của người dùng bằng cách tương tác với Model và hiển thị lên View hiển thị đầu ra cuối cùng

3 View Là thành phần đại diện giao diện của ứng dụng Được hiển thị với những dữ liệu được xử lý từ Controller

Bảng 3.19 Bảng mô tả các thành phần trong hệ thống

Thiết kế dữ liệu

Hình 3.43 Hình thiết kế dữ liệu

Danh sách chi tiết các bảng trong dữ liệu

STT Tên quan hệ Ý nghĩa

1 AUTH Thông tin xác thực đăng nhập

2 USERS Thông tin người dùng

3 POSTS Thông tin bài viết

4 REACTIONS Thông tin sự tương tác

5 COMMENTS Thông tin bình luận

6 MESSAGES Thông tin tin nhắn

7 CONVERSATIONS Thông tin cuộc hội thoại

8 NOTIFICATIONS Thông tin thông báo

9 FOLLOWERS Thông tin người theo dõi

10 SAVEDPOSTS Thông tin bài viết được lưu

Bảng 3.20 Danh sách các bảng trong cơ sở dữ liệu

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

1 _id String PK Mã thông tin xác thực

2 username String Tên người dùng

3 full_name String Họ tên

5 password_reset_token Int Mã reset mật khẩu

6 avatar String Ảnh đại diện

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

1 _id String PK Mã người dùng

2 auth_id String FK Mã thông tin xác thực

3 blocked_id String[] FK Danh sách ID người dùng bị chặn

4 blocked_by_id String[] FK Danh sách ID bị chặn bởi người dùng

5 posts_count Number Số lượng bài viết

6 password_reset_token String Mã reset mật khẩu

7 profile_picture String URL ảnh cá nhân

8 followers_count Number Số lượng người theo dõi

9 following_count Number Số lượng đang theo dõi người khác

13 created_at Date Thời gian tạo

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

1 _id String PK Mã bài viết

2 user_id String FK Mã người dùng

3 reaction_ids String[] FK Danh sách ID tương tác

5 img_id String Mã ảnh ở cloud

6 img_version String Phiên bản ảnh ở cloud

7 video_id String Mã video ở cloud

8 video_version Number Phiên bản ảnh ở cloud

9 comments_count Number Số lượng bình luận

10 reactions_count Number Số lượng tương tác

11 created_at Date Thời gian tạo bài viết

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

1 _id String PK Mã tương tác

2 user_to String FK Mã người dùng được tương tác

3 post_id String FK Mã bài viết

4 created_at Date Thời gian tạo

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

1 _id String PK Mã bài viết

2 user_id String FK Mã người dùng

3 reaction_ids String[] FK Danh sách ID tương tác

5 img_id String Mã ảnh ở cloud

6 img_version String Phiên bản ảnh ở cloud

7 video_id String Mã video ở cloud

8 video_version Number Phiên bản ảnh ở cloud

9 comments_count Number Số lượng bình luận

10 reactions_count Number Số lượng tương tác

11 created_at Date Thời gian tạo

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

1 _id String PK Mã tin nhắn

2 conversation_id String FK Mã đoạn hội thoại

3 receiver_id String FK Mã người nhận

4 sender_id String FK Mã người gửi

5 content String Nội dung tin nhắn

6 created_at Date Thời gian tạo tin nhắn

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

1 _id String PK Mã đoạn hội thoại

2 user1_id String FK Mã người dùng 1

3 user2_id String FK Mã người dùng 2

4 created_at Date Thời gian tạo cuộc trò chuyện

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

1 _id String PK Mã bài viết

2 user_to_id String FK Mã người dùng gửi tới

3 user_id String FK Mã người tương tác

4 entity_id String FK Mã thực thể tương tác

5 message String Nội dung thông báo

6 is_read Boolean Đã đọc tin nhắn

7 type_notification String Loại thông báo

8 created_at Date Thời gian tạo thông báo

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

1 _id String PK Mã bảng

2 follower_id String FK Mã người được theo dõi

3 followed_by_id String FK Mã người theo dõi

4 created_at Date Thời gian tạo

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

1 _id String PK Mã lưu bài viết

2 post_id String FK Mã bài viết được lưu

3 user_id String FK Mã người dùng

4 created_at Date Thời gian tạo

Thiết kế giao diện

Hình 3.44 Sơ đồ liên kết màn hình

Hình 3.45 Màn hình đăng nhập

STT Tên xử lý Ý nghĩa Điều kiện gọi

1 Đăng nhập Đăng nhập vào hệ thống bằng username và password

Khi người dùng nhập đầy đủ cả hai trường username và password

2 Đến màn hình đăng ký Đăng ký một tài khoản

Khi người dùng ấn vào button Sign up

3 Đến màn hình quên mật khẩu Yêu cầu đổi mật khẩu

Khi người dùng ấn vào button Forget password

Bảng 3.31 Bảng mô tả màn hình đăng nhập

Hình 3.46 Màn hình đăng ký

STT Tên xử lý Ý nghĩa Điều kiện gọi

1 Đăng ký Tạo một tài khoản mới

Khi người dùng nhập đầy đủ các trường

Bảng 3.32 Bảng mô tả màn hình đăng ký

3.5.3 Màn hình quên mật khẩu

Hình 3.47 Màn hình quên mật khẩu

STT Tên xử lý Ý nghĩa Điều kiện gọi

1 Submit Gửi yêu cầu đổi mật khẩu

Khi người dùng nhập đầy đủ các trường

Bảng 3.33 Bảng mô tả màn hình quên mật khẩu

STT Tên xử lý Ý nghĩa Điều kiện gọi

1 Home Di chuyển đến màn hình chính

Khi người dùng nhấn nút Home

2 Search Di chuyển đến màn hình tìm kiếm

Khi người dùng nhấn nút Search

Di chuyển đến màn hình cuộc trò chuyện

Khi người dùng nhấn nút Messages

Di chuyển đến màn hình thông báo

Khi người dùng nhấn nút

Di chuyển đến màn hình trang cá nhân

Khi người dùng nhấn nút có chứa ảnh đại diện

Bảng 3.34 Bảng mô tả màn hình chính

Hình 3.49 Màn hình tìm kiếm

STT Tên xử lý Ý nghĩa Điều kiện gọi

1 Posts Tìm kiếm các bài viết

Khi người dùng đã nhập từ khoá và nhấn nút Enter

2 People Tìm kiếm người dùng

Khi người dùng đã nhập từ khoá và nhấn nút Enter Bảng 3.35 Bảng mô tả màn hình tìm kiếm

3.5.6 Màn hình cuộc trò chuyện

Hình 3.50 Màn hình cuộc trò chuyện

STT Tên xử lý Ý nghĩa Điều kiện gọi

1 Chọn hình ảnh Lấy ảnh từ máy người dùng

Khi người dùng nhấn nút biểu tượng ảnh

2 Gửi tin nhắn Gửi tin nhắn

Khi người dùng nhấn biểu tượng tin nhắn ở góc phải màn hình

Khi người dùng nhấn biểu tượng gọi Audio

Khi người dùng nhấn biểu tượng gọi Video

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

Hình 3.51 Màn hình thông báo

STT Tên xử lý Ý nghĩa Điều kiện gọi

1 Xem tất cả các thông báo

Xem tất cả các thông báo

Khi người dùng nhấn nút All

Xem tất cả các thông báo chưa được đọc

Xem tất cả các thông báo chưa được đọc

Khi người dùng nhấn nút Unread

3 Di chuyển đến bài viết/người dùng

Xem nội dung tuỳ thuộc vào thông điệp của thông báo

Khi người dùng nhấn bất kỳ một thông báo

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

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

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

STT Tên xử lý Ý nghĩa Điều kiện gọi

1 Like Thích bài viết Khi người nhấn biểu tượng tim

2 Xem danh sách người like

Xem danh sách người like

Khi người dùng nhấn vào nút xem danh sách (nút 1 like ở trên ảnh)

3 Bình luận Tạo một bình luận

Khi người dùng đã điền nội dung bình luận và nhấn nút Enter

4 Chia sẻ bài viết Chia sẻ bài viết

Khi người dùng nhấn biểu tượng chia sẻ

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

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

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

STT Tên xử lý Ý nghĩa Điều kiện gọi

1 Thanh điều hướng cài đặt

Dùng để diều hướng tới những trang cài đặt khác nhau

Người dùng nhấn vào button ở thanh điều hướng cài đặt

Dùng để nhập thông tin quote mới

Người dùng nhấn vào text button quote trên màn hình để nhập quote mới

Dùng để nhập thông tin việc làm mới

Người dùng nhấn vào text button quote trên màn hình để nhập việc làm mới

Dùng để nhập thông tin trường học

Người dùng nhấn vào text button school trên màn hình để nhập việc làm mới

5 Button Location Dùng để chọn vị trí

Người dùng nhấn vào button

Location trên màn hình để hiển thị danh sách các quốc gia

6 Button Save Dùng lưu thông tin người dùng

Người dùng nhấn vào button Save trên màn hình Bảng 3.39 Bảng mô tả màn hình cài đặt thông tin tài khoản

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

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

STT Tên xử lý Ý nghĩa Điều kiện gọi

1 Thanh điều hướng cài đặt

Dùng để diều hướng tới những trang cài đặt khác nhau

Người dùng nhấn vào button ở thanh điều hướng cài đặt

2 Button switch all Dùng để tắt/ bật tất cả thông báo

Người dùng nhấn vào switch on/off trên màn hình để quản lý thông báo

Dùng để tắt/ bật tất cả thông báo tin nhắn

Người dùng nhấn vào switch on/off trên màn hình để bật tắt thông báo tin nhắn

Dùng để tắt/ bật tất cả thông báo tương tác

Người dùng nhấn vào switch on/off trên màn hình để bật tắt thông báo tương tác

Dùng để tắt/ bật tất cả thông báo bình luận

Người dùng nhấn vào switch on/off trên màn hình để bật tắt thông báo bình luận

Dùng để tắt/ bật tất cả thông báo người theo dõi

Người dùng nhấn vào switch on/off trên màn hình để bật tắt thông báo người theo dõiBảng 3.40 Bảng mô tả màn hình cài đặt thông báo

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

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

STT Tên xử lý Ý nghĩa Điều kiện gọi

1 Thanh điều hướng cài đặt

Dùng để diều hướng tới những trang cài đặt khác nhau

Người dùng nhấn vào button ở thanh điều hướng cài đặt

Button Text See and manage accounts you’ve blocked Điều hướng tới trang danh sách người bị chặn

Người dùng nhấn vào text button trên màn hình Bảng 3.41 Bảng mô tả màn hình quản lý nội dung của bạn

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

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

STT Tên xử lý Ý nghĩa Điều kiện gọi

1 Thanh điều hướng cài đặt

Dùng để diều hướng tới những trang cài đặt khác nhau

Người dùng nhấn vào button ở thanh điều hướng cài đặt

2 Button Unblock Hủy chặn người dùng

Người dùng nhấn vào button

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

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

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

STT Tên xử lý Ý nghĩa Điều kiện gọi

1 Thanh điều hướng cài đặt

Dùng để diều hướng tới những trang cài đặt khác nhau

Người dùng nhấn vào button ở thanh điều hướng cài đặt

Dùng để nhập thông tin mật khẩu hiện tại

Người dùng nhấn vào textbox current password trên màn hình để nhập mật khẩu hiện tại

Dùng để nhập thông tin mật khẩu mới

Người dùng nhấn vào textbox password trên màn

93 hình để nhập mật khẩu mới

Dùng để nhập thông tin xác thực mật khẩu mới

Người dùng nhấn vào textbox confirm password trên màn hình để xác thực nhập mật khẩu mới

5 Button Saved Giúp cập nhật mật khẩu mới

Người dùng nhấn vào button Save trên màn hình

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

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

STT Tên xử lý Ý nghĩa Điều kiện gọi

1 Button Post Giúp hiển thị trang bài viết người dùng

Người dùng nhấn vào button Post trên màn hình

2 Button Images Giúp hiển thị trang ảnh người dùng đã đăng

Người dùng nhấn vào button Images trên màn hình

3 Button Saved Giúp hiển thị trang bài viết người dùng đã lưu

Người dùng nhấn vào button Saved trên màn hình

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

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

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

STT Tên xử lý Ý nghĩa Điều kiện gọi

Giúp hiển thị trang bài viết người dùng

Người dùng nhấn vào button Post trên màn hình

Giúp hiển thị trang ảnh người dùng đã đăng

Người dùng nhấn vào button Images trên màn hình

Giúp hiển thị trang bài viết người dùng đã lưu

Người dùng nhấn vào button Saved trên màn hình Bảng 3.44 Bảng mô tả màn hình trang các nhân (ảnh/video)

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

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

STT Tên xử lý Ý nghĩa Điều kiện gọi

Giúp hiển thị trang bài viết người dùng

Người dùng nhấn vào button Post trên màn hình

Giúp hiển thị trang ảnh người dùng đã đăng

Người dùng nhấn vào button Images trên màn hình

Giúp hiển thị trang bài viết người dùng đã lưu

Người dùng nhấn vào button Saved trên màn hình Bảng 3.45 Bảng mô tả màn hình trang cá nhân (bài viết được lưu)

CÀI ĐẶT VÀ THỬ NGHIỆM

Công nghệ sử dụng

STT Tên công nghệ Mục đích

1 Express.js Được sử dụng để thiết kế và xây dựng server cho ứng dụng

2 ReactJS Được sử dụng để thiết kế và xây dựng giao diện cho trang web

3 MongoDB Được xây dựng để lưu trữ dữ liệu của ứng dụng

4 Redis Được sử dụng để cache dữ liệu, tăng trải nghiệm người dùng

Là một công cụ tìm kiếm được tích hợp ở trong MongoDB Atlas Được xây dựng dựa trên Apache Lucene Bảng 4.1 Bảng các công nghệ đã sử dụng trong đồ án

Cài đặt

Mã nguồn phía Server: https://github.com/PhuGHs/InstacloudBackend.git

Mã nguồn phía Client: https://github.com/hungcqa23/social_media_pj1.git

4.2.2 Hướng dẫn cài đặt Đầu tiên, để chạy được ứng dụng, ta cần phải cài Node.js Ta có thể tải ở đường link sau: Download | Node.js (nodejs.org)

Sau khi cài đặt thành cụng, ta tiến hành cài đặt Redis ở đường link Releases ã tporadowski/redis (github.com) và chọn Redis-x64-5.0.14.1.msi để cài đặt như hình bên dưới

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

Tiếp theo, ta tiến hành tải mã nguồn của server và client về máy bằng cách dùng lệnh git clone:

Git clone https://github.com/PhuGHs/InstacloudBackend.git

Git clone https://github.com/hungcqa23/social_media_pj1.git

Ta vào từng thư mục chứa mã nguồn, chạy lệnh npm install để cài các phụ thuộc Cuối cùng là gõ npm run dev để chạy ứng dụng Ngoài ra, ta cần cài file môi trường, chi tiết tham khảo ở mục Readme trên đường link sau: https://github.com/PhuGHs/InstacloudBackend.git

Thử nghiệm

STT Chức năng Mức độ hoàn thành Ghi chú

6 Quản lý trang cá nhân 100%

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

Chức năng xoá thông báo chưa được cài đặt trên client

10 Quản lý cuộc trò chuyện 90%

Chức năng xoá tin nhắn chưa được cài đặt trên client

11 Quản lý ảnh và video cá nhân 100%

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

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

NHẬN XÉT VÀ KẾT LUẬN

- Giảng viên hướng dẫn tận tình, có hỗ trợ, định hướng nghiên cứu và thực hiện đề tài cho nhóm

- Các tài liệu về công nghệ liên quan khá phổ biến trên Internet

- Bởi vì đây là lần đầu thực hiện một đồ án lớn với ReactJS, NodeJS nên quá trình tìm hiểu về công nghệ và sắp xếp cấu trúc và bố cục thư mục ứng dụng của nhóm gặp nhiều khó khăn và mất khá nhiều thời gian

- Hoàn thành yêu cầu đặt ra ban đầu, đáp ứng được tương đối đầy đủ tính năng cần thiết của một ứng dụng mạng xã hội

- Tốc độ phản hồi nhanh, trải nghiệm người dùng được tối ưu

- Sinh viên được tiếp xúc với các công nghệ mới, được trau dồi kỹ năng làm việc nhóm, lên kế hoạch

- Nhóm chưa thể thực hiện chức năng Quản lý nhóm cho phép người dùng tạo nhóm gồm các người dùng chung sở thích về một chủ đề bất kỳ

- Nhóm chưa thể thực hiện chức năng Nhóm trò chuyện, là chức năng hỗ trợ người dùng tạo một nhóm chat gồm 3 người trở lên, từ đó các người dùng có thể nhắn tin cho nhau trong nhóm

- Ứng dụng chưa được trang bị chức năng đăng nhiều ảnh trong một bài viết

- Xây dựng và mở rộng thêm các chức năng như tạo tài khoản dành cho người nổi tiếng, các trang của các doanh nghiệp, chức năng tạo nhóm cộng đồng và nhóm trò chuyện giữa các người dùng

- Hoàn thiện các chức năng đã được phát triển trước đó

- Bổ sung các chức năng chưa hoàn thành

- Cung cấp khả năng chuyển đổi ngôn ngữ

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

HÌNH ẢNH LIÊN QUAN

Bảng 3.6. Bảng danh sách các Usecase - đồ án 1 xây dựng ứng dụng mạng xã hội tích hợp lucene
Bảng 3.6. Bảng danh sách các Usecase (Trang 25)
Hình 3.3. Usecase quản lý thông báo - đồ án 1 xây dựng ứng dụng mạng xã hội tích hợp lucene
Hình 3.3. Usecase quản lý thông báo (Trang 26)
Hình 3.5. Usecase quản lý bình luận của bài viết - đồ án 1 xây dựng ứng dụng mạng xã hội tích hợp lucene
Hình 3.5. Usecase quản lý bình luận của bài viết (Trang 27)
Hỡnh 3.6. Usecase quản lý người theo dừi - đồ án 1 xây dựng ứng dụng mạng xã hội tích hợp lucene
nh 3.6. Usecase quản lý người theo dừi (Trang 27)
Hình 3.7. Usecase quản lý cuộc trò chuyện - đồ án 1 xây dựng ứng dụng mạng xã hội tích hợp lucene
Hình 3.7. Usecase quản lý cuộc trò chuyện (Trang 28)
Hình 3.9. Sơ đồ hoạt động cho Usecase Đăng ký tài khoản - đồ án 1 xây dựng ứng dụng mạng xã hội tích hợp lucene
Hình 3.9. Sơ đồ hoạt động cho Usecase Đăng ký tài khoản (Trang 51)
Hình 3.11. Sơ đồ hoạt động cho Usecase Quên mật khẩu - đồ án 1 xây dựng ứng dụng mạng xã hội tích hợp lucene
Hình 3.11. Sơ đồ hoạt động cho Usecase Quên mật khẩu (Trang 53)
Hình 3.12. Sơ đồ hoạt động cho Usecase Thiết lập tài khoản - đồ án 1 xây dựng ứng dụng mạng xã hội tích hợp lucene
Hình 3.12. Sơ đồ hoạt động cho Usecase Thiết lập tài khoản (Trang 54)
Hình 3.13. Sơ đồ hoạt động cho Usecase Quản lý trang cá nhân - đồ án 1 xây dựng ứng dụng mạng xã hội tích hợp lucene
Hình 3.13. Sơ đồ hoạt động cho Usecase Quản lý trang cá nhân (Trang 55)
Hình 3.14. Sơ đồ hoạt động cho Usecase Quản lý thông báo - đồ án 1 xây dựng ứng dụng mạng xã hội tích hợp lucene
Hình 3.14. Sơ đồ hoạt động cho Usecase Quản lý thông báo (Trang 56)
Hình 3.15. Sơ đồ hoạt động cho Usecase Quản lý bài viết (1) - đồ án 1 xây dựng ứng dụng mạng xã hội tích hợp lucene
Hình 3.15. Sơ đồ hoạt động cho Usecase Quản lý bài viết (1) (Trang 57)
Hình 3.16. Sơ đồ hoạt động cho Usecase Quản lý bài viết (2) - đồ án 1 xây dựng ứng dụng mạng xã hội tích hợp lucene
Hình 3.16. Sơ đồ hoạt động cho Usecase Quản lý bài viết (2) (Trang 58)
Hình 3.18. Sơ đồ hoạt động cho Usecase Quản lý bình luận của bài viết (1) - đồ án 1 xây dựng ứng dụng mạng xã hội tích hợp lucene
Hình 3.18. Sơ đồ hoạt động cho Usecase Quản lý bình luận của bài viết (1) (Trang 59)
Hình 3.20. Sơ đồ hoạt động cho Usecase Quản lý bình luận của bài viết (3) - đồ án 1 xây dựng ứng dụng mạng xã hội tích hợp lucene
Hình 3.20. Sơ đồ hoạt động cho Usecase Quản lý bình luận của bài viết (3) (Trang 60)
Hình 3.22. Sơ đồ hoạt động cho Usecase Quản lý cuộc trò chuyện (2) - đồ án 1 xây dựng ứng dụng mạng xã hội tích hợp lucene
Hình 3.22. Sơ đồ hoạt động cho Usecase Quản lý cuộc trò chuyện (2) (Trang 61)
Hỡnh 3.23. Sơ đồ hoạt động cho Usecase Quản lý người theo dừi - đồ án 1 xây dựng ứng dụng mạng xã hội tích hợp lucene
nh 3.23. Sơ đồ hoạt động cho Usecase Quản lý người theo dừi (Trang 62)
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 - đồ án 1 xây dựng ứng dụng mạng xã hội tích hợp lucene
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 (Trang 63)
Hình 3.25. Sơ đồ tuần tự cho Usecase Đăng nhập - đồ án 1 xây dựng ứng dụng mạng xã hội tích hợp lucene
Hình 3.25. Sơ đồ tuần tự cho Usecase Đăng nhập (Trang 64)
Hình 3.26. Sơ đồ tuần tự cho Usecase Đăng ký tài khoản - đồ án 1 xây dựng ứng dụng mạng xã hội tích hợp lucene
Hình 3.26. Sơ đồ tuần tự cho Usecase Đăng ký tài khoản (Trang 65)
Hình 3.27. Sơ đồ tuần tự cho Usecase Quên mật khẩu - đồ án 1 xây dựng ứng dụng mạng xã hội tích hợp lucene
Hình 3.27. Sơ đồ tuần tự cho Usecase Quên mật khẩu (Trang 66)
Hình 3.30. Sơ đồ tuần tự cho Usecase Quản lý bài viết (1) - đồ án 1 xây dựng ứng dụng mạng xã hội tích hợp lucene
Hình 3.30. Sơ đồ tuần tự cho Usecase Quản lý bài viết (1) (Trang 69)
Hình 3.31. Sơ đồ tuần tự cho Usecase Quản lý bài viết (2) - đồ án 1 xây dựng ứng dụng mạng xã hội tích hợp lucene
Hình 3.31. Sơ đồ tuần tự cho Usecase Quản lý bài viết (2) (Trang 70)
Hình 3.32. Sơ đồ tuần tự cho Usecase Quản lý bài viết (3) - đồ án 1 xây dựng ứng dụng mạng xã hội tích hợp lucene
Hình 3.32. Sơ đồ tuần tự cho Usecase Quản lý bài viết (3) (Trang 71)
Hình 3.33. Sơ đồ tuần tự cho Usecase Quản lý bài viết (4) - đồ án 1 xây dựng ứng dụng mạng xã hội tích hợp lucene
Hình 3.33. Sơ đồ tuần tự cho Usecase Quản lý bài viết (4) (Trang 72)
Hình 3.34. Sơ đồ tuần tự cho Usecase Quản lý bình luận của bài viết (1) - đồ án 1 xây dựng ứng dụng mạng xã hội tích hợp lucene
Hình 3.34. Sơ đồ tuần tự cho Usecase Quản lý bình luận của bài viết (1) (Trang 73)
Hình 3.35. Sơ đồ tuần tự cho Usecase Quản lý bình luận của bài viết (2) - đồ án 1 xây dựng ứng dụng mạng xã hội tích hợp lucene
Hình 3.35. Sơ đồ tuần tự cho Usecase Quản lý bình luận của bài viết (2) (Trang 74)
Hình 3.41. Sơ đồ lớp - đồ án 1 xây dựng ứng dụng mạng xã hội tích hợp lucene
Hình 3.41. Sơ đồ lớp (Trang 80)
Hình 3.43. Hình thiết kế dữ liệu - đồ án 1 xây dựng ứng dụng mạng xã hội tích hợp lucene
Hình 3.43. Hình thiết kế dữ liệu (Trang 82)
Hình 3.44. Sơ đồ liên kết màn hình - đồ án 1 xây dựng ứng dụng mạng xã hội tích hợp lucene
Hình 3.44. Sơ đồ liên kết màn hình (Trang 87)
Hình để nhập mật  khẩu mới - đồ án 1 xây dựng ứng dụng mạng xã hội tích hợp lucene
nh để nhập mật khẩu mới (Trang 103)
w