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

Lịch sử gia đình và nguồn cội là một phần thiết yếu trong đời sống xã hội của con người, ảnh hưởng trực tiếp đến các mối quan hệ huyết thống và sự gắn kết giữa các thế hệ. Cây gia phả (family tree) – hay dạng biểu đồ chi tiết hơn được ứng dụng trong y học và công tác xã hội gọi là genogram – là công cụ truyền thống để trực quan hóa mối quan hệ giữa các thành viên, lưu trữ thông tin về tổ tiên và nguồn gốc dòng tộc.

Tại Việt Nam, phần lớn người dân tiếp cận thông tin phả hệ thông qua truyền miệng từ các thành viên lớn tuổi hoặc lưu trữ dưới dạng văn bản giấy tại quê quán (từ đường, nhà thờ họ). Việc lưu trữ thủ công này tạo ra nhiều rào cản:

  • Người muốn tra cứu phải di chuyển hàng trăm đến hàng nghìn kilômét để tiếp cận bản sao phả hệ vật lý, gây tốn kém thời gian, tiền bạc và tài nguyên.
  • Các website gia phả nội địa (tiêu biểu như giaphavietnam) chủ yếu do trưởng họ xây dựng và quản trị, thường hạn chế quyền truy cập và chỉnh sửa của người dùng bên ngoài, đồng thời yêu cầu liên hệ trực tiếp với người quản trị nếu muốn tìm hiểu sâu hơn.
  • Các nền tảng quốc tế (như familysearch) cung cấp nguồn tài nguyên lớn nhưng giới hạn nhiều tính năng nâng cao ở các gói trả phí.

Từ thực trạng đó, đề tài khóa luận "Website Development for Family-Trees Management" (tên đăng ký nhiệm vụ: Design and Build A Website for Family-Trees Management) của sinh viên Hoàng Đức Trí (ngành Khoa học Máy tính, Trường Đại học Bách Khoa – ĐHQG TP.HCM) được thực hiện với các mục tiêu và nhiệm vụ cụ thể:

  1. Mục tiêu nghiên cứu:

    • Xây dựng một nguồn tài nguyên trực tuyến đáng tin cậy với nhiều tùy chọn trực quan để người dùng tìm hiểu và quản lý thông tin gia đình.
    • Cho phép người dùng kết nối, chia sẻ, tìm hiểu gia phả cá nhân cũng như các dòng họ khác trên giao diện web thân thiện, có thể truy cập miễn phí từ mọi thiết bị và trình duyệt.
    • Thiết lập hệ thống xác thực (authentication) nhằm bảo đảm tính xác thực của thông tin được lưu trữ và chia sẻ trên hệ thống.
  2. Nhiệm vụ thực hiện:

    • Nghiên cứu cơ sở lý thuyết và các chủ đề liên quan đến gia phả học.
    • Phân tích yêu cầu hệ thống bằng ngôn ngữ mô hình hóa thống nhất (UML).
    • Thiết kế hệ thống toàn diện, bao gồm: thiết kế giao diện (UI), tương tác (UX), cơ sở dữ liệu và cơ chế xác thực.
    • Tích hợp các công cụ hỗ trợ như tối ưu hóa công cụ tìm kiếm (SEO) và bản đồ số Google Maps.
    • Lập trình và kiểm thử ứng dụng web với các công nghệ phù hợp.
  • Đối tượng nghiên cứu: Quy trình quản lý, biểu diễn và chia sẻ dữ liệu cây gia phả trên nền tảng web.
  • Phạm vi nghiên cứu: Đề tài được giao nhiệm vụ từ ngày 30/08/2021 đến ngày 31/12/2021, bảo vệ vào tháng 01/2022 tại Hội đồng CLC Computer Science 3, Khoa Khoa học và Kỹ thuật Máy tính, Trường Đại học Bách Khoa – ĐHQG TP.HCM.

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

Khóa luận áp dụng phương pháp thiết kế và phát triển hệ thống phần mềm (Software Engineering Process), kết hợp phân tích ca sử dụng (use case), mô hình hóa quan hệ thực thể và xây dựng kiến trúc ứng dụng web hai tầng (Client-Server).

1. Cơ sở lý thuyết mạng và giao tiếp dữ liệu

  • Giao thức HTTP (HyperText Transfer Protocol): Giao thức tầng ứng dụng quy định cấu trúc và cơ chế trao đổi thông điệp yêu cầu - phản hồi (request-response) giữa chương trình máy khách (client) và máy chủ (server).
  • Kiến trúc REST API (Representational State Transfer): Chuẩn thiết kế giao diện lập trình ứng dụng dựa trên nền tảng HTTP, sử dụng các phương thức chuẩn (GET, POST, PUT, DELETE) để thao tác trên tài nguyên định danh bằng URL, trao đổi dữ liệu dưới định dạng có cấu trúc như JSON hoặc XML.

2. Công nghệ phát triển phía máy khách (Client-side)

  • HTML và CSS: Cấu trúc khung trang (blueprint) và định dạng giao diện hiển thị cho các thành phần web.
  • TypeScript & Angular: Khung phát triển ứng dụng đơn trang (Single-Page Application - SPA) do Google phát triển. Angular vận hành dựa trên kiến trúc module hóa (NgModule) và cây thành phần (Component hierarchy), với cơ chế liên kết dữ liệu hai chiều (two-way data binding), liên kết thuộc tính (property binding) và liên kết sự kiện (event binding) giữa lớp logic (.ts) và mẫu giao diện (.html).
  • Bootstrap: Khung giao diện cung cấp hệ thống lưới đáp ứng (responsive grid system 12 cột) và các mẫu thành phần giao diện chuẩn (biểu mẫu, nút bấm, bảng, thanh điều hướng).

3. Công nghệ phát triển phía máy chủ và cơ sở dữ liệu (Server-side & Database)

  • PHP: Ngôn ngữ kịch bản chạy phía máy chủ, xử lý logic nghiệp vụ và trả kết quả về cho client.
  • MySQL & SQL: Hệ quản trị cơ sở dữ liệu quan hệ (RDBMS) sử dụng ngôn ngữ truy vấn có cấu trúc (SQL) với các lệnh chuẩn (SELECT, INSERT, UPDATE, DELETE, CREATE, DROP), hỗ trợ công cụ lưu trữ InnoDB đảm bảo tính sẵn sàng cao. Kết nối giữa PHP và MySQL được thực hiện thông qua thư viện MySQLi hoặc PDO.
  • Môi trường máy chủ thử nghiệm XAMPP: Gói tích hợp đa nền tảng gồm máy chủ HTTP Apache, hệ quản trị cơ sở dữ liệu MariaDB/MySQL cùng trình biên dịch PHP và Perl.

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

1. Kiến trúc hệ thống

Hệ thống được thiết kế theo mô hình tách biệt Front-end và Back-end:

  • Phía người dùng (Front-end): Xây dựng bằng Angular và TypeScript, gửi các yêu cầu bất đồng bộ (HTTP requests) đến máy chủ thông qua REST API. Mã nguồn gồm 17 thành phần (components) đảm nhiệm các tuyến đường (routes) riêng biệt, được tổ chức trong thư mục src/app, đi kèm cấu hình môi trường (environments), tài nguyên hình ảnh (assets), gói phụ thuộc (node_modules) và cấu hình kiểm thử đầu cuối (e2e).
  • Phía máy chủ (Back-end): Viết bằng ngôn ngữ PHP, triển khai trên nền tảng máy chủ Apache cục bộ của XAMPP, tiếp nhận yêu cầu từ REST API, xử lý nghiệp vụ và truy xuất cơ sở dữ liệu MySQL qua PDO/MySQLi.

2. Phân tích tác nhân và ca sử dụng (Use Cases)

Tác nhân (Actor) Quyền hạn và vai trò trong hệ thống Ca sử dụng chính
Guest User (Khách chưa đăng ký) Xem thông tin giới thiệu, liên hệ, xem cây phả hệ mẫu, đăng ký tài khoản mới. Register, View sample tree, Contact staff.
Normal User (Người dùng đã đăng ký) Quản lý thông tin cây gia phả cá nhân, tải ảnh, chỉnh sửa hồ sơ và bảo mật. Đăng nhập qua tài khoản hệ thống hoặc Facebook. Login, Edit profile, Change password, Reset password, Manage trees & photos.
Admin (Quản trị viên) Đảm bảo tính ổn định và tính hợp lệ của thông tin trên hệ thống, xác thực hoặc khóa tài khoản, tiếp nhận phản hồi từ người dùng. Verify/prohibit accounts, Manage feedback, System maintenance.

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

Cơ sở dữ liệu của ứng dụng được mô hình hóa qua sơ đồ quan hệ với 5 lược đồ (schemas/tables) chính:

  • User Schema (Bảng 5.18): Lưu trữ thông tin tài khoản người dùng (ID, tên đăng nhập, mật khẩu mã hóa, email, trạng thái xác thực).
  • Tree Schema (Bảng 5.19): Lưu trữ thông tin tổng quan của từng cây phả hệ (mã cây, tên dòng họ, mô tả, chủ sở hữu).
  • Nodes Schema (Bảng 5.20): Lưu trữ thông tin các nút cá nhân trong cây gia phả (họ tên, ngày sinh, ngày mất, mối quan hệ cha-mẹ-con, liên kết thế hệ).
  • Photo Schema (Bảng 5.21): Lưu trữ đường dẫn ảnh, mô tả và liên kết với nút thành viên hoặc album gia đình.
  • Contact Information Schema (Bảng 5.22): Lưu trữ thông tin phản hồi và liên hệ từ người dùng gửi về ban quản trị.

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

Bản thuyết minh khóa luận có dung lượng 93 trang, gồm 7 chương, 39 hình vẽ và 7 tài liệu tham khảo chính.

Chapter 1: Introduction

Chương mở đầu trình bày tính cấp thiết của việc bảo tồn và tìm hiểu lịch sử gia đình thông qua gia phả. Tác giả nêu bật những bất cập trong cách tiếp cận phả hệ truyền thống tại Việt Nam (phụ thuộc vào bản giấy, đi lại tốn kém) và xác định mục tiêu xây dựng một nền tảng web mã nguồn mở, truy cập miễn phí, có cơ chế xác thực để chia sẻ và quản lý cây gia phả.

Chapter 2: Related Works

Chương này khảo sát các hệ thống gia phả hiện có trên thị trường:

  • Hệ thống trong nước (giaphavietnam): Cho phép xem thông tin gia phả dòng họ nhưng thiếu tính năng tự tạo cây cho người dùng cá nhân; quyền kiểm soát thuộc về chủ website.
  • Hệ thống quốc tế (familysearch): Cung cấp hệ sinh thái dữ liệu lớn và miễn phí ở các chức năng cơ bản, nhưng yêu cầu trả phí đối với nhiều tính năng nâng cao và phức tạp.

Chapter 3: Theoretical Knowledge

Trình bày cơ sở lý thuyết nền tảng của công nghệ web: nguyên lý hoạt động của giao thức truyền tải siêu văn bản (HTTP), cơ chế hoạt động của kiến trúc REST API thông qua các phương thức chuẩn, các khái niệm lập trình front-end (HTML, CSS, TypeScript) và back-end (PHP, kỹ thuật kết nối cơ sở dữ liệu qua PDO/MySQLi, cú pháp SQL cơ bản).

Chapter 4: Technology

Tập trung chi tiết vào các framework và công cụ được lựa chọn để hiện thực hóa sản phẩm:

  • Kiến trúc module và luồng ràng buộc dữ liệu (data binding) của Angular; phân tích cấu trúc thư mục dự án (AppComponent, AppModule, tsconfig, src/app).
  • Khung giao diện Bootstrap với hệ thống lưới 12 cột.
  • Ngôn ngữ máy chủ PHP, công cụ quản trị MySQL và bộ phần mềm môi trường XAMPP.

Chapter 5: Design

Chương thiết kế chi tiết toàn bộ hệ thống phần mềm:

  • Sơ đồ kiến trúc tổng thể (Client-Server).
  • Sơ đồ ca sử dụng (Use-case Diagram) và kịch bản chi tiết cho từng tác vụ: Đăng ký (Register), Đăng nhập (Login - hỗ trợ Facebook), Sửa thông tin cá nhân (Edit profile), Đổi mật khẩu (Change password), Khôi phục mật khẩu (Reset password), Xem cây mẫu (View sample tree), Gửi phản hồi (Contact staff).
  • Sơ đồ hoạt động (Activity Diagrams) cho các luồng quản lý cây và chỉnh sửa thông tin.
  • Thiết kế cơ sở dữ liệu chi tiết qua các bảng lược đồ (User, Tree, Nodes, Photo, Contact Info).
  • Thiết kế giao diện (Wireframes/UI) cho 16 màn hình chính của ứng dụng.

Chapter 6: Implementation

Mô tả quá trình hiện thực hóa các chức năng phần mềm và cấu hình định tuyến (routing map). Chương này minh họa mã nguồn phản hồi từ máy chủ khi người dùng đăng nhập, cơ chế xử lý logic các nút phả hệ và các màn hình giao diện thực tế của ứng dụng (trang chủ, hiển thị toàn bộ cây, chi tiết nút thành viên, thư viện ảnh, xuất file và tìm kiếm).

Chapter 7: Result and Discussion

Tổng kết các kết quả đạt được sau khi xây dựng hoàn thiện ứng dụng web, so chiếu với các mục tiêu ban đầu và thảo luận về các định hướng phát triển trong tương lai.


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

1. Kết quả đạt được

  • Xây dựng thành công ứng dụng web quản lý gia phả với đầy đủ các phân hệ chức năng theo đề cương nhiệm vụ.
  • Thiết kế hoàn chỉnh giao diện người dùng đáp ứng (responsive UI) với các chế độ hiển thị: xem cây mẫu, xem toàn bộ cây phả hệ (Full tree view), xem cây khởi tạo (Initial tree view), xem liên kết mẫu (Link template view) và xem thông tin chi tiết từng nút thành viên (Detail of node).
  • Tích hợp các tính năng hỗ trợ quản lý phả hệ: công cụ dòng thời gian (timeline), bản đồ số (mapping tools), gợi ý bản ghi (record hints), thư viện ảnh (Photo Gallery), trích xuất tệp dữ liệu (Export file) và tìm kiếm thông tin phả hệ (Search view).
  • Xây dựng hệ thống xác thực người dùng qua tài khoản hệ thống hoặc tài khoản Facebook.

2. Đánh giá từ hội đồng chuyên môn

  • Cán bộ hướng dẫn (TS. Nguyễn Đức Thái): Đánh giá mức điểm 7.5/10 (xếp loại Khá), ghi nhận sinh viên đã hoàn thành website và chạy thử nghiệm thực tế với các tính năng theo đúng đề cương.
  • Cán bộ phản biện (TS. Nguyễn Lê Duy Lai): Đánh giá mức điểm 8.0/10, khẳng định đề tài có ý nghĩa thực tiễn rõ rệt trong việc giúp người dùng lưu trữ, chia sẻ và kết nối thông tin dòng họ; trình bày đầy đủ quy trình kỹ thuật phần mềm từ phân tích, thiết kế, hiện thực đến kiểm thử.

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

Dựa trên nhận xét chính thức của hội đồng đánh giá và các giới hạn trong bản thuyết minh:

1. Hạn chế

  • Báo cáo thuyết minh ở nhiều phần còn ngắn gọn, thiếu các luận điểm phân tích và biện giải kỹ thuật sâu sắc.
  • Một số tính năng trên website hoạt động được nhưng còn ở mức cơ bản, chưa tối ưu hóa hiệu năng.
  • Thiếu khâu đánh giá định lượng website bằng các chỉ số đo lường chuẩn (evaluation metrics/user testing).
  • Hệ thống chưa hỗ trợ các tính năng tự động khám phá phức tạp (Automatic Discoveries – ví dụ: tự động quét và gợi ý liên kết dòng họ, quét bài báo hoặc tư liệu lịch sử liên quan đến tổ tiên ngay khi cây được khởi tạo).
  • Phương pháp tìm kiếm hồ sơ chưa được mô tả chi tiết và chưa chứng minh được tính hiệu quả trên tập dữ liệu lớn.
  • Cơ chế bảo mật và xác thực chưa được kiểm chứng mức độ an toàn cao đối với quyền riêng tư dữ liệu cá nhân.

2. Hướng phát triển

  • Nghiên cứu và tích hợp cơ chế tự động tìm kiếm, ghép nối thông tin phả hệ và tư liệu lịch sử.
  • Nâng cấp hệ thống xác thực và mã hóa để tăng cường tính riêng tư cho dữ liệu gia đình.
  • Tích hợp tính năng đối soát dữ liệu xét nghiệm ADN chi phí thấp (DNA test matching) nhằm xác định nguồn gốc sắc tộc và tìm kiếm người thân thất lạc.
  • Thiết lập bộ tiêu chí đánh giá (metrics) để đo lường độ chính xác, khả năng mở rộng và mức độ hài lòng của người dùng đối với hệ thống.

Giá trị tham khảo

Khóa luận là tài liệu tham khảo hữu ích cho:

  • Sinh viên ngành Công nghệ Thông tin, Kỹ thuật Phần mềm, Khoa học Máy tính: Tham khảo cấu trúc một đồ án tốt nghiệp phát triển ứng dụng web hoàn chỉnh theo mô hình Client-Server tách biệt (Angular + REST API + PHP/MySQL).
  • Người phát triển ứng dụng gia phả và quản lý quan hệ phân cấp: Tham khảo cách thức thiết kế cơ sở dữ liệu quan hệ cho cây phả hệ (lược đồ Node, Tree, quan hệ thế hệ), quy trình mô hình hóa ca sử dụng UML và thiết kế các khung nhìn giao diện biểu diễn quan hệ thân tộc.

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

1. Khóa luận sử dụng công nghệ nào để phát triển giao diện phía máy khách (Client-side)?
Khóa luận sử dụng khung phát triển Angular kết hợp ngôn ngữ TypeScript, framework Bootstrap (hệ thống lưới đáp ứng 12 cột) cùng HTML/CSS để xây dựng giao diện ứng dụng đơn trang (SPA) gồm 17 components điều hướng qua các routes.

2. Cơ sở dữ liệu của hệ thống gồm những bảng chính nào?
Cơ sở dữ liệu MySQL của hệ thống được thiết kế với 5 lược đồ bảng chính gồm: User Schema (thông tin người dùng), Tree Schema (thông tin cây), Nodes Schema (thông tin thành viên trong cây), Photo Schema (ảnh lưu trữ) và Contact Information Schema (thông tin liên hệ/phản hồi).

3. Khách vãng lai (Guest user) có những quyền hạn gì trên website?
Khách vãng lai có thể truy cập trang chủ, xem thông tin giới thiệu (About us), xem cây gia phả mẫu (Sample tree), gửi thông tin phản hồi qua trang liên hệ (Contact staff) và thực hiện đăng ký tài khoản mới (Register).

4. Khóa luận đạt được những điểm số đánh giá nào từ hội đồng chấm bảo vệ?
Khóa luận được Cán bộ hướng dẫn (TS. Nguyễn Đức Thái) chấm điểm 7.5/10 (xếp loại Khá) và Cán bộ phản biện (TS. Nguyễn Lê Duy Lai) chấm điểm 8.0/10.

5. Hội đồng phản biện đã đặt ra những câu hỏi học thuật trọng tâm nào cho sinh viên?
Cán bộ phản biện đặt 3 câu hỏi trước hội đồng:

  • Khảo sát các định dạng và hệ thống biểu diễn dữ liệu phả hệ đáng chú ý khác?
  • Về mặt lý thuyết đồ thị (graph theory), quan hệ gia đình nói chung có thực sự tạo thành một "cây" (tree) theo nghĩa chặt chẽ hay không?
  • Những chỉ số đo lường (metrics) thích hợp nào có thể được sử dụng để đánh giá website?

Kết luận

Khóa luận tốt nghiệp "Website Development for Family-Trees Management" của sinh viên Hoàng Đức Trí đã hoàn thành việc nghiên cứu, thiết kế và xây dựng một ứng dụng web phục vụ việc quản lý, trực quan hóa và chia sẻ cây phả hệ dòng họ. Ứng dụng được triển khai thành công dựa trên sự kết hợp giữa Angular, PHP, MySQL và REST API, giải quyết nhu cầu tra cứu thông tin cội nguồn một cách trực tuyến và miễn phí. Mặc dù còn hạn chế về tính năng tự động khám phá nâng cao và đánh giá định lượng, công trình là một đồ án hoàn chỉnh về mặt kỹ thuật phần mềm, mang giá trị ứng dụng thực tiễn cho việc số hóa dữ liệu gia phả.