Bối cảnh và vấn đề nghiên cứu
Đề tài khóa luận tốt nghiệp "Xây dựng website giải trí phong thủy" được thực hiện bởi sinh viên Đinh Quang Huy và Trương Quang Thái, 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 TP.HCM dưới sự hướng dẫn của ThS. Mai Tuấn Khôi (thời gian thực hiện từ ngày 15/02/2016 đến ngày 01/07/2016, hoàn thành bảo vệ vào tháng 07/2017).
Về bối cảnh thực tiễn và lý do chọn đề tài, tác giả phân tích rằng trong các hình thức bói toán truyền thống, khoa Tử vi được xem là một phương thức có độ tin cậy cao và được nhiều người tín nhiệm. Khóa luận điểm lại tiến trình lịch sử: trước khi khoa Tử vi định hình, Trung Hoa cổ đại đã có hình thức "bốc phệ" do Chu Văn Vương phát triển dựa trên Hà đồ (bức vẽ Bát quái tương truyền của Phục Hi) để tạo thành 64 quẻ dịch. Sau đó, học thuyết Âm Dương Ngũ Hành ra đời dựa trên sự tương sinh, tương khắc của 5 yếu tố bản nguyên (Kim, Mộc, Thủy, Hỏa, Thổ) nhằm giải thích đời sống và các mối liên hệ phức tạp, tạo tiền đề tư tưởng cho Tử vi. Về quan niệm số mệnh, tác giả dẫn chiếu các trường phái triết học: Khổng Tử chủ trương "Tận nhân lực, tri thiên mệnh" (nỗ lực hết sức rồi mới thuận theo mệnh trời); Trang Tử nhìn nhận thành bại, sang hèn đều do thiên mệnh chi phối; trong khi Tuân Tử phủ nhận sự chi phối tuyệt đối của số mệnh và khẳng định họa phúc do hành vi con người tạo nên. Trong xã hội hiện đại, nhu cầu tra cứu tử vi, phong thủy trực tuyến rất phổ biến nhưng nhiều hệ thống trên Internet còn tồn tại các hạn chế kỹ thuật.
Mục tiêu nghiên cứu của đề tài gồm các điểm cụ thể:
- Đưa kiến thức tử vi, phong thủy tiếp cận cuộc sống thường nhật thông qua nền tảng công nghệ web để người dùng dễ dàng tra cứu, sử dụng.
- Phục vụ nhu cầu tìm hiểu thông tin, tài liệu tử vi, phong thủy của người dùng.
- Cung cấp các công cụ tương tác trực tuyến như đổi lịch âm dương, xem bói hướng nhà, xem bói tình duyên và tích hợp tính năng ghép đôi qua mạng xã hội Facebook.
Nhiệm vụ nghiên cứu được phân định thành 6 bước tiến hành:
- Tìm hiểu về nhu cầu thực tế của người dùng và khảo sát các hệ thống hiện có.
- Phân tích và mô hình hóa yêu cầu hệ thống.
- Xây dựng và thiết kế cơ sở dữ liệu quan hệ.
- Xây dựng giao diện và xử lý nghiệp vụ cho phân hệ quản trị viên (Admin).
- Xây dựng giao diện và xử lý nghiệp vụ cho phân hệ người dùng (Khách).
- Chạy thử nghiệm hệ thống và khắc phục lỗi.
Đối tượng nghiên cứu của đề tài là các thuật toán tra cứu ngũ hành, bát quái, can chi, thuật toán chuyển đổi lịch thiên văn âm dương và mô hình ứng dụng web giải trí. Phạm vi không gian là hệ thống website trực tuyến; phạm vi dữ liệu thời gian giải quyết giới hạn năm sinh thông qua quy tắc chu kỳ Can Chi 60 năm đối với các năm sinh sau năm 2000.
Cơ sở lý thuyết và phương pháp
Khóa luận sử dụng các cơ sở lý thuyết, mô hình kiến trúc và phương pháp kỹ thuật sau:
- Khung kiến trúc phần mềm: Mô hình kiến trúc ASP.NET MVC 4 (Model - View - Controller) trên nền tảng .NET Framework, tổ chức tách biệt giữa tầng xử lý dữ liệu, điều hướng nghiệp vụ và tầng hiển thị giao diện.
- Cơ sở lý thuyết chuyên ngành phong thủy: Học thuyết Âm Dương Ngũ Hành (quy luật tương sinh: Thổ sinh Kim, Kim sinh Thủy, Thủy sinh Mộc, Mộc sinh Hỏa, Hỏa sinh Thổ; tương khắc: Kim khắc Mộc, Thủy khắc Hỏa, Mộc khắc Thổ, Hỏa khắc Kim, Thổ khắc Thủy); lý thuyết Bát quái - Tứ trạch (Đông tứ trạch, Tây tứ trạch); hệ thống Cát tinh - Hung tinh (sao tốt, sao xấu) định hướng nhà cửa.
- Phương pháp nghiên cứu thực tế:
- Phương pháp khảo sát hiện trạng: Khảo sát và phân tích ưu - nhược điểm của 5 website chuyên về tử vi, phong thủy đang hoạt động trên Internet Việt Nam.
- Phương pháp phân tích và thiết kế hướng cấu trúc kết hợp hướng đối tượng: Sử dụng biểu đồ luồng dữ liệu (Data Flow Diagram - DFD) và biểu đồ tuần tự (Sequence Diagram - SD) để mô hình hóa 12 nghiệp vụ của khách và 8 nghiệp vụ của quản trị viên.
- Phương pháp toán - thiên văn học: Ứng dụng giải thuật tính toán ngày Julius (Julian Day) và chu kỳ chuyển động của Mặt Trời, Mặt Trăng để chuyển đổi chính xác giữa lịch Gregory (dương lịch) và âm lịch Việt Nam.
- Phương pháp kiểm thử phần mềm: Sử dụng phương pháp kiểm thử hộp đen (Black-box testing) thông qua việc lập bảng các trường hợp kiểm thử (test cases) cho các chức năng chính của website.
- Nền tảng công nghệ và nguồn dữ liệu:
- Ngôn ngữ lập trình: C# trên nền tảng .NET Framework.
- Hệ quản trị cơ sở dữ liệu: Microsoft SQL Server 2012.
- Giao diện và API mở rộng: HTML/CSS, JavaScript, Facebook Graph API (Facebook for Developers) để hỗ trợ chia sẻ liên kết và tính năng ghép đôi.
- Nguồn dữ liệu phong thủy: Số liệu ngũ hành, can chi, quẻ mệnh, hướng nhà và chú thích ý nghĩa được chuẩn hóa, lưu trữ trong hệ thống bảng dữ liệu quan hệ.
Thiết kế và triển khai
Hệ thống được thiết kế theo mô hình Web Application nhiều lớp dựa trên nền tảng ASP.NET MVC 4, kết nối với cơ sở dữ liệu quan hệ SQL Server 2012.
Thiết kế cơ sở dữ liệu
Cơ sở dữ liệu của website gồm các bảng thực thể lưu trữ cấu trúc phong thủy và dữ liệu vận hành:
| Tên bảng (Table) |
Các thuộc tính chính |
Mục đích lưu trữ và nghiệp vụ |
NguHanh |
namDL, namAL, GiaiNghia, CungNam, NienMenhNam, CungNu, NienMenhNu, NguHanhNamSinh, TenNguHanh |
Lưu trữ thông tin năm dương lịch, năm âm lịch, can chi, cung mệnh, niên mệnh nam/nữ và tên ngũ hành năm sinh. |
BatQuai-TuTrach |
MaBatQuai, TuTrach, Cung |
Xác định mối quan hệ giữa quẻ Bát quái, cung mệnh và trạch mệnh (Đông tứ trạch hoặc Tây tứ trạch). |
TinhTu |
MaTinhTu, TenTinhTu, LoaiTinhTu, GiaiThich |
Danh mục các sao cát tinh và hung tinh, phân loại tính chất và phần giải thích chi tiết ý nghĩa. |
TinhTuTheoBatQuai |
MaBatQuai, Huong, MaTinhTu |
Bảng liên kết xác định từng hướng cụ thể (Đông, Tây, Nam, Bắc, Đông Bắc,...) của từng quẻ Bát quái tương ứng với sao nào. |
TaiLieu |
MaTaiLieu, TenTaiLieu, MoTa, NgayDang,... |
Lưu trữ các bài viết, tài liệu nghiên cứu về phong thủy để người dùng tra cứu. |
Admin |
Username, Password, Email, PhoneNumber |
Quản lý tài khoản truy cập phân hệ quản trị, hỗ trợ đổi mật khẩu và phục hồi mật khẩu. |
GhepDoiTinhDuyenPost |
Các thuộc tính lưu vết chia sẻ qua Facebook |
Quản lý dữ liệu bài đăng chia sẻ tính năng ghép đôi của người dùng. |
GhepDoiTinhDuyenResult |
Các thuộc tính lưu kết quả tính toán độ hợp tuổi |
Lưu thông tin kết quả tính toán phục vụ việc hiển thị cho người dùng truy cập từ Facebook. |
Cài đặt các thuật toán cốt lõi
Khóa luận triển khai ba thuật toán xử lý chính:
- Thuật toán chuyển đổi lịch dương sang âm:
Quy trình tính toán dựa trên ngày Julius và chu kỳ điểm sóc thiên văn:
- Bước 1: Đổi ngày, tháng, năm dương lịch (
dd, m, y) sang số ngày Julius (jd):
$$jd = dd + \lfloor(153 \times m + 2) / 5\rfloor + 365 \times y + \lfloor y / 4\rfloor - 32083$$
- Bước 2: Tính điểm sóc $K$:
$$K = \text{INT}(jd - 2415021.530588853)$$
- Bước 3: Tính ngày bắt đầu tháng âm lịch (
monthStart) qua hàm thiên văn getNewMoonDay(K + 1, timeZone) có hiệu chỉnh thời gian thế kỷ Julian ($T, T^2, T^3$), góc dị thường của Mặt Trời ($M$), Mặt Trăng ($Mpr$) và hiệu chỉnh độ trễ $\Delta t$.
- Bước 4: Xác định ngày bắt đầu tháng 11 âm lịch ($a_{11}$, $b_{11}$) bằng hàm
getLunarMonth11(yy, timeZone) và tính kinh độ Mặt Trời (getSunLongitude).
- Bước 5 & 6: So sánh $a_{11}$ với
monthStart để xác định năm âm lịch (lunarYear) và tính ngày âm lịch:
$$\text{lunarDay} = jd - \text{monthStart} + 1$$
- Bước 7, 8 & 9: Tính độ lệch tháng $\text{diff} = (\text{monthStart} - a_{11}) / 29$. Nếu $a_{11} - b_{11} > 365$, xác định năm nhuận và tháng nhuận qua hàm
getLeapMonthOffset(a11, timeZone), từ đó xác định tháng âm lịch (lunarMonth) và hoàn thiện việc tra bảng ra can chi năm âm lịch.
- Thuật toán xem bói hướng nhà:
- Nhận ngày, tháng, năm sinh dương lịch và giới tính của người dùng.
- Chuyển đổi ngày tháng sang năm âm lịch. Xử lý giới hạn thời gian: nếu năm sinh âm lịch lớn hơn năm 2000, hệ thống quy đổi lùi lại 60 năm ($\text{namSinh} - 60$) dựa trên chu kỳ hoa giáp lục thập.
- Truy vấn bảng
NguHanh để lấy cung mệnh theo giới tính.
- Dùng cung mệnh truy vấn bảng
BatQuai-TuTrach để lấy mã bát quái.
- Dùng mã bát quái truy vấn bảng
TinhTuTheoBatQuai để xác định danh sách các hướng và mã tinh tú tương ứng.
- Truy vấn bảng
TinhTu để xuất ra chi tiết các hướng Cát tinh (hướng tốt) và Hung tinh (hướng xấu) kèm lời giải thích.
- Thuật toán xem bói tình duyên và ghép đôi:
- Dữ liệu đầu vào: năm sinh của nam ($a$) và nữ ($b$). Xử lý năm sinh lớn hơn 2000 bằng quy tắc trừ 60.
- Đánh giá yếu tố Ngũ hành: Tra cứu ngũ hành nam/nữ từ bảng
NguHanh. Xác định hợp theo quan hệ tương sinh (Thổ - Kim, Kim - Thủy, Thủy - Mộc, Mộc - Hỏa, Hỏa - Thổ); xác định khắc theo quan hệ tương khắc (Kim - Mộc, Thủy - Hỏa, Mộc - Thổ, Hỏa - Kim, Thổ - Thủy).
- Đánh giá yếu tố Bát quái - Tứ trạch: Tra cứu tứ trạch từ bảng
BatQuai-TuTrach. Xác định hợp nếu cùng nhóm (Đông tứ trạch đi với Đông tứ trạch, Tây tứ trạch đi với Tây tứ trạch); xác định khắc nếu lệch nhóm (Đông tứ trạch kết hợp Tây tứ trạch).
- Đánh giá yếu tố Can Chi theo công thức số học modulo:
- Hợp: khi $(a - b) \pmod 4 = 0$ hoặc $(a - b) \pmod 8 = 0$ hoặc $(a - b) \pmod{12} = 0$.
- Khắc: khi $(a - b) \pmod 3 = 0$ hoặc $(a - b) \pmod 6 = 0$ hoặc $(a - b) \pmod 9 = 0$.
- Bình thường: các trường hợp còn lại.
Kiểm thử phần mềm
Hệ thống được kiểm thử chức năng bằng kỹ thuật phân vùng tương đương và kiểm thử giá trị biên, tập trung vào các trường hợp kiểm thử chính:
- Kiểm thử chức năng đổi lịch âm sang dương và dương sang âm với các năm nhuận, tháng nhuận và mốc thời gian chuyển giao năm mới.
- Kiểm thử chức năng bói hướng nhà cho nam và nữ với các năm sinh trước và sau năm 2000.
- Kiểm thử chức năng bói tình duyên với các cặp tuổi rơi vào các trường hợp tương sinh, tương khắc, hợp trạch và xung trạch.
- Kiểm thử các chức năng quản trị: đăng nhập hệ thống, cập nhật bảng ngũ hành, thêm/xóa tài liệu phong thủy và quy trình khôi phục mật khẩu qua email/số điện thoại.
Nội dung chính theo từng chương
Giới thiệu đề tài
Chương mở đầu trình bày tính cấp thiết của việc số hóa kiến thức tử vi, phong thủy; tóm lược lịch sử phát triển từ thuyết Bát quái, Âm Dương Ngũ Hành đến tư tưởng triết học về số mệnh của Khổng Tử, Trang Tử, Tuân Tử. Tác giả xác lập mục đích nghiên cứu là đưa tử vi phong thủy vào ứng dụng công nghệ trực tuyến và đề ra quy trình 6 bước thực hiện đồ án từ khảo sát, phân tích, thiết kế cơ sở dữ liệu, xây dựng giao diện cho đến chạy thử nghiệm.
Chương 1: Khảo sát hiện trạng
Nhóm tác giả tiến hành khảo sát thực tế 5 website tử vi, phong thủy phổ biến trên Internet thời điểm nghiên cứu nhằm rút ra cơ sở cải tiến cho hệ thống mới:
| Tên website khảo sát |
Đánh giá tính năng Bói tình duyên |
Đánh giá tính năng Bói hướng nhà |
Nhược điểm kỹ thuật ghi nhận |
tuvikhoahoc.com |
Cung cấp năm âm lịch, mệnh, cung, niên mệnh; gợi ý tuổi hợp; tự động tính điểm tình duyên. |
Cho biết năm âm lịch, mệnh, cung; cung cấp chi tiết tọa độ hướng tốt/xấu kèm chú giải. |
Bắt buộc nhập năm sinh âm lịch; phạm vi năm sinh bị giới hạn từ 1946 đến 2026. |
blogphongthuy.com |
Tính điểm dựa trên ngũ hành, cung mệnh, quẻ dịch, can chi và tên người dùng. |
Cung cấp thông tin năm âm lịch, mệnh, ngũ hành; có tọa độ hướng tốt/xấu kèm chú giải. |
Giới hạn năm sinh bói tình duyên (1930 - 2019) và hướng nhà (1920 - 2049); bắt buộc chọn hướng trước khi xem. |
tuvisomenh.com |
Hiển thị tuổi âm lịch, mệnh, ngũ hành; tự động tìm tuổi hợp. |
Cung cấp tọa độ hướng tốt/xấu, chú giải; gợi ý vị trí đặt cửa chính, phòng bếp và hướng cửa. |
Không tự động tính điểm tình duyên; thông tin tọa độ cửa chính và bếp thiếu chính xác (tọa độ hiển thị lớn hơn $360^\circ$). |
www5.net |
Cung cấp rất chi tiết: tuổi âm lịch, mệnh, cầm tinh, ngũ hành, sao chủ, màu sắc, tứ trụ, cô thần quả tú; tự động tính điểm. |
Hiển thị hướng nhà tốt theo năm sinh; hướng dẫn mô hình vòng Bát quái cho cửa chính, bếp, phòng ngủ. |
Bắt buộc nhập ngày giờ sinh của cả hai người; giới hạn năm sinh 1900 - 2040; bói hướng nhà không có tọa độ chi tiết và chú giải. |
vansu.net |
Phân tích chi tiết ngũ hành, bản mệnh, can chi, cung mệnh, quẻ dịch, tên người dùng; tự động chấm điểm. |
Hiển thị quẻ mệnh, ngũ hành, tứ trạch; đưa ra lời khuyên khắc phục khi gặp hướng nhà xấu. |
Giới hạn năm sinh 1930 - 2030; xem hướng nhà bắt buộc phải chọn trước một hướng; thiếu thông số tọa độ và chú giải chi tiết. |
Kết luận khảo sát: Đa số các trang đều cung cấp được dữ liệu cơ bản về ngũ hành và cung mệnh, tuy nhiên nhược điểm chung là giới hạn dải năm sinh tra cứu, yêu cầu người dùng phải tự chuyển đổi sang năm âm lịch trước, hoặc đưa ra kết quả tọa độ góc sai lệch về mặt kỹ thuật.
Chương 2: Tiếp nhận và mô hình hóa yêu cầu
Chương này đặc tả toàn bộ yêu cầu chức năng nghiệp vụ của hệ thống thông qua hai tác nhân:
- Phân hệ khách (Guest) gồm 12 nghiệp vụ:
- Xem trang chủ (QĐ-Khach-XTC): Hiển thị giao diện trang chủ tích hợp khung tìm kiếm tài liệu ở góc phải trên thanh menu.
- Xem tài liệu phong thủy (QĐ-Khach-XTLPT): Hiển thị danh sách tên tài liệu phong thủy.
- Xem lịch (QĐ-Khach-XL): Hiển thị lịch dương tháng hiện tại, mỗi ngày dương lịch có chú thích ngày âm lịch đi kèm.
- Tìm kiếm tài liệu trong website (QĐ-Khach-TKTLTWS): Tra cứu tài liệu theo từ khóa.
- Đổi lịch âm dương (QĐ-Khach-DLAD): Hiển thị bảng tra cứu lịch tháng và công cụ chuyển đổi hai chiều.
- Đổi lịch dương sang âm (QĐ-Khach-DLDSA): Tiếp nhận ngày, tháng, năm dương lịch và múi giờ; áp dụng giải thuật thiên văn Julius để tính toán ra ngày, tháng, năm âm lịch.
- Đổi lịch âm sang dương (QĐ-Khach-DLASD): Chuyển đổi ngược từ ngày âm sang ngày dương.
- Xem bói hướng nhà (QĐ-Khach-XBHN): Nhập ngày tháng năm sinh dương lịch, tự động đổi sang âm lịch, tra cứu bảng
NguHanh, BatQuai-TuTrach, TinhTuTheoBatQuai và TinhTu để xuất danh sách cát tinh, hung tinh.
- Chia sẻ kết quả qua Facebook (QĐ-Khach-CSKQQFB): Sử dụng mã nhúng Facebook for Developers với nút bấm kích thước lớn (
data-size="large") và tham số redirect_uri trỏ về trang chủ.
- Xem bói tình yêu (QĐ-Khach-XBTY): Nhập ngày sinh hai bên, đổi sang âm lịch, tính toán hợp khắc qua ngũ hành, bát quái tứ trạch và phép chia lấy dư năm sinh.
- Ghép đôi Facebook (QĐ-Khach-GDFB): Áp dụng thuật toán bói tình duyên cho người chia sẻ liên kết và bạn bè tương tác qua Facebook.
- Đăng nhập (QĐ-Khach-DN): Giao diện tiếp nhận email và mật khẩu của người quản trị.
- Phân hệ quản trị viên (Admin) gồm 8 nghiệp vụ:
- Đăng xuất (QĐ-Admin-DX): Hủy phiên làm việc và quay về màn hình đăng nhập.
- Thay đổi mật khẩu (QĐ-Admin-TDMK): So khớp mật khẩu cũ trong cơ sở dữ liệu và lưu mật khẩu mới.
- Phục hồi mật khẩu (QĐ-Admin-PHMK): Tiếp nhận email hoặc số điện thoại, so khớp cơ sở dữ liệu và gửi mật khẩu hiện tại về cho quản trị viên.
- Xem trang quản lý (QĐ-Admin-XTQL): Bảng điều khiển trung tâm cho admin.
- Quản lý dữ liệu ngũ hành theo năm sinh (QĐ-Admin-QLDLNHTNS): Tra cứu và chỉnh sửa trực tiếp các thông số trong bảng
NguHanh.
- Quản lý tài liệu (QĐ-Admin-QLTL): Xem danh sách các bài viết phong thủy hiện có.
- Thêm tài liệu (QĐ-Admin-TTL): Kiểm tra trùng lặp và lưu trữ tài liệu mới vào cơ sở dữ liệu.
- Xóa tài liệu (QĐ-Admin-XTL): Xác nhận thao tác và xóa vĩnh viễn dữ liệu tài liệu khỏi bảng lưu trữ.
Chương này cũng thể hiện chi tiết các sơ đồ DFD từ mức ngữ cảnh đến mức phân rã, cùng các sơ đồ tuần tự (Sequence Diagram) mô tả luồng thông điệp giữa Actor, Giao diện (View) và Cơ sở dữ liệu (CSDL).
Chương 3: Thiết kế phần mềm
Chương 3 chi tiết hóa lược đồ quan hệ thực thể, danh sách các trường dữ liệu và kiểu dữ liệu của các bảng: NguHanh, BatQuai-TuTrach, TinhTu, TinhTuTheoBatQuai, TaiLieu, Admin, GhepDoiTinhDuyenPost, GhepDoiTinhDuyenResult. Đồng thời, chương này thiết kế chi tiết giao diện người dùng và đặc tả 25 danh sách xử lý nghiệp vụ cho cả khách và admin: từ xử lý điều hướng trang chủ, giao diện hiển thị lịch, màn hình kết quả bói hướng nhà, giao diện chia sẻ mạng xã hội, đến giao diện quản trị dữ liệu ngũ hành và form đổi mật khẩu.
Chương 4: Cài đặt và thuật toán
Trình bày môi trường thực thi, cấu hình kết nối giữa ASP.NET MVC 4 và SQL Server 2012; chi tiết mã nguồn hiện thực giải thuật chuyển đổi lịch âm dương (tính toán thế kỷ Julian, tính dị thường trung bình của Mặt Trời $M$, Mặt Trăng $Mpr$, khoảng cách vĩ độ $F$ và hiệu chỉnh $\Delta t$); cài đặt cấu trúc vòng lặp xác định điểm sóc và kinh độ Mặt Trời để phân định tháng nhuận; cài đặt thuật toán so khớp ngũ hành, bát quái, can chi để xuất danh sách kết quả xem hợp tuổi.
Chương 5: Kiểm thử phần mềm
Chương cuối cùng tổng hợp các ca kiểm thử (test case) thực tế cho 20 chức năng thành phần của hệ thống. Kiểm tra tính toàn vẹn của dữ liệu tra cứu khi nhập các mốc năm sinh đặc biệt (trước 1946 và sau 2000), kiểm tra độ chính xác của các góc hướng nhà ($0^\circ - 360^\circ$), tính chuẩn xác của kết quả tương sinh tương khắc và kiểm tra khả năng tích hợp chia sẻ liên kết qua Facebook. Đồng thời, chương này tổng kết các kết quả đạt được, chỉ ra ưu điểm và phác thảo hướng phát triển tiếp theo của đề tài.
Kết quả và đóng góp
Khóa luận đã hoàn thành các mục tiêu đề ra với những kết quả cụ thể:
- Xây dựng hoàn chỉnh website giải trí phong thủy trên nền tảng .NET MVC 4 và cơ sở dữ liệu SQL Server 2012, vận hành đầy đủ 12 chức năng cho người dùng và 8 chức năng quản trị.
- Hiện thực thành công giải thuật chuyển đổi lịch âm dương thiên văn hai chiều với độ chính xác cao, có khả năng tính toán điểm sóc và tháng nhuận tự động.
- Giải quyết triệt để vấn đề giới hạn năm sinh mà các website hiện nay đang gặp phải (vốn bị giới hạn trong khoảng 1900 - 2049) thông qua việc áp dụng quy tắc chu kỳ Can Chi 60 năm ($\text{namSinh} - 60$ cho các năm sau 2000), mở rộng khả năng phục vụ người dùng sinh sau năm 2000.
- Khắc phục lỗi sai lệch về mặt số liệu kỹ thuật mà website khảo sát mắc phải (như lỗi hiển thị góc tọa độ la bàn hướng nhà lớn hơn $360^\circ$).
- Tích hợp thành công Facebook Graph API cho phép người dùng chia sẻ kết quả và tạo tính năng ghép đôi tương tác trực tiếp trên mạng xã hội Facebook.
Hạn chế và hướng nghiên cứu tiếp
Khóa luận tự chỉ ra một số hạn chế và hướng phát triển:
- Hạn chế kỹ thuật và phạm vi:
- Hệ thống mới chỉ tập trung chuyên sâu vào hai bài toán phong thủy cốt lõi là bói tình duyên và bói hướng nhà; chưa tích hợp đầy đủ các bài toán phức tạp khác như chấm lá số tử vi trọn đời hay chọn ngày giờ hoàng đạo.
- Phân hệ tài liệu phong thủy của khách mới dừng lại ở việc hiển thị danh sách tên bài viết tra cứu, chưa hỗ trợ trình đọc toàn văn nâng cao hoặc phân mục đa tầng.
- Việc khôi phục mật khẩu admin còn phụ thuộc vào cơ chế so khớp gửi lại mật khẩu trực tiếp, chưa áp dụng cơ chế mã hóa một chiều hay tạo mã thông báo (token) đặt lại mật khẩu tạm thời.
- Hướng phát triển trong tương lai:
- Bổ sung thêm các tính năng tử vi chuyên sâu: lấy lá số tử vi 12 cung, xem tuổi làm nhà chi tiết theo Kim Lâu - Hoang Ốc - Tam Tai, chọn ngày giờ khởi công và cưới hỏi.
- Nâng cấp giao diện người dùng theo hướng thiết kế đáp ứng (Responsive Web Design) tương thích tối ưu trên các thiết bị di động.
- Mở rộng hệ thống quản lý nội dung (CMS) cho phép quản trị viên biên tập toàn văn bài viết phong thủy kèm hình ảnh minh họa phong phú.
Giá trị tham khảo
Khóa luận có giá trị tham khảo thiết thực cho các đối tượng sau:
- Sinh viên ngành Công nghệ phần mềm và Hệ thống thông tin: Tài liệu hữu ích cho việc học tập cách phân tích, mô hình hóa nghiệp vụ bằng biểu đồ luồng dữ liệu (DFD) và biểu đồ tuần tự (SD) theo chuẩn công nghệ phần mềm; tham khảo cấu trúc triển khai một ứng dụng web hoàn chỉnh từ khảo sát đến kiểm thử trên nền tảng ASP.NET MVC 4 kết hợp SQL Server.
- Lập trình viên xây dựng ứng dụng lịch và phong thủy: Cung cấp chi tiết mã giả và công thức toán - thiên văn học của giải thuật tính toán ngày Julius, thuật toán tìm điểm sóc để chuyển đổi âm dương lịch chuẩn xác; cung cấp mô hình thực thể quan hệ chuẩn hóa cho hệ thống ngũ hành, bát quái, tứ trạch và tinh tú.
Câu hỏi thường gặp
1. Khóa luận giải quyết bài toán giới hạn năm sinh cho người dùng sinh sau năm 2000 bằng phương pháp nào?
Khóa luận áp dụng quy tắc chu kỳ Can Chi Lục thập hoa giáp (60 năm lặp lại một lần). Đối với người dùng có năm sinh dương lịch đổi sang âm lịch lớn hơn năm 2000, hệ thống tự động trừ đi 60 năm ($\text{namSinh} - 60$) trước khi thực hiện tra cứu vào bảng NguHanh, từ đó vẫn xác định chính xác cung mệnh, niên mệnh và ngũ hành mà không cần mở rộng kích thước bảng dữ liệu vô hạn.
2. Thuật toán đánh giá mức độ hợp - khắc về năm sinh giữa hai người được tính theo công thức số học nào?
Hệ thống quy định hai năm sinh âm lịch của nam và nữ lần lượt là $a$ và $b$. Độ chênh lệch $(a - b)$ được đưa vào phép tính chia lấy dư (modulo):
- Được xác định là Hợp khi: $(a - b) \pmod 4 = 0$ hoặc $(a - b) \pmod 8 = 0$ hoặc $(a - b) \pmod{12} = 0$.
- Được xác định là Khắc khi: $(a - b) \pmod 3 = 0$ hoặc $(a - b) \pmod 6 = 0$ hoặc $(a - b) \pmod 9 = 0$.
- Các trường hợp còn lại được xếp loại Bình thường.
3. Những bảng dữ liệu nào trong cơ sở dữ liệu tham gia vào quá trình tra cứu và hiển thị kết quả xem bói hướng nhà?
Quá trình xem bói hướng nhà thực hiện truy vấn tuần tự qua 4 bảng dữ liệu:
- Bảng
NguHanh: Lấy thông tin cung mệnh tương ứng với năm sinh âm lịch và giới tính.
- Bảng
BatQuai-TuTrach: Từ cung mệnh lấy ra mã Bát quái và Trạch mệnh (Đông/Tây tứ trạch).
- Bảng
TinhTuTheoBatQuai: Từ mã Bát quái truy xuất danh sách các hướng la bàn và mã Tinh tú tương ứng.
- Bảng
TinhTu: Từ mã Tinh tú lấy ra tên sao Cát tinh/Hung tinh, loại sao và chú giải chi tiết.
4. Kết quả khảo sát 5 website phong thủy hiện có đã chỉ ra những nhược điểm kỹ thuật nào?
Nhóm tác giả đã khảo sát tuvikhoahoc.com, blogphongthuy.com, tuvisomenh.com, www5.net và vansu.net. Các nhược điểm kỹ thuật chung được phát hiện bao gồm:
- Bị giới hạn phạm vi năm sinh của người dùng (chỉ hỗ trợ trong khoảng 1900 đến tối đa 2049).
- Bắt buộc người dùng phải tự biết và chọn năm âm lịch thay vì tự động chuyển đổi từ ngày dương lịch.
- Một số website đưa ra số liệu tọa độ la bàn không chính xác về mặt hình học (tọa độ hướng cửa và bếp hiển thị giá trị lớn hơn $360^\circ$).
5. Website tích hợp tính năng của Facebook thông qua công cụ nào và nhằm mục đích gì?
Website tích hợp công cụ Facebook Graph API thông qua nền tảng Facebook for Developers. Mục đích tích hợp gồm hai chức năng: cho phép người dùng chia sẻ trực tiếp kết quả xem bói hướng nhà hoặc tình duyên lên trang cá nhân Facebook với nút bấm kích thước lớn (data-size="large"), và triển khai tính năng ghép đôi giải trí giữa người chia sẻ liên kết với bạn bè trên mạng xã hội.
Kết luận
Khóa luận tốt nghiệp "Xây dựng website giải trí phong thủy" của sinh viên Đinh Quang Huy và Trương Quang Thái đã hoàn thành trọn vẹn quy trình phân tích, thiết kế và cài đặt một hệ thống web tương tác chuyên đề trên nền tảng ASP.NET MVC 4 và SQL Server 2012. Bằng việc chuẩn hóa các quy tắc phong thủy truyền thống thành cấu trúc cơ sở dữ liệu quan hệ và tích hợp giải thuật chuyển đổi âm dương lịch thiên văn, đề tài đã giải quyết được các hạn chế về giới hạn năm sinh và sai lệch tọa độ của các trang web khảo sát trước đó. Đây là một tài liệu kỹ thuật có giá trị tham khảo rõ ràng cho sinh viên chuyên ngành công nghệ phần mềm trong việc mô hình hóa bài toán thực tế và triển khai ứng dụng web tích hợp mạng xã hội.