MỤC LỤC
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.
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. 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.
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. 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. 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.
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. 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.
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. 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 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.
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 đó. 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.
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. 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ọ.
• 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ị.
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. 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.
- 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. - 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.
- 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.