Bối cảnh và vấn đề nghiên cứu
Lý do chọn đề tài và bối cảnh thực tiễn
Trong kỷ nguyên phát triển của công nghệ thông tin, sự phổ biến rộng rãi của Internet và điện thoại thông minh đã biến mạng xã hội thành một phần không thể thiếu trong sinh hoạt hàng ngày. Mạng xã hội đảm nhận vai trò kết nối cộng đồng, tạo không gian chia sẻ hoạt động cá nhân, giải trí và duy trì liên lạc. Tuy nhiên, tác giả Lý Tiến Thành chỉ ra một thực trạng thực tiễn: các nền tảng mạng xã hội phổ biến hiện nay đang có xu hướng hiển thị quá nhiều nội dung thứ yếu nằm ngoài mục đích ban đầu của người dùng, dẫn đến tình trạng phân tâm và lãng phí thời gian.
Nguyên nhân cốt lõi bắt nguồn từ các thuật toán đề xuất nội dung được tối ưu hóa dựa trên mối quan tâm cá nhân. Bản năng tâm lý con người vốn có xu hướng tò mò đối với những sự kiện kịch tính hoặc nguy hiểm (thường được gọi là "drama"), khiến các luồng thông tin gây tranh cãi lan truyền nhanh chóng và tràn lan. Đối với bộ phận người dùng muốn tối ưu hóa quỹ thời gian cá nhân để phục vụ các hoạt động xã hội, rèn luyện thể chất và chăm sóc sức khỏe tinh thần ngoài đời thực, việc bị cuốn vào các thuật toán giữ chân người dùng gây ra những hệ quả tiêu cực. Từ bối cảnh đó, đề tài "Thiết kế và Xây dựng website Mạng xã hội kết nối và tương tác với bạn bè" được thực hiện nhằm xây dựng một không gian mạng xã hội tinh giản, loại bỏ các cơ chế gợi ý nội dung gây xao nhãng và tập trung hoàn toàn vào việc kết nối giữa những người quen biết.
Mục tiêu và nhiệm vụ nghiên cứu
Mục đích bao quát của đề tài là xây dựng hoàn chỉnh một website mạng xã hội cơ bản, phục vụ nhu cầu kết nối và tương tác bạn bè mà không tích hợp các thuật toán đề xuất nội dung tiêu tốn thời gian.
Nhiệm vụ nghiên cứu được xác định cụ thể theo 5 giai đoạn công việc trong đề cương:
- Khảo sát hiện trạng các nền tảng mạng xã hội phổ biến và mô hình hóa yêu cầu người dùng.
- Tìm hiểu cơ sở lý thuyết, lựa chọn và nghiên cứu các công nghệ phát triển phía máy khách (Client), máy chủ (Server), cơ sở dữ liệu và truyền thông thời gian thực.
- Phân tích và thiết kế hệ thống, bao gồm thiết kế cơ sở dữ liệu quan hệ và mô hình hóa giao diện người dùng.
- Cài đặt mã nguồn, triển khai các dịch vụ và thực hiện kiểm thử ứng dụng theo các tiêu chí xác định.
- Xây dựng tài liệu hướng dẫn cài đặt và hướng dẫn sử dụng hệ thống.
Đối tượng và phạm vi nghiên cứu
- Đối tượng nghiên cứu: Nhóm người dùng có nhu cầu sử dụng mạng xã hội thuần túy để duy trì liên lạc và tương tác với bạn bè, mong muốn tránh các luồng nội dung gợi ý không cần thiết.
- Phạm vi nội dung: Đề tài tập trung vào việc khảo sát nhu cầu cốt lõi, xác định tập tính năng cơ bản của một mạng xã hội (tài khoản, bạn bè, bài viết, tương tác, nhắn tin), thiết kế giao diện web và áp dụng các công nghệ lập trình hiện đại để hiện thực hóa hệ thống.
- Phạm vi thời gian: Quá trình nghiên cứu và thực hiện khóa luận diễn ra từ ngày 06/01/2025 đến ngày 05/06/2025, thuộc chuyên ngành Công nghệ Phần mềm, Khoa Công nghệ Thông tin, Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh.
Cơ sở lý thuyết và phương pháp
Khung công nghệ và nền tảng sử dụng
Khóa luận lựa chọn các công nghệ hiện đại thuộc hệ sinh thái JavaScript/TypeScript nhằm đảm bảo tính đồng bộ, khả năng mở rộng và hiệu năng hệ thống:
| Tầng kiến trúc |
Công nghệ sử dụng |
Vai trò và đặc tính kỹ thuật |
| Giao diện (Front-end) |
ReactJS |
Thư viện mã nguồn mở xây dựng giao diện người dùng theo kiến trúc hướng thành phần (component-based), sử dụng Virtual DOM để tối ưu hóa hiệu suất cập nhật giao diện. |
|
TypeScript |
Ngôn ngữ mở rộng từ JavaScript, bổ sung hệ thống kiểu tĩnh (static typing), hỗ trợ phát hiện lỗi cú pháp và logic ngay trong quá trình biên dịch. |
|
SCSS & Tailwind CSS |
SCSS cung cấp các cú pháp lồng ghép, biến và mixin; Tailwind CSS cung cấp hệ thống utility classes giúp chuẩn hóa giao diện nhanh chóng. |
|
Ant Design |
Thư viện cung cấp hệ thống các thành phần giao diện chuẩn hóa (form, button, modal, menu) giúp giao diện đồng nhất. |
|
Redux |
Thư viện quản lý trạng thái tập trung (centralized store) cho toàn bộ ứng dụng ở phía máy khách. |
|
React Query |
Quản lý việc đồng bộ hóa dữ liệu từ máy chủ, xử lý cơ chế lưu bộ nhớ đệm (caching) và cập nhật dữ liệu tự động. |
| Máy chủ (Back-end) |
NestJS |
Framework phát triển phía máy chủ trên nền tảng Node.js, sử dụng cấu trúc module hóa rõ ràng, hỗ trợ toàn diện TypeScript và hệ thống dependency injection. |
|
JSON Web Token (JWT) |
Tiêu chuẩn mã hóa phi trạng thái gồm ba phần (Header, Payload, Signature), sử dụng để xác thực tài khoản và phân quyền truy cập API. |
|
Cloudinary |
Dịch vụ đám mây cung cấp giải pháp lưu trữ, nén tự động và quản lý hình ảnh tải lên từ hệ thống. |
| Cơ sở dữ liệu |
MySQL |
Hệ quản trị cơ sở dữ liệu quan hệ (RDBMS), quản lý các thực thể dữ liệu có ràng buộc thông qua ngôn ngữ truy vấn SQL. |
| Giao tiếp thời gian thực |
Socket.io |
Thư viện thiết lập kênh giao tiếp hai chiều (bi-directional), hoạt động dựa trên sự kiện (event-driven) qua giao thức WebSocket (với cơ chế dự phòng HTTP Long Polling) phục vụ tính năng nhắn tin và thông báo. |
Phương pháp nghiên cứu
Tác giả đã kết hợp ba phương pháp nghiên cứu cụ thể:
- Phương pháp nghiên cứu tài liệu: Thu thập, phân tích các tài liệu kỹ thuật về các nền tảng mạng xã hội đang hoạt động và tài liệu chuyên sâu về kiến trúc phần mềm, framework lập trình.
- Phương pháp khảo sát hiện trạng: Đánh giá ưu điểm, nhược điểm và mô hình hoạt động của ba nền tảng mạng xã hội tiêu biểu tại Việt Nam gồm Facebook, Zalo và Instagram.
- Phương pháp thiết kế và thực nghiệm kỹ thuật: Dựa trên các đặc tả yêu cầu thu được, tiến hành mô hình hóa bằng sơ đồ Use-case, sơ đồ tuần tự (Sequence Diagram), sơ đồ quan hệ thực thể (ERD); sau đó lập trình xây dựng sản phẩm và tiến hành kiểm thử thực tế.
Thiết kế và triển khai
Kiến trúc tổng thể và cơ sở dữ liệu
Hệ thống được tổ chức theo mô hình tách rời Client-Server. Mã nguồn máy chủ (Social-Web-Server) xây dựng trên nền tảng NestJS cung cấp hệ thống API RESTful và Gateway WebSocket; mã nguồn máy khách (Social-Web-Client) phát triển bằng ReactJS tiếp nhận tương tác của người dùng.
Hệ thống cơ sở dữ liệu MySQL được thiết kế chặt chẽ thông qua Sơ đồ quan hệ thực thể (ERD) với 12 bảng dữ liệu chính:
user: Lưu trữ thông tin đăng nhập cốt lõi (tài khoản, email, mật khẩu đã mã hóa).
profile: Lưu thông tin chi tiết của người dùng (họ tên, ngày sinh, tiểu sử, thông tin giới thiệu).
asset: Quản lý các tài nguyên đa phương tiện (ảnh đại diện, ảnh bìa) liên kết với dịch vụ Cloudinary.
user_friend: Quản lý mối quan hệ bạn bè đã được thiết lập giữa hai người dùng.
friend_request: Lưu trữ trạng thái các yêu cầu kết bạn đang chờ xử lý.
post: Quản lý nội dung bài viết do người dùng đăng tải.
post_image: Lưu trữ đường dẫn các hình ảnh đính kèm theo từng bài viết.
like: Quản lý các lượt thích (bày tỏ cảm xúc) của người dùng đối với bài viết.
comment: Quản lý nội dung bình luận, người bình luận và liên kết bài viết tương ứng.
chat: Quản lý các phòng/đoạn hội thoại được khởi tạo giữa người dùng.
message: Lưu trữ nội dung chi tiết tin nhắn, tệp đính kèm và trạng thái đã đọc hay chưa.
notification: Quản lý các thông báo hệ thống gửi đến người dùng (lời mời kết bạn, lượt thích, bình luận mới).
Quy trình nghiệp vụ và sơ đồ tuần tự
Hệ thống đặc tả chi tiết 32 trường hợp sử dụng (use-case) và mô hình hóa luồng xử lý bằng 32 sơ đồ tuần tự tương ứng. Tiêu biểu là các quy trình:
- Xác thực người dùng: Kiểm tra định dạng email (bắt buộc đuôi
@gmail.com), độ dài mật khẩu (tối thiểu 6 ký tự, mã hóa bảo mật khi lưu trữ). Khi đăng nhập thành công, hệ thống cấp phát token JWT để lưu phiên làm việc.
- Cơ chế tải dữ liệu: Để tối ưu hóa hiệu năng máy chủ và đường truyền, dữ liệu bảng tin (bài viết) và danh sách lượt thích được thiết kế theo cơ chế phân trang động, mỗi lần cuộn trang sẽ tải thêm (load) đúng 10 mục dữ liệu mới nhất.
- Tương tác thời gian thực: Cơ chế gửi tin nhắn, đánh dấu đã đọc tin nhắn và bình luận trực tiếp được kết nối qua cổng Socket.io, giúp truyền tải dữ liệu tức thì đến các máy khách liên quan mà không cần tải lại toàn bộ trang.
Kiểm thử hệ thống
Hệ thống được kiểm thử thông qua bốn khía cạnh kỹ thuật:
- Kiểm thử tính năng (Functional Testing): Đánh giá việc thực thi của 32 use-case (bảng 65 trong văn bản), bao gồm các luồng xử lý chính, luồng thay thế và luồng xử lý ngoại lệ (nhập sai định dạng, tài khoản trùng lặp, tệp tải lên sai quy chuẩn).
- Kiểm thử giao diện (UI Testing): Kiểm tra tính tương thích, độ hiển thị của các thành phần Ant Design, bố cục giao diện trang chủ, trang cá nhân và các hộp thoại pop-up.
- Kiểm thử hiệu suất (Performance Testing): Đo lường thời gian phản hồi của hệ thống với mục tiêu kỹ thuật đặt ra: thời gian đáp ứng của các thao tác cốt lõi (đăng nhập, tạo bài viết, gửi tin nhắn) không vượt quá 3 giây.
- Kiểm thử bảo mật (Security Testing): Xác thực cơ chế mã hóa mật khẩu, kiểm tra việc phân quyền truy cập thông qua JWT và tính toàn vẹn của dữ liệu trong MySQL.
Nội dung chính theo từng chương
Chương 1: Cơ sở lý thuyết
Chương 1 trình bày chi tiết cơ sở lý thuyết của các công nghệ phần mềm được lựa chọn trong đề tài. Ở phía Front-end, tác giả làm rõ vai trò của ReactJS với cơ chế Virtual DOM, TypeScript giúp hạn chế lỗi runtime nhờ kiểu tĩnh, cùng các công cụ quản lý giao diện và trạng thái như SCSS, Tailwind CSS, Ant Design, Redux và React Query. Ở phía Back-end, cấu trúc module hóa của NestJS cùng phương thức xác thực bằng JSON Web Token (JWT) được diễn giải làm nền tảng xây dựng API. Chương này cũng phân tích việc quản lý tệp đa phương tiện trên nền tảng Cloudinary, cơ chế lưu trữ của hệ quản trị cơ sở dữ liệu quan hệ MySQL và nguyên lý hoạt động của Socket.io trong việc thiết lập kết nối thời gian thực qua giao thức WebSocket.
Chương 2: Khảo sát hiện trạng và mô hình hóa yêu cầu
Nội dung chương 2 tập trung khảo sát ba mạng xã hội lớn đang thịnh hành: Facebook, Zalo và Instagram. Phân tích chỉ ra những điểm chung về kết nối, chia sẻ nội dung đa phương tiện, bảo mật và hỗ trợ đa nền tảng, đồng thời phân tích nét riêng: Facebook có hệ sinh thái rộng lớn nhưng giao diện dễ gây rối; Zalo tối ưu cho nhắn tin và tích hợp dịch vụ công tại Việt Nam; Instagram tập trung mạnh vào hình ảnh và tính thẩm mỹ nhưng hạn chế về mặt đọc thông tin chi tiết.
Từ kết quả khảo sát, tác giả xác định các yêu cầu của hệ thống:
- Yêu cầu chức năng: Gồm 32 chức năng trải rộng trên các phân hệ: Đăng ký/đăng nhập/đăng xuất; Quản lý hồ sơ cá nhân và cập nhật ảnh đại diện, ảnh bìa; Tìm kiếm người dùng qua tên; Quản lý quan hệ bạn bè (gửi lời mời, hủy lời mời, chấp nhận, từ chối, hủy kết bạn, hiển thị số lượng bạn bè); Tương tác bài viết (đăng bài, sửa bài, hiển thị theo thời gian, thích/bỏ thích, xem danh sách lượt thích, bình luận); Trò chuyện thời gian thực (danh sách cuộc hội thoại, lịch sử tin nhắn, gửi tin nhắn văn bản và hình ảnh, xem trạng thái đã đọc); Quản lý danh sách thông báo.
- Yêu cầu phi chức năng: Đảm bảo giao diện thân thiện, dễ tiếp cận; hệ thống có thời gian phản hồi không quá 3 giây đối với các thao tác cốt lõi; kiến trúc linh hoạt cho phép mở rộng trong tương lai. Chương này cũng hoàn thiện 32 bảng đặc tả use-case chi tiết từ Bảng 1 đến Bảng 32.
Chương 3: Phân tích và thiết kế hệ thống
Chương 3 chi tiết hóa giải pháp kỹ thuật thông qua việc xây dựng 32 sơ đồ tuần tự (từ Hình 17 đến Hình 48) mô tả sự tương tác giữa Người dùng (User), Giao diện (Client), Máy chủ (Server) và Cơ sở dữ liệu (Database) cho từng use-case. Tiếp đó, tác giả hoàn thành sơ đồ quan hệ thực thể (ERD) tại Hình 49 và mô tả cấu trúc chi tiết của 12 bảng cơ sở dữ liệu (từ Bảng 33 đến Bảng 44). Phần cuối của chương là bản thiết kế chi tiết giao diện người dùng cho toàn bộ hệ thống (từ Hình 50 đến Hình 69 và Bảng 45 đến Bảng 64), bao gồm: trang đăng nhập, trang chủ, thanh điều hướng (navbar), bảng tin, hộp thoại tạo và sửa bài viết, hộp thoại bình luận, danh sách tương tác, trang cá nhân và khung trò chuyện trực tiếp.
Chương 4: Cài đặt và kiểm thử ứng dụng
Chương 4 mô tả quá trình thiết lập môi trường phát triển và triển khai thực tế. Tác giả hướng dẫn chi tiết các bước cài đặt hệ thống bao gồm: cấu hình môi trường chạy máy chủ Social-Web-Server (cài đặt gói phụ thuộc, thiết lập biến môi trường kết nối MySQL, JWT secret, tài khoản Cloudinary), triển khai máy khách Social-Web-Client, và kết nối các tiến trình với nhau. Phần sau của chương trình bày quá trình kiểm thử phần mềm thông qua kiểm thử tính năng (xác thực dữ liệu use-case), kiểm thử giao diện trực quan, kiểm thử thời gian đáp ứng của hệ thống và kiểm tra an toàn dữ liệu.
Chương 5: Hướng dẫn sử dụng ứng dụng
Chương 5 đóng vai trò là tài liệu hướng dẫn vận hành hệ thống cho người sử dụng cuối. Chương này tổng hợp quy trình từng bước bằng hình ảnh minh họa cụ thể (từ Hình 87 đến Hình 106), chỉ dẫn người dùng cách tạo mới tài khoản, đăng nhập, tìm kiếm người dùng khác, gửi yêu cầu kết bạn, đăng tải bài viết kèm hình ảnh, tương tác qua nút thích và hộp thoại bình luận, quản lý thông báo, cũng như cách thức mở hộp thoại để nhắn tin thời gian thực.
Kết quả và đóng góp
Kết quả chính đạt được
Khóa luận đã hoàn thành toàn bộ các mục tiêu đặt ra theo đúng tiến độ đề cương từ tháng 01/2025 đến tháng 06/2025:
- Xây dựng thành công một website mạng xã hội hoạt động đầy đủ trên môi trường web với hai khối mã nguồn độc lập: máy chủ backend (NestJS) và giao diện frontend (ReactJS, TypeScript).
- Hiện thực hóa thành công 32 ca sử dụng (use-case) bao gồm toàn bộ chu trình quản lý thông tin tài khoản, quan hệ bạn bè, quản lý bài viết và trao đổi tin nhắn.
- Tích hợp thành công kênh truyền thông hai chiều thông qua Socket.io, hỗ trợ nhắn tin thời gian thực, cập nhật bình luận trực tiếp và gửi thông báo tức thời.
- Thiết kế hệ thống cơ sở dữ liệu quan hệ đồng bộ với 12 bảng thực thể trong MySQL, đảm bảo liên kết toàn vẹn dữ liệu từ người dùng, bài viết đến các tương tác phụ.
- Đạt được chỉ tiêu hiệu năng theo yêu cầu phi chức năng: các thao tác cơ bản như đăng nhập, tải trang và gửi nhận dữ liệu đạt thời gian phản hồi trong ngưỡng 3 giây.
Đóng góp so với các nền tảng nghiên cứu
So với các nền tảng mạng xã hội thương mại phức tạp như Facebook, Zalo hay Instagram được khảo sát tại Chương 2, sản phẩm của khóa luận đóng góp một mô hình mạng xã hội tối giản về mặt định hướng nội dung:
- Loại bỏ sự phân tâm: Hệ thống không tích hợp thuật toán phân tích hành vi hay các luồng gợi ý video/nội dung từ người lạ nhằm giữ chân người dùng một cách thụ động, giúp người sử dụng tập trung hoàn toàn vào các chia sẻ của bạn bè thân thiết.
- Tính minh bạch trong hiển thị: Bảng tin hiển thị nội dung theo đúng trình tự thời gian với cơ chế phân trang 10 bài viết mỗi lượt cuộn, không bị can thiệp bởi các yếu tố quảng cáo hoặc nội dung gây tranh cãi.
Hạn chế và hướng nghiên cứu tiếp
Hạn chế của hệ thống
Căn cứ trên phạm vi nghiên cứu và phần đánh giá ưu nhược điểm được ghi nhận trong văn bản khóa luận:
- Hệ thống mới chỉ được xây dựng và kiểm thử trên nền tảng ứng dụng web trình duyệt, chưa phát triển phiên bản ứng dụng di động độc lập (Mobile App).
- Các chức năng tương tác mới dừng lại ở mức giao tiếp cơ bản (bài viết văn bản, đính kèm hình ảnh qua Cloudinary, nhắn tin văn bản/hình ảnh), chưa hỗ trợ các hình thức tương tác đa phương tiện nâng cao như gọi thoại, gọi video hay định dạng nội dung ngắn (Shorts/Reels/Stories).
- Cơ chế xác thực định dạng đầu vào còn cứng (yêu cầu email bắt buộc phải có phần mở rộng
@gmail.com).
Hướng phát triển tiếp theo
Dựa trên các hạn chế đã chỉ ra, tác giả xác định các hướng mở rộng cho đề tài:
- Mở rộng phát triển ứng dụng di động để tăng tính tiện lợi cho người dùng trên các thiết bị cầm tay.
- Nghiên cứu tích hợp giao thức WebRTC nhằm cung cấp tính năng gọi thoại và gọi video trực tuyến trong hộp thoại trò chuyện.
- Nâng cấp các tính năng bảo mật nâng cao và tối ưu hóa thêm cơ chế lưu bộ nhớ đệm nhằm phục vụ lượng người dùng đồng thời lớn hơn.
Giá trị tham khảo
Báo cáo khóa luận tốt nghiệp của tác giả Lý Tiến Thành mang lại giá trị tham khảo thiết thực cho nhiều đối tượng:
- Sinh viên ngành Công nghệ Thông tin và Công nghệ Phần mềm: Là tài liệu tham khảo hoàn chỉnh về cấu trúc của một đồ án tốt nghiệp chuẩn mực, từ bước khảo sát hiện trạng, lập đề cương tiến độ, viết đặc tả use-case, thiết kế hệ thống theo chuẩn UML đến cài đặt và kiểm thử.
- Người học và lập trình viên Full-stack: Cung cấp mô hình tham chiếu thực tế về việc kết hợp các công nghệ phổ biến hiện nay: ReactJS, TypeScript, Redux, React Query ở phía giao diện với NestJS, MySQL, Socket.io và dịch vụ đám mây Cloudinary ở phía máy chủ.
- Nghiên cứu phát triển giao diện và trải nghiệm người dùng (UI/UX): Báo cáo cung cấp tập hợp 32 biểu mẫu đặc tả use-case và hệ thống sơ đồ tuần tự chi tiết, là nguồn tài liệu hữu ích cho việc học tập kỹ năng phân tích thiết kế hệ thống phần mềm hướng đối tượng.
Câu hỏi thường gặp
1. Khóa luận giải quyết vấn đề thực tiễn nào so với các mạng xã hội hiện hành như Facebook, Zalo, Instagram?
Khóa luận giải quyết tình trạng người dùng bị phân tâm và lãng phí thời gian bởi các thuật toán đề xuất nội dung kịch tính (drama) hoặc thương mại trên các mạng xã hội lớn. Hệ thống hướng tới việc xây dựng một không gian mạng xã hội tối giản, không chứa thuật toán gợi ý giữ chân người dùng, chỉ tập trung vào việc hiển thị bài viết và hỗ trợ giao tiếp trực tiếp với bạn bè.
2. Công nghệ nào được tác giả sử dụng để hiện thực hóa tính năng nhắn tin thời gian thực?
Tác giả sử dụng thư viện Socket.io hoạt động trên nền tảng giao thức WebSocket (với cơ chế dự phòng HTTP Long Polling). Công nghệ này thiết lập kênh giao tiếp hai chiều theo mô hình hướng sự kiện giữa máy khách ReactJS và máy chủ NestJS, cho phép gửi, nhận tin nhắn, cập nhật bình luận và hiển thị trạng thái đã đọc tức thời mà không cần tải lại trang web.
3. Cơ sở dữ liệu của hệ thống được thiết kế gồm bao nhiêu bảng và quản lý những thực thể nào?
Cơ sở dữ liệu MySQL của hệ thống bao gồm 12 bảng dữ liệu chính: user (tài khoản), profile (thông tin cá nhân), asset (ảnh đại diện, ảnh bìa), user_friend (danh sách bạn bè), friend_request (lời mời kết bạn), post (bài viết), post_image (ảnh bài viết), like (lượt thích), comment (bình luận), chat (đoạn hội thoại), message (tin nhắn) và notification (thông báo).
4. Cơ chế phân trang của hệ thống tải bao nhiêu mục dữ liệu cho mỗi lần cuộn trang?
Theo ghi chú đặc tả trong Chương 2 của khóa luận, đối với các danh sách dữ liệu có dung lượng biến động như danh sách bài viết trên bảng tin và danh sách những người thích bài viết, hệ thống được thiết kế theo cơ chế tải tăng dần với định mức tải thêm đúng 10 mục dữ liệu cho mỗi lần người dùng cuộn xuống.
5. Quy định về tài khoản đăng ký và mật khẩu trong hệ thống được thiết lập như thế nào?
Hệ thống quy định email hợp lệ khi đăng ký bắt buộc phải có đuôi định dạng @gmail.com. Mật khẩu hợp lệ phải có độ dài từ 6 ký tự trở lên, khi nhập mặc định hiển thị ký tự dấu hoa thị * (có tùy chọn bật hiển thị mật khẩu) và bắt buộc phải được mã hóa trước khi lưu trữ vào bảng user trong cơ sở dữ liệu.
Kết luận
Khóa luận tốt nghiệp "Thiết kế và Xây dựng website Mạng xã hội kết nối và tương tác với bạn bè" của sinh viên Lý Tiến Thành dưới sự hướng dẫn của PGS. TS Hoàng Văn Dũng đã hoàn thành trọn vẹn mục tiêu đề ra về mặt kỹ thuật lẫn ứng dụng thực tiễn. Đề tài xây dựng thành công một hệ thống mạng xã hội hoàn chỉnh trên nền tảng web, kết hợp hiệu quả giữa ReactJS, NestJS, MySQL và Socket.io nhằm đáp ứng 32 chức năng nghiệp vụ cốt lõi. Bằng cách lược bỏ các thuật toán đề xuất gây xao nhãng, sản phẩm cung cấp một không gian giao tiếp số lành mạnh, minh bạch và là tài liệu tham khảo có giá trị học thuật cao cho sinh viên chuyên ngành Công nghệ Phần mềm.