Bối cảnh và vấn đề nghiên cứu

Sự phát triển của khoa học công nghệ, đặc biệt là lĩnh vực công nghệ thông tin, đã thúc đẩy mạnh mẽ nhu cầu giao tiếp trực tuyến của con người. Các nền tảng mạng xã hội ra đời đóng vai trò giải quyết nhu cầu liên lạc, xóa nhòa khoảng cách địa lý và kết nối các cá nhân trong xã hội. Tuy nhiên, theo khảo sát thực tế của nhóm tác giả, tại thời điểm nghiên cứu vẫn chưa có một nền tảng mạng xã hội nào thực sự hướng đến cộng đồng những người yêu thú cưng, đồng thời đáp ứng các chuẩn mực phù hợp với chính sách và văn hóa của người Việt Nam. Xuất phát từ bối cảnh đó, đề tài "Mạng xã hội WHORU" (Who Are You) được thực hiện nhằm xây dựng một hệ thống mạng xã hội di động đáp ứng nhu cầu kết nối, tương tác và giải trí lành mạnh.

Mục tiêu và nhiệm vụ nghiên cứu của đề tài bao gồm:

  1. Nghiên cứu lý thuyết và ứng dụng thư viện xây dựng ứng dụng di động Flutter kết hợp với nền tảng ASP.NET Core để xây dựng hệ thống theo kiến trúc RESTful API.
  2. Thiết kế và phát triển đầy đủ các tính năng cho mạng xã hội Whoru theo danh mục đặc tả yêu cầu chức năng và phi chức năng.
  3. Thúc đẩy sự kết nối giữa người dùng thông qua hệ thống tương tác trực tiếp bao gồm gửi tin nhắn (chat), gọi thoại, gọi video, đăng bài viết (feed), bình luận, chia sẻ nội dung và hiển thị vị trí người dùng xung quanh.

Đối tượng và phạm vi nghiên cứu:

  • Đối tượng nghiên cứu: Quy trình phân tích, thiết kế, cài đặt và kiểm thử ứng dụng mạng xã hội di động đa nền tảng Whoru.
  • Phạm vi không gian: Nghiên cứu và triển khai thử nghiệm đối với người dùng mạng xã hội tại Việt Nam, trọng tâm là đối tượng học sinh, sinh viên và người trẻ tuổi.
  • Phạm vi thời gian: Khóa luận được thực hiện trong giai đoạn đào tạo khóa 2020 – 2024 và hoàn thành nghiệm thu vào tháng 8/2024 tại 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

Đề tài sử dụng các cơ sở lý thuyết công nghệ và mô hình phát triển phần mềm sau:

  • Nền tảng ASP.NET Core: Framework mã nguồn mở, đa nền tảng (cross-platform) do Microsoft phát triển, hỗ trợ xây dựng ứng dụng web, IoT và dịch vụ backend cho di động. Hệ thống sử dụng cấu trúc module hóa qua các gói NuGet, hỗ trợ cơ chế Dependency Injection tích hợp sẵn, tối ưu hóa HTTP request và hỗ trợ quản lý phiên bản ứng dụng.
  • Nền tảng Flutter: Bộ công cụ phát triển giao diện mã nguồn mở của Google sử dụng ngôn ngữ lập trình Dart. Flutter cung cấp cơ chế dựng giao diện theo mô hình Widget, tính năng Hot Reload hỗ trợ cập nhật thay đổi mã nguồn nhanh chóng, cùng khả năng biên dịch đa nền tảng cho hệ điều hành Android và iOS từ một cơ sở mã nguồn duy nhất.
  • Kiến trúc RESTful API: Chuẩn thiết kế dịch vụ web tập trung vào quản lý tài nguyên hệ thống (tệp văn bản, hình ảnh, video, dữ liệu động) thông qua các phương thức HTTP chuẩn (GET, POST, DELETE, PUT) và định dạng truyền tải dữ liệu JSON/XML.
  • Hệ quản trị cơ sở dữ liệu: PostgreSQL được sử dụng để lưu trữ và quản lý toàn bộ dữ liệu quan hệ của hệ thống.

Phương pháp nghiên cứu và thực hiện:

  • Phương pháp khảo sát hiện trạng: Thu thập và tổng hợp số liệu thứ cấp về xu hướng sử dụng mạng xã hội (trích dẫn nghiên cứu của Lenhart và cộng sự năm 2010; khảo sát Vietnamsurvey tháng 2/2013), kết hợp khảo sát thực nghiệm trực tiếp ý kiến người dùng về trải nghiệm hệ thống Whoru.
  • Phương pháp phân tích và thiết kế phần mềm: Sử dụng ngôn ngữ mô hình hóa thống nhất (UML) để xây dựng lược đồ ca sử dụng (Use Case Diagram), đặc tả chi tiết 25 ca sử dụng, thiết kế biểu đồ tuần tự (Sequence Diagram), thiết kế mô hình thực thể mối quan hệ (ERD) và kiến trúc phân tầng MVC.
  • Phương pháp kiểm thử phần mềm: Áp dụng phương pháp kiểm thử chức năng theo các kịch bản kiểm thử (Test Cases) xác định trước để đánh giá mức độ chính xác của các mô-đun.

Nguồn dữ liệu nghiên cứu:

  • Dữ liệu thứ cấp: Tài liệu kỹ thuật chính thức về ASP.NET Core, Flutter, chuẩn kiến trúc RESTful API và các báo cáo khảo sát hành vi người dùng mạng xã hội.
  • Dữ liệu sơ cấp: Số liệu điều tra từ bảng câu hỏi khảo sát người dùng thực tế về độ ổn định, mức độ hài lòng, giao diện và tần suất sử dụng các chức năng của ứng dụng Whoru.

Thiết kế và triển khai hệ thống

Hệ thống mạng xã hội Whoru được thiết kế theo mô hình kiến trúc phân tầng Client-Server dựa trên RESTful API:

  • Tầng giao diện người dùng (Client): Ứng dụng di động xây dựng bằng Flutter, chịu trách nhiệm kết xuất giao diện đồ họa, tiếp nhận tương tác của người dùng và gửi yêu cầu bất đồng bộ đến máy chủ backend.
  • Tầng xử lý nghiệp vụ (Backend): Xây dựng bằng ASP.NET Core, tiếp nhận và định tuyến các HTTP request, xử lý logic nghiệp vụ, xác thực quyền truy cập, tạo mã OTP và chuyển đổi dữ liệu.
  • Tầng lưu trữ (Database): Cơ sở dữ liệu PostgreSQL lưu trữ có cấu trúc các thực thể của mạng xã hội.

Hệ thống cơ sở dữ liệu bao gồm 16 bảng đối tượng chính:

STT Tên bảng đối tượng Mục đích lưu trữ
1 Users Thông tin tài khoản người dùng chính (tên đăng nhập, mật khẩu mã hóa, trạng thái)
2 Roles Phân quyền và vai trò của các nhóm người dùng trong hệ thống
3 UserInfos Chi tiết hồ sơ người dùng (ảnh đại diện, ảnh bìa, tiểu sử, thông tin liên hệ)
4 Follows Mối quan hệ theo dõi giữa các tài khoản (Following và Follower)
5 Chats Nội dung và thời gian của các tin nhắn trò chuyện giữa người dùng
6 Feeds Nội dung các bài viết đăng tải trên bảng tin
7 FeedImages Danh sách hình ảnh đính kèm tương ứng với từng bài viết
8 Likes Lịch sử và trạng thái lượt thích (tim) của người dùng đối với bài viết
9 Comments Nội dung, thời gian và liên kết bình luận của người dùng trên bài viết
10 Shares Thông tin và liên kết bài viết được chia sẻ về trang cá nhân
11 Notifications Dữ liệu thông báo hệ thống và thông báo tương tác gửi đến người dùng
12 Stories Dữ liệu hình ảnh/video dạng khoảnh khắc ngắn tạm thời
13 SugestionUsers Dữ liệu phục vụ việc đề xuất bạn bè và người dùng liên quan
14 FaceRecogNumbers Dữ liệu tham số phục vụ tính năng nhận diện khuôn mặt
15 Locations Tọa độ địa lý và ghi chú vị trí của người dùng xung quanh
16 SavedFeeds Danh sách bài viết được người dùng đánh dấu lưu trữ

Quy trình triển khai chức năng được chuẩn hóa qua các luồng Usecase (từ HQ1 đến HQ25), kiểm soát chặt chẽ các luồng chính (Main Flow) và luồng ngoại lệ (Exception Flow) như kiểm tra trùng lặp tài khoản, xác thực OTP qua Gmail khi đổi/quên mật khẩu, kiểm tra trạng thái bận khi thực hiện cuộc gọi thoại hoặc video call, và xử lý vi phạm tiêu chuẩn cộng đồng đối với nội dung bài viết và bình luận.

Nội dung chính theo từng chương

Chương 1: Cơ sở lý thuyết

Chương này tổng quan về ba nền tảng công nghệ cốt lõi được ứng dụng trong đề tài:

  • ASP.NET Core: Trình bày nguồn gốc từ Microsoft, các đặc tính kiến trúc module dựa trên NuGet, cơ chế tự lưu trữ (self-host) hoặc host trên IIS, việc hợp nhất Web UI và Web APIs, cùng tiến trình phát hành các phiên bản từ .NET Core 1.0 (Visual Studio 2015 Update 3) đến các bản nâng cấp dài hạn (LTS).
  • Flutter: Giới thiệu framework giao diện do Google công bố năm 2017, ngôn ngữ Dart, khái niệm "Mọi thứ đều là Widget", cơ chế Hot Reload tối ưu thời gian biên dịch, và tiến trình phát triển từ bản Flutter 1.0 (4/12/2018), 1.2, 1.5, 1.7, 1.12, 1.17, 2.0 (hỗ trợ chính thức Web/Desktop), 2.5 đến bản 2.8 (8/11/2021).
  • RESTful API: Phân tích các tiêu chuẩn thiết kế API quản lý tài nguyên (resource), cơ chế chuyển đổi trạng thái đại diện và các phương thức truyền tải HTTP chuẩn.

Chương 2: Khảo sát hiện trạng và giới thiệu đề tài

Chương này trình bày bức tranh tổng thể về mạng xã hội thế giới và Việt Nam thông qua các nghiên cứu thực tế. Trên thế giới, bốn nền tảng phổ biến nhất là Facebook, Twitter, Google+ và Baidu; trong đó nghiên cứu của Lenhart và cộng sự (2010) ghi nhận 71% thanh niên sở hữu tài khoản Facebook. Tại Việt Nam, theo khảo sát Vietnamsurvey (tháng 2/2013), tỷ lệ ưa chuộng lần lượt là Facebook (93%), Zalo (55%), Twitter (45%) và Youtube (27%).

Tác giả đã tiến hành khảo sát thực nghiệm đối với người dùng ứng dụng Whoru và ghi nhận số liệu cụ thể:

Tiêu chí khảo sát Lựa chọn phản hồi và tỷ lệ phần trăm (%)
Kênh tiếp cận ứng dụng Bản tin: 31% | Bạn bè: 27% | Trang web: 23% | Quảng cáo: 19%
Thời gian đã sử dụng Whoru < 3 tháng: 73% | < 6 tháng: 12% | < 1 tháng: 11% | < 1 năm: 3% | > 1 năm: 1%
Đánh giá giao diện người dùng Rất dễ sử dụng: 92% | Dễ sử dụng: 5% | Bình thường: 2% | Khó sử dụng: 1% | Rất khó: 0%
Tỷ lệ gặp lỗi/sự cố khi sử dụng Không: 100% | Có: 0%
Mức độ hài lòng về tính năng Rất hài lòng: 80% | Hài lòng: 17% | Bình thường: 3% | Không hài lòng: 0% | Rất không hài lòng: 0%
Tính năng được dùng nhiều nhất Vị trí: 38% | Nhắn tin: 38% | Video Call: 23% | Đăng bài: 1% | Bản tin: 0% | Đề xuất: 0%
Khả năng kết nối người khác Rất dễ dàng: 87% | Dễ dàng: 13% | Bình thường: 0% | Khó khăn: 0% | Rất khó khăn: 0%
Gặp nội dung độc hại/không phù hợp Không: 100% | Có: 0%
Mức độ hài lòng chung Rất hài lòng: 97% | Hài lòng: 3% | Bình thường: 0% | Không hài lòng: 0% | Rất không hài lòng: 0%

Dựa trên khảo sát, chương 2 xây dựng danh mục phân tích yêu cầu chức năng (đăng ký/đăng nhập, tạo bài viết, bình luận, like, chia sẻ, theo dõi, tìm kiếm, nhắn tin, gọi thoại, gọi video, xem hồ sơ, đổi/lấy lại mật khẩu) và yêu cầu phi chức năng (xác thực OTP qua email/số điện thoại, tương thích nền tảng Android và iOS). Đồng thời, tác giả hoàn thiện lược đồ Usecase tổng quát và bảng đặc tả cho 25 ca sử dụng chi tiết (mã định danh từ HQ1 đến HQ24).

Chương 3: Thiết kế phần mềm

Nội dung chương 3 tập trung vào thiết kế kỹ thuật chi tiết:

  • Thiết kế cơ sở dữ liệu: Xây dựng lược đồ quan hệ thực thể (ERD) và bảng định nghĩa thuộc tính cho 16 bảng dữ liệu.
  • Thiết kế kiến trúc: Áp dụng mô hình MVC kết hợp các dịch vụ API.
  • Thiết kế giao diện: Xây dựng danh sách 22 màn hình ứng dụng bao gồm giao diện trang chủ trước/sau đăng nhập, đăng ký, đăng nhập, trang cá nhân, đổi mật khẩu, danh sách like/share, bình luận, danh sách tin nhắn, hộp thoại chat, màn hình gọi thoại, gọi video, danh sách follower/following, cài đặt, đăng khoảnh khắc (story), trang vị trí bản đồ, thanh tìm kiếm và trang chi tiết bài viết.
  • Thiết kế biểu đồ tuần tự: Xây dựng 20 lược đồ Sequence mô tả sự tương tác giữa Actor, Giao diện (Flutter View), Bộ điều khiển (API Controller) và Cơ sở dữ liệu cho từng thao tác cụ thể.

Chương 4: Cài đặt và kiểm thử

Chương 4 thiết lập môi trường phát triển, cấu hình phần mềm hỗ trợ và tiến hành kiểm thử các chức năng chính trên thiết bị thực nghiệm:

Mã kiểm thử Chức năng kiểm thử Mục tiêu và điều kiện thực hiện
Test Case 1 Đăng ký tài khoản Kiểm tra tính hợp lệ dữ liệu đầu vào, gửi mã xác thực về email và kích hoạt tài khoản
Test Case 2 Đăng nhập hệ thống Kiểm tra xác thực tên đăng nhập/mật khẩu, xử lý ngoại lệ khi sai thông tin
Test Case 3 Đăng bài Feed mới Kiểm tra tính hợp lệ của bài đăng (văn bản, tệp ảnh) và hiển thị trên bảng tin/tường nhà
Test Case 4 Bình luận bài Feed Kiểm tra luồng gửi bình luận, hiển thị tức thời và kiểm duyệt tiêu chuẩn cộng đồng
Test Case 5 Quên mật khẩu Kiểm tra quy trình xác thực địa chỉ email, gửi mã OTP và cấp phát mật khẩu mới

Kết quả và đóng góp

Kết quả đạt được:

  • Xây dựng thành công ứng dụng mạng xã hội Whoru hoạt động ổn định trên nền tảng di động, kết hợp giữa backend ASP.NET Core RESTful API và frontend Flutter.
  • Hệ thống hỗ trợ đầy đủ các tính năng giao tiếp mạng xã hội cơ bản và nâng cao: xác thực bảo mật OTP qua Gmail, quản lý bài viết đa phương tiện, bình luận, thả tim, chia sẻ/lưu bài viết, nhắn tin thời gian thực, gọi thoại, gọi video và định vị người dùng lân cận theo tọa độ địa lý.
  • Dữ liệu khảo sát người dùng ghi nhận mức độ hài lòng chung đạt 97% ở mức "Rất hài lòng" và 3% ở mức "Hài lòng"; 92% đánh giá giao diện rất dễ sử dụng; 100% người dùng khảo sát không gặp sự cố lỗi kỹ thuật hoặc nội dung không phù hợp trong quá trình thử nghiệm.
  • Báo cáo đồ án được Hội đồng chuyên môn và Giáo viên hướng dẫn (TS. Lê Vĩnh Thịnh) đánh giá loại Giỏi, ghi nhận ưu điểm về giao diện thân thiện, dễ thao tác và tích hợp nhiều tính năng mới.

Giải pháp và đóng góp của đề tài:

  • Đề xuất giải pháp kiến trúc phần mềm kết hợp giữa ASP.NET Core và Flutter, chứng minh tính khả thi của việc sử dụng công nghệ đa nền tảng để phát triển dịch vụ mạng xã hội với chi phí tài nguyên tối ưu.
  • Thiết kế hoàn chỉnh quy trình đặc tả nghiệp vụ mạng xã hội từ lược đồ ca sử dụng, lược đồ tuần tự đến thiết kế 16 thực thể cơ sở dữ liệu trên PostgreSQL.

Hạn chế và hướng nghiên cứu tiếp

Hạn chế của đề tài (theo ghi nhận từ văn bản và nhận xét của Giáo viên hướng dẫn):

  • Một số tính năng phụ trợ như gợi ý bạn bè tự động dựa trên sở thích cá nhân (bảng SugestionUsers) chưa được tối ưu hóa thuật toán đề xuất.
  • Hệ thống đánh giá và xếp hạng người dùng (rating/ranking) chưa được triển khai đầy đủ để tăng cường tiện ích quản trị cộng đồng.
  • Tính năng liên quan đến dữ liệu nhận diện khuôn mặt (bảng FaceRecogNumbers) mới dừng lại ở mức thiết kế cấu trúc dữ liệu, chưa hoàn thiện luồng xử lý thực tế trên ứng dụng.

Hướng nghiên cứu và phát triển tiếp theo:

  • Nghiên cứu và tích hợp thuật toán phân tích sở thích để nâng cao độ chính xác của tính năng gợi ý kết bạn và đề xuất nội dung bài viết.
  • Xây dựng hoàn thiện hệ thống xếp hạng người dùng và công cụ tự động bình duyệt nội dung nhằm nâng cao tính an toàn thông tin.
  • Mở rộng phạm vi hỗ trợ của ứng dụng Flutter sang nền tảng Web và Desktop theo đúng lộ trình phát triển đa nền tảng của framework.

Giá trị tham khảo

Khóa luận là tài liệu tham khảo chuyên môn phù hợp cho sinh viên, học viên và các nhóm phát triển phần mềm thuộc ngành Công nghệ Thông tin, Kỹ thuật Phần mềm và Khoa học Máy tính. Tài liệu cung cấp giá trị ứng dụng cụ thể ở các nội dung:

  • Quy trình phân tích yêu cầu phần mềm chuẩn hóa với hệ thống 25 bảng đặc tả ca sử dụng chi tiết (Main flow, Alternate flow, Exception flow).
  • Tài liệu mẫu về thiết kế cơ sở dữ liệu quan hệ hoàn chỉnh (16 bảng) cho một hệ thống mạng xã hội di động trên PostgreSQL.
  • Phương pháp xây dựng và kết nối các dịch vụ RESTful API bằng ASP.NET Core kết hợp giao diện di động Flutter.

Câu hỏi thường gặp

1. Khóa luận sử dụng những công nghệ và ngôn ngữ lập trình nào để xây dựng hệ thống Whoru?
Khóa luận sử dụng ngôn ngữ Dart cùng framework Flutter để phát triển ứng dụng di động phía Client; phía Backend sử dụng nền tảng ASP.NET Core viết bằng C# theo kiến trúc RESTful API; hệ quản trị cơ sở dữ liệu được chọn là PostgreSQL.

2. Cơ sở dữ liệu của ứng dụng Whoru gồm bao nhiêu bảng và những bảng nào quản lý tương tác người dùng?
Cơ sở dữ liệu của hệ thống gồm 16 bảng đối tượng. Các bảng trực tiếp quản lý hoạt động tương tác bao gồm: Feeds (bài viết), FeedImages (hình ảnh bài viết), Likes (thả tim), Comments (bình luận), Shares (chia sẻ), SavedFeeds (lưu bài viết), Chats (tin nhắn) và Follows (theo dõi).

3. Theo kết quả khảo sát người dùng thực tế, những tính năng nào được sử dụng nhiều nhất trên Whoru?
Số liệu khảo sát tại Chương 2 cho thấy hai tính năng được sử dụng nhiều nhất với tỷ lệ ngang nhau là "Vị trí" (38%) và "Nhắn tin" (38%), tiếp theo là tính năng "Video Call" chiếm 23%, và tính năng "Đăng bài" chiếm 1%.

4. Quy trình xử lý ca sử dụng khi người dùng quên mật khẩu (HQ5) được thực hiện như thế nào?
Khi người dùng chọn chức năng quên mật khẩu, hệ thống yêu cầu nhập email đã đăng ký. Hệ thống gửi mã xác thực OTP qua Gmail; sau khi người dùng nhập đúng mã OTP, hệ thống sẽ xác thực và cấp phát mật khẩu mới gửi trực tiếp về email của người dùng.

5. Giáo viên hướng dẫn đã chỉ ra những điểm hạn chế nào cần khắc phục trong phiếu nhận xét đồ án?
Trong phiếu nhận xét, TS. Lê Vĩnh Thịnh chỉ ra rằng hệ thống cần xem xét bổ sung và hoàn thiện thêm một số tính năng phụ như: cơ chế gợi ý bạn bè dựa trên sở thích và hệ thống đánh giá, xếp hạng người dùng để tăng cường tiện ích cho mạng xã hội.

Kết luận

Đồ án tốt nghiệp "Mạng xã hội WHORU" của sinh viên Nguyễn Minh Cường và Nguyễn Minh Nhựt đã hoàn thành mục tiêu xây dựng một ứng dụng mạng xã hội di động đa nền tảng hoàn chỉnh bằng Flutter và ASP.NET Core. Hệ thống đáp ứng đầy đủ các yêu cầu chức năng về giao tiếp, nhắn tin, gọi điện, chia sẻ khoảnh khắc và định vị vị trí người dùng với độ ổn định cao qua kiểm thử. Mặc dù vẫn còn một số tính năng gợi ý và xếp hạng cần tiếp tục hoàn thiện, đồ án đã chứng minh được tính ứng dụng thực tiễn cao và được Hội đồng chấm thi đánh giá xếp loại Giỏi.