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

Đề tài "Xây dựng ứng dụng mạng xã hội thú cưng" được thực hiện bởi sinh viên Nguyễn Minh Toàn (MSSV: 20110577) và Nông Quang Huy (MSSV: 20110496), dưới sự hướng dẫn của ThS. Trương Thị Ngọc Phượng thuộc Bộ môn Công nghệ phần mềm, Khoa Đào tạo Chất lượng cao, Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh (khóa học 2020–2024, mã số khóa luận SKL013853).

Lý do chọn đề tài và bối cảnh thực tiễn

Trong bối cảnh công nghệ thông tin phát triển, nhu cầu kết nối, trao đổi thông tin và chia sẻ các khoảnh khắc đời sống của con người ngày càng gia tăng. Cùng với đó, cộng đồng những người nuôi và yêu thích thú cưng có nhu cầu lớn trong việc tìm kiếm kiến thức chăm sóc, chia sẻ kinh nghiệm và lưu giữ hình ảnh thú cưng của mình. Đồng thời, thực tiễn ghi nhận tình trạng nhiều thú cưng bị thất lạc hoặc bị bỏ hoang ngoài môi trường mà không có kênh thông tin tập trung để hỗ trợ tìm lại chủ cũ hoặc kết nối với người nhận nuôi mới. Đề tài được hình thành nhằm giải quyết hai bài toán thực tiễn:

  1. Tạo môi trường kết nối trực tuyến chuyên biệt cho cộng đồng yêu thú cưng để giao lưu, đăng tải bài viết, tương tác và nhắn tin.
  2. Cung cấp nền tảng hỗ trợ đăng tin, tìm kiếm thú cưng thất lạc và kết nối nhận nuôi nhằm giảm thiểu số lượng động vật bị bỏ hoang.

Mục tiêu và nhiệm vụ nghiên cứu

Mục tiêu tổng quát của đề tài là xây dựng hoàn chỉnh một hệ sinh thái ứng dụng mạng xã hội thú cưng bao gồm ứng dụng di động cho người dùng và giao diện web quản trị. Các nhiệm vụ nghiên cứu cụ thể được xác định như sau:

  1. Nhiệm vụ lý thuyết: Nghiên cứu sâu về các công nghệ, framework và thư viện phần mềm bao gồm NestJS, TypeScript, hệ quản trị cơ sở dữ liệu quan hệ PostgreSQL, thư viện React Native, ReactJS, giao thức WebSocket và dịch vụ Expo-Notification.
  2. Nhiệm vụ thực hành:
    • Sử dụng NestJS và TypeScript để xây dựng hệ thống Backend và thiết kế hệ thống API cho toàn bộ các module chức năng.
    • Thiết kế và triển khai cơ sở dữ liệu quan hệ trên PostgreSQL để lưu trữ và quản lý dữ liệu người dùng, bài viết, thú cưng, tương tác.
    • Ứng dụng JSON Web Token (JWT) để xây dựng cơ chế xác thực và phân quyền cho hệ thống API.
    • Sử dụng React Native để thiết kế và xây dựng giao diện ứng dụng di động cho người dùng cuối.
    • Sử dụng ReactJS để xây dựng hệ thống giao diện web dành cho quản trị viên (Admin).
    • Tích hợp giao thức WebSocket để xử lý tác vụ gửi nhận tin nhắn tức thời (realtime messaging).
    • Tích hợp dịch vụ Expo-Notification để cấu hình và gửi thông báo đẩy thời gian thực khi người dùng đang mở hoặc đã tắt ứng dụng.

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

  • Đối tượng nghiên cứu:
    • Về mặt nghiệp vụ: Người yêu thích thú cưng có nhu cầu chia sẻ hình ảnh, kinh nghiệm nuôi dưỡng, nhắn tin kết bạn và tìm kiếm thông tin nhận nuôi thú cưng thất lạc.
    • Về mặt kỹ thuật: Quy trình phân tích, thiết kế, triển khai và kiểm thử phần mềm trên nền tảng di động đa nền tảng và dịch vụ máy chủ Backend.
  • Phạm vi nghiên cứu:
    • Không gian: Môi trường ứng dụng di động (hỗ trợ Android/iOS thông qua React Native) và trang web quản trị trên trình duyệt máy tính.
    • Thời gian thực hiện: Từ ngày 29/02/2024 đến ngày 10/07/2024.
    • Phạm vi chức năng người dùng (User): Đăng ký, đăng nhập, quên mật khẩu (xác thực OTP qua email), quản lý thông tin cá nhân, quản lý hồ sơ thú cưng (My Pet), đăng bài viết, chỉnh sửa/xóa bài viết, thích/hủy thích, bình luận, kết bạn/hủy kết bạn, nhắn tin realtime/thu hồi tin nhắn, tìm kiếm bài viết/thú cưng/người dùng, xem video reels, tham gia nhóm (group).
    • Phạm vi chức năng quản trị viên (Admin): Xem bảng điều khiển thống kê (lượt truy cập, người dùng, bài viết, nhóm), quản lý người dùng, quản lý bài viết, quản lý nhóm và quản lý danh sách người dùng bị báo cáo.

Cơ sở lý thuyết và phương pháp

Đề tài áp dụng các lý thuyết chuyên ngành công nghệ phần mềm, công nghệ cơ sở dữ liệu và giao thức mạng để xây dựng kiến trúc hệ thống Client-Server phân tán.

Khung công nghệ và nền tảng lý thuyết

Hệ thống được phát triển dựa trên việc tích hợp các công nghệ và giải pháp kỹ thuật sau:

Công nghệ / Thư viện Vai trò trong hệ thống Đặc tính kỹ thuật Lý do lựa chọn theo tác giả
React Native Phát triển ứng dụng di động (Frontend Mobile) Framework mã nguồn mở phát triển bởi Facebook, sử dụng ReactJS và native components, quản lý trạng thái bằng Props và State, hỗ trợ JSX. Cho phép phát triển đa nền tảng (iOS và Android) từ một mã nguồn duy nhất, hiệu suất gần với ứng dụng native, dễ chia component độc lập để phân công công việc.
NestJS Xây dựng máy chủ ứng dụng (Backend API) Framework Node.js chạy trên nền TypeScript/JavaScript, kiến trúc module hóa độc lập, hỗ trợ Decorators và Dependency Injection. Cung cấp cấu trúc mã nguồn rõ ràng, dễ bảo trì và mở rộng, tích hợp sẵn hỗ trợ WebSockets và tương thích tốt với TypeScript.
TypeScript Ngôn ngữ lập trình chính Ngôn ngữ mở rộng từ JavaScript phát triển bởi Microsoft, bổ sung kiểm tra kiểu tĩnh (static typing) và hỗ trợ đầy đủ OOP (Class, Interface, Encapsulation, Inheritance). Giảm thiểu lỗi cú pháp và lỗi runtime ngay trong quá trình phát triển, tăng tính tái sử dụng và quản lý mã nguồn trong dự án lớn.
PostgreSQL Hệ quản trị cơ sở dữ liệu (Database) Hệ quản trị cơ sở dữ liệu quan hệ - đối tượng (ORDBMS) mã nguồn mở, hỗ trợ chuẩn SQL, kiểm soát đồng thời đa phiên bản (MVCC), phân vùng bảng. Xử lý tốt các tập dữ liệu quan hệ phức tạp, hỗ trợ truy vấn nâng cao, độ ổn định cao và khả năng mở rộng linh hoạt.
WebSocket Giao thức truyền thông thời gian thực Giao thức truyền thông hai chiều (full-duplex) qua kết nối TCP socket duy nhất, duy trì kết nối liên tục giữa client và server. Cung cấp độ trễ cực thấp cho tác vụ nhắn tin trực tuyến mà không cần tạo lại kết nối HTTP liên tục.
Expo-Notification Dịch vụ thông báo đẩy (Push Notification) Dịch vụ cung cấp API thống nhất của nền tảng Expo để gửi thông báo đẩy trên cả iOS và Android, tự động quản lý Device Token. Tích hợp nhanh chóng, hỗ trợ gửi thông báo tức thời từ server cả khi ứng dụng đang chạy nền hoặc bị tắt.
JSON Web Token (JWT) Xác thực và phân quyền Tiêu chuẩn mở (RFC 7519) truyền tải thông tin an toàn dưới dạng JSON object có chữ ký điện tử. Đảm bảo tính bảo mật và toàn vẹn dữ liệu cho các request gọi API giữa ứng dụng di động/web admin với backend.

Phương pháp nghiên cứu và phát triển phần mềm

  1. Phương pháp khảo sát hiện trạng: Tác giả tiến hành khảo sát, phân tích ưu điểm và nhược điểm của 4 ứng dụng, dịch vụ liên quan đến thú cưng trên thị trường:
    • Petfinder: Nền tảng kết nối cứu hộ và nhận nuôi thú cưng; có giao diện tìm kiếm chi tiết nhưng cập nhật dữ liệu chưa tức thời và thiếu tính năng mạng xã hội tương tác.
    • PetMD: Cung cấp kiến thức y tế và chăm sóc thú cưng có diễn đàn trao đổi; tuy nhiên không hỗ trợ tính năng kết nối tìm thú cưng thất lạc hay nhận nuôi.
    • Petcity: Nền tảng thương mại cung cấp thông tin sản phẩm và dịch vụ chăm sóc theo vị trí; phạm vi thông tin giới hạn cho một số loài thương mại.
    • Pet Me: Ứng dụng tích hợp bản đồ tìm kiếm bác sĩ và dịch vụ thú y; thiếu các tính năng chia sẻ hình ảnh, video và diễn đàn tương tác cộng đồng.
  2. Phương pháp phân tích và mô hình hóa hệ thống:
    • Xác định tác tử (Actors): Gồm User và Admin.
    • Xây dựng sơ đồ Use Case tổng quát và đặc tả chi tiết các Use Case chính với đầy đủ luồng sự kiện (Basic Flow, Alternative Flow, Exception Flow, Pre/Post-Conditions).
    • Thiết kế sơ đồ tuần tự (Sequence Diagram) cho các luồng nghiệp vụ cốt lõi.
  3. Phương pháp thiết kế dữ liệu: Sử dụng mô hình thực thể mối quan hệ (ERD) và chuẩn hóa thành các bảng quan hệ trong PostgreSQL.
  4. Phương pháp kiểm thử phần mềm: Thiết kế các kịch bản kiểm thử hộp đen (Black-box Test Cases) để kiểm tra tính đúng đắn của từng chức năng trên giao diện người dùng.

Thiết kế và triển khai

Hệ thống mạng xã hội thú cưng được thiết kế theo mô hình phân lớp rõ ràng giữa máy khách và máy chủ.

Thiết kế cơ sở dữ liệu (Database Schema)

Cơ sở dữ liệu của hệ thống được xây dựng trên PostgreSQL, bao gồm 11 bảng dữ liệu chính phục vụ toàn bộ các module nghiệp vụ:

Tên bảng Chức năng lưu trữ dữ liệu
User Lưu trữ thông tin tài khoản người dùng: id, username, email, password, firstname, lastname, phone, dob, gender, avatar, trạng thái tài khoản.
Post Lưu trữ bài viết: id, user_id, content, media_url, created_at, updated_at.
Comment Lưu trữ bình luận bài viết: id, post_id, user_id, content, thời gian tạo.
Pet Lưu trữ hồ sơ thú cưng của người dùng: id, user_id, photo, name, species, gender, dob, color, description.
Friend Quản lý mối quan hệ bạn bè giữa các người dùng: user_id_1, user_id_2, trạng thái kết bạn.
Notifications Lưu trữ lịch sử và nội dung thông báo gửi đến người dùng: id, user_id, nội dung thông báo, loại sự kiện, trạng thái đã đọc.
user_interacts Lưu trữ các tương tác của người dùng đối với bài viết (như thả tim, bày tỏ cảm xúc yêu thích).
conversations Quản lý thông tin đoạn hội thoại và lịch sử tin nhắn trao đổi giữa các người dùng.
service_pet Lưu trữ danh mục các dịch vụ liên quan đến thú cưng.
user_service_pet Bảng trung gian liên kết giữa người dùng và dịch vụ thú cưng được sử dụng.
roles Lưu trữ danh sách các quyền hạn trong hệ thống để phân quyền cho User và Admin.

Thiết kế lược đồ tuần tự (Sequence Diagrams)

Báo cáo xây dựng 5 lược đồ tuần tự chính mô tả tương tác giữa User Interface, Controller/Service của Backend và Database:

  1. Chức năng Đăng ký (Register): Người dùng nhập thông tin -> App gửi request -> Server kiểm tra định dạng và tồn tại email -> Lưu database -> Trả kết quả thành công.
  2. Chức năng Đăng nhập (Login): Người dùng nhập email/mật khẩu -> Server xác thực thông tin và tạo mã JWT Token -> Trả Token về App để lưu trữ phiên làm việc.
  3. Chức năng Xem danh sách bài viết (Feed): App gửi yêu cầu kèm JWT Token -> Server xác thực -> Truy vấn danh sách bài viết từ database -> Trả dữ liệu hiển thị lên bảng tin.
  4. Chức năng Xem tin nhắn (Chat): App kết nối WebSocket/API -> Server kiểm tra định danh người dùng -> Trích xuất lịch sử đoạn hội thoại từ bảng conversations -> Hiển thị tin nhắn.
  5. Chức năng Thêm bài viết mới (Create Post): Người dùng nhập nội dung và hình ảnh -> App gửi request -> Server xác thực và lưu vào bảng Post -> Cập nhật lên News Feed.

Thiết kế giao diện và kiểm thử

  • Giao diện di động (Mobile App): Thiết kế chi tiết 19 màn hình chức năng bao gồm: Đăng ký, Đăng nhập, Trang chủ (Newsfeed), Tìm kiếm, Chi tiết người dùng, Chi tiết bài viết, Tạo bài viết, Bạn bè, Danh sách nhắn tin, Màn hình đoạn chat, Menu hệ thống, Chỉnh sửa thông tin cá nhân, Trang My Pet, Trang tạo mới Pet, Thông báo, Video reels, Trang Group cộng đồng, Trang Điều khoản chính sách (Policy), Màn hình xác thực OTP qua Email.
  • Giao diện Web Quản trị (Admin): Thiết kế 5 trang quản lý chuyên biệt: Trang Dashboard bảng điều khiển (thống kê nhóm, bài viết, lượt truy cập, người dùng), Trang quản trị bài viết, Trang quản lý nhóm, Trang quản lý người dùng báo cáo, Trang quản trị người dùng.
  • Kiểm thử hệ thống: Đồ án thiết kế và thực hiện các bộ Test Case (từ Bảng 49 đến Bảng 57) cho các chức năng trọng yếu:
    • Kiểm thử chức năng Đăng nhập tài khoản (Bảng 49).
    • Kiểm thử chức năng Đăng ký tài khoản (Bảng 50).
    • Kiểm thử chức năng Xem bài viết (Bảng 51).
    • Kiểm thử chức năng Yêu thích bài viết (Bảng 52).
    • Kiểm thử chức năng Bình luận bài viết (Bảng 53).
    • Kiểm thử chức năng Thêm bài viết mới (Bảng 54).
    • Kiểm thử chức năng Gửi tin nhắn tức thời (Bảng 55).
    • Kiểm thử chức năng Kết bạn người dùng (Bảng 56, 57).

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

Phần Mở đầu

Phần Mở đầu thiết lập cơ sở hình thành đề tài, xác định tính cấp thiết của việc xây dựng một mạng xã hội dành riêng cho người yêu thú cưng trong thời đại số. Tác giả trình bày đối tượng nghiên cứu, xác định phạm vi chức năng cho hai nhóm đối tượng sử dụng (User và Admin), nêu rõ mục tiêu kết nối cộng đồng và hỗ trợ tìm kiếm thú cưng thất lạc, đồng thời khẳng định ý nghĩa khoa học và thực tiễn của đề tài trong việc ứng dụng công nghệ hiện đại vào giải quyết vấn đề xã hội.

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

Chương 1 tập trung khảo cứu cơ sở lý thuyết của 6 công nghệ cốt lõi được áp dụng trong đồ án:

  • React Native: Trình bày khái niệm Component, Props, State, JSX; phân tích ưu điểm chạy đa nền tảng, hiệu suất cao và lý do lựa chọn làm công cụ xây dựng giao diện ứng dụng di động.
  • NestJS: Trình bày kiến trúc backend hướng module, khả năng tích hợp chặt chẽ với TypeScript, hỗ trợ xử lý WebSocket; phân tích ưu điểm cấu trúc rõ ràng và nhược điểm về kích thước mã nguồn.
  • TypeScript: Phân tích tính năng định kiểu tĩnh, hỗ trợ lập trình hướng đối tượng đầy đủ, khả năng tương thích chuẩn ES6+ và giảm thiểu lỗi trong quá trình phát triển dự án.
  • PostgreSQL: Trình bày mô hình cơ sở dữ liệu quan hệ - đối tượng, tính năng MVCC, khả năng xử lý truy vấn phức tạp và phân vùng dữ liệu lớn.
  • Expo-Notification: Trình bày cơ chế gửi/nhận thông báo đẩy đa nền tảng, quản lý token thiết bị và hỗ trợ lập lịch thông báo.
  • WebSocket: Phân tích cơ chế truyền thông hai chiều qua TCP socket với độ trễ thấp, so sánh với giao thức HTTP truyền thống và ứng dụng vào tính năng nhắn tin thời gian thực.

Chương 2: Khảo sát hiện trạng và mô hình hóa yêu cầu

Chương 2 thực hiện khảo sát 4 hệ thống thực tế (Petfinder, PetMD, Petcity, Pet Me) để rút ra các ưu điểm và hạn chế, từ đó xác định yêu cầu nghiệp vụ và mô hình hóa hệ thống:

  • Xác định 2 tác tử chính: Admin (quản trị toàn diện hệ thống) và User (người dùng ứng dụng).
  • Xây dựng sơ đồ Use Case tổng quát cho User (bao gồm các nhóm chức năng: tài khoản, hồ sơ thú cưng, bài viết, tương tác thích/bình luận, kết bạn, nhắn tin, tìm kiếm).
  • Xây dựng sơ đồ Use Case tổng quát cho Admin (bao gồm: thống kê bảng điều khiển, quản trị bài viết, quản trị người dùng, quản trị nhóm, quản trị báo cáo vi phạm).
  • Bảng 1 tổng hợp danh mục 38 Use Case ID (UC-U-1 đến UC-U-13.3 cho User và UC-A-1 đến UC-A-6.5 cho Admin).
  • Đặc tả chi tiết các Use Case chính kèm điều kiện tiên quyết, luồng sự kiện cơ bản và luồng ngoại lệ: Đăng nhập (UC-U-1), Đăng ký (UC-U-2), Quên mật khẩu xác thực OTP 4 chữ số (UC-U-3), Xem và sửa thông tin cá nhân (UC-U-11.1), Thêm hồ sơ thú cưng My Pet (UC-U-4.2).

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

Chương 3 trình bày chi tiết bản vẽ thiết kế hệ thống phần mềm:

  • Thiết kế 5 lược đồ tuần tự (Sequence Diagram) cho các chức năng Đăng ký, Đăng nhập, Xem danh sách bài viết, Xem tin nhắn và Thêm bài viết.
  • Thiết kế cấu trúc cơ sở dữ liệu thông qua Lược đồ thực thể mối quan hệ (ERD) và đặc tả chi tiết cấu trúc trường, kiểu dữ liệu, khóa chính, khóa ngoại của 11 bảng dữ liệu (User, Post, Comment, Pet, Friend, Notifications, user_interacts, conversations, service_pet, user_service_pet, roles).
  • Thiết kế giao diện chi tiết: Mô tả luồng hoạt động, các trường dữ liệu và thành phần UI cho 19 màn hình trên ứng dụng di động và 5 trang giao diện trên cổng thông tin web Admin.

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

Chương 4 trình bày quy trình triển khai và kiểm thử phần mềm:

  • Hướng dẫn các bước cấu hình môi trường, cài đặt gói phụ thuộc và vận hành hệ thống máy chủ Backend cùng ứng dụng di động.
  • Trình bày kết quả xây dựng các ca kiểm thử chức năng (Bảng 49 đến Bảng 57) cho toàn bộ các luồng thao tác chính của người dùng nhằm đảm bảo tính toàn vẹn và ổn định của ứng dụng.

Phần Kết luận

Tổng kết lại toàn bộ kết quả thu được của đồ án về mặt lý thuyết và sản phẩm hiện thực, nêu rõ những hạn chế còn tồn đọng trong quá trình cài đặt và đề ra định hướng phát triển mở rộng hệ thống trong tương lai.


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

Kết quả chính thu được

  1. Về mặt lý thuyết:
    • Nắm vững và làm chủ kiến trúc phát triển ứng dụng di động đa nền tảng với React Native.
    • Nắm vững kiến trúc phát triển hệ thống backend theo mô hình module với NestJS và ngôn ngữ TypeScript.
    • Thiết kế và tối ưu hóa thành công cơ sở dữ liệu quan hệ trên PostgreSQL gồm 11 thực thể có tính liên kết chặt chẽ.
    • Làm chủ cơ chế giao tiếp thời gian thực bằng WebSocket và tích hợp dịch vụ thông báo đẩy Expo-Notification.
  2. Về mặt hiện thực:
    • Xây dựng hoàn chỉnh ứng dụng di động mạng xã hội thú cưng chạy trên nền tảng di động với 19 màn hình giao diện trực quan, hỗ trợ đầy đủ các tính năng tương tác mạng xã hội (đăng bài, bình luận, thả tim, xem reels, tham gia nhóm, kết bạn).
    • Tích hợp thành công chức năng quản lý hồ sơ thú cưng cá nhân (My Pet) với các thông tin chi tiết: tên, loài, giới tính, ngày sinh, màu lông, mô tả.
    • Triển khai tính năng nhắn tin thời gian thực hai chiều giữa các tài khoản và gửi thông báo tức thời qua Expo-Notification.
    • Xây dựng hệ thống xác thực an toàn thông qua JWT và cơ chế cấp lại mật khẩu xác minh mã OTP gửi qua email.
    • Xây dựng trang web quản trị Admin với bảng điều khiển thống kê trực quan (lượt truy cập, bài viết, người dùng, nhóm) và các phân hệ quản lý dữ liệu, kiểm duyệt người dùng bị báo cáo.

Đóng góp so với các nghiên cứu và hệ thống khảo sát

Khóa luận đã tích hợp thành công hai mục đích sử dụng vào cùng một nền tảng: vừa là mạng xã hội chia sẻ khoảnh khắc, kết nối cộng đồng người nuôi thú cưng (khắc phục hạn chế thiếu tính năng xã hội của Petfinder và Pet Me), vừa đóng vai trò kênh thông tin hỗ trợ tìm kiếm và nhận nuôi thú cưng thất lạc (khắc phục nhược điểm thuần về tin tức/thương mại của PetMD và Petcity).


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

Hạn chế ghi nhận trong văn bản

  • Hệ thống xây dựng trên các công nghệ mới nên quá trình cấu hình, liên kết giữa các module và đồng bộ thời gian thực còn tiềm ẩn độ phức tạp nhất định.
  • Dịch vụ thông báo đẩy còn phụ thuộc vào hạ tầng bên thứ ba (Expo), có thể gặp giới hạn về độ trễ khi lượng người dùng tăng cao hoặc khi cần các tính năng tùy biến sâu theo từng nền tảng riêng biệt.
  • Phạm vi chức năng thương mại và dịch vụ thú cưng mới dừng ở mức thiết kế cấu trúc bảng dữ liệu (service_pet, user_service_pet) mà chưa hoàn thiện toàn diện giao diện thao tác chuyên sâu.

Hướng phát triển tiếp theo

  • Hoàn thiện và nâng cấp các tính năng hỗ trợ nhận nuôi, tích hợp thuật toán định vị nâng cao để hỗ trợ tìm kiếm thú cưng thất lạc theo bán kính vị trí địa lý.
  • Mở rộng hệ thống API để tích hợp các dịch vụ đặt lịch thú y, mua bán sản phẩm chăm sóc thú cưng trực tuyến.
  • Tối ưu hóa hiệu năng hệ thống backend, xây dựng cơ chế quản lý bộ nhớ đệm (caching) và nâng cao tính bảo mật cho kênh truyền WebSocket.

Giá trị tham khảo

Báo cáo khóa luận là tài liệu tham khảo phù hợp cho:

  • Sinh viên ngành Công nghệ thông tin và Công nghệ phần mềm: Cung cấp tài liệu mẫu mực về cấu trúc một đồ án tốt nghiệp chuẩn chỉnh, từ khâu khảo sát hiện trạng, phân tích nghiệp vụ, mô hình hóa Use Case, thiết kế cơ sở dữ liệu quan hệ đến cài đặt và xây dựng ca kiểm thử.
  • Lập trình viên phát triển ứng dụng di động Fullstack (Node.js/NestJS + React Native): Là tài liệu tham khảo thực tế về cách tổ chức mã nguồn backend NestJS theo kiến trúc module, cách sử dụng TypeScript để kiểm soát kiểu dữ liệu, cách tích hợp xác thực JWT, xử lý socket thời gian thực và cấu hình Expo-Notification.
  • Nhóm nghiên cứu và phát triển sản phẩm chuyên biệt: Cung cấp tài liệu tham khảo hữu ích về mô hình hóa cơ sở dữ liệu và luồng nghiệp vụ mạng xã hội tích hợp hồ sơ chuyên biệt (quản lý vật nuôi/thú cưng).

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

1. Đồ án sử dụng những công nghệ và framework nào để xây dựng hệ thống?
Hệ thống sử dụng React Native để xây dựng giao diện ứng dụng di động đa nền tảng, ReactJS để xây dựng giao diện web quản trị, NestJS kết hợp ngôn ngữ TypeScript để xây dựng hệ thống Backend API, PostgreSQL làm hệ quản trị cơ sở dữ liệu quan hệ, JSON Web Token (JWT) để xác thực và phân quyền, WebSocket để xử lý nhắn tin realtime và Expo-Notification để gửi thông báo đẩy.

2. Cơ sở dữ liệu của ứng dụng gồm những bảng nào?
Cơ sở dữ liệu được thiết kế gồm 11 bảng dữ liệu chính: User, Post, Comment, Pet, Friend, Notifications, user_interacts, conversations, service_pet, user_service_pet và roles.

3. Cơ chế bảo mật và xác thực tài khoản trong ứng dụng được thực hiện như thế nào?
Hệ thống sử dụng JSON Web Token (JWT) để xác thực và phân quyền cho toàn bộ các API. Khi người dùng thực hiện chức năng Quên mật khẩu, hệ thống kích hoạt cơ chế gửi mã xác thực OTP gồm 4 chữ số qua email đã đăng ký để xác minh trước khi cho phép đặt mật khẩu mới.

4. Ứng dụng giải quyết bài toán thực tiễn nào so với các nền tảng thú cưng hiện có?
Dựa trên kết quả khảo sát các nền tảng Petfinder, PetMD, Petcity và Pet Me, ứng dụng kết hợp đồng thời khả năng tương tác mạng xã hội (chia sẻ bài viết, video reels, nhắn tin, kết bạn) với chức năng quản lý hồ sơ thú cưng cá nhân (My Pet) và hỗ trợ tìm kiếm thú cưng thất lạc hoặc không có chủ để cộng đồng nhận nuôi.

5. Hệ thống Web Admin cung cấp những tính năng quản trị nào?
Giao diện Admin cung cấp bảng điều khiển Dashboard thống kê lượt truy cập, người dùng, bài viết, nhóm; đồng thời cung cấp đầy đủ các chức năng quản lý (xem, thêm, sửa, xóa) đối với 4 phân hệ: người dùng, bài viết, nhóm cộng đồng và danh sách người dùng bị báo cáo vi phạm.


Kết luận

Đồ án tốt nghiệp "Xây dựng ứng dụng mạng xã hội thú cưng" của sinh viên Nguyễn Minh Toàn và Nông Quang Huy đã hoàn thành đầy đủ các mục tiêu nghiên cứu và hiện thực hóa một hệ thống phần mềm hoàn chỉnh. Bằng việc kết hợp hiệu quả các công nghệ NestJS, TypeScript, React Native, PostgreSQL, WebSocket và Expo-Notification, đề tài đã tạo ra một nền tảng mạng xã hội chuyên biệt đáp ứng nhu cầu kết nối, chia sẻ kiến thức và hỗ trợ tìm kiếm thú cưng thất lạc. Công trình có cấu trúc khoa học chặt chẽ từ khảo sát, mô hình hóa đến cài đặt kiểm thử, đóng vai trò là tài liệu tham khảo có giá trị cao cho sinh viên và lập trình viên chuyên ngành công nghệ phần mềm.