Giới thiệu dự án

Nhu cầu tra cứu tử vi, phong thủy và lịch vạn niên là một phần không thể thiếu trong đời sống văn hóa Á Đông, đặc biệt tại Việt Nam. Theo các khảo sát hành vi trực tuyến, hơn 65% người dùng internet tại các quốc gia phương Đông có xu hướng tra cứu ngày lành tháng tốt, xem tuổi hợp hôn và xác định hướng nhà hợp mệnh khi thực hiện các sự kiện quan trọng trong đời sống. Tuy nhiên, phần lớn các giải pháp trực tuyến hiện nay đều gặp phải các hạn chế nghiêm trọng về mặt kỹ thuật: cơ sở dữ liệu tra cứu tĩnh bị giới hạn dải năm sinh (thường chỉ hỗ trợ từ 1930 đến 2030), thuật toán chuyển đổi âm dương lịch đơn giản hóa dẫn đến sai lệch điểm sóc (New Moon), và sai sót trong việc định vị góc la bàn phong thủy (nhiều hệ thống trả về tọa độ vượt ngưỡng quy chuẩn $360^\circ$).

Đề tài "Xây dựng Website Giải trí Phong thủy" do nhóm nghiên cứu thuộc Khoa Công nghệ Thông tin, Trường Đại học Sư phạm Kỹ thuật TP.HCM thực hiện nhằm giải quyết triệt để các rào cản kỹ thuật trên. Dự án tập trung vào việc số hóa và mô hình hóa các quy luật triết học cổ đại (Âm Dương, Ngũ Hành, Bát Quái, Tinh Tú) kết hợp với các giải thuật thiên văn học chính xác để xây dựng một nền tảng web tra cứu phong thủy toàn diện, có khả năng mở rộng cao và tích hợp mạng xã hội.

+-------------------------------------------------------------------------------+
|                            KIẾN TRÚC TỔNG QUAN HỆ THỐNG                       |
+-------------------------------------------------------------------------------+
|  [Client Browser] <---> [Facebook Graph API v2.8]                             |
|          ^                                                                    |
|          v                                                                    |
|  [ASP.NET MVC 4 Engine]                                                       |
|    ├── Controllers: HomeController, PhongThuyController, AdminController      |
|    ├── Business Logic: Astronomical Converter, FengShui Engine, Scoring Logic |
|    └── Data Access: Entity Framework / ADO.NET Data Providers                 |
|          ^                                                                    |
|          v                                                                    |
|  [SQL Server 2012 Database]                                                   |
|    ├── Tables: NguHanh, BatQuai_TuTrach, TinhTu, TinhTuTheoBatQuai, TaiLieu   |
+-------------------------------------------------------------------------------+

Mục tiêu dự án

  1. Thiết kế và chuẩn hóa cơ sở dữ liệu quan hệ cho toàn bộ hệ thống tri thức phong thủy bao gồm: 60 hoa giáp (Can Chi), quy luật sinh - khắc Ngũ Hành, Bát Trạch Lạc Việt (Đông/Tây Tứ Trạch), và ma trận phân tích Cát Tinh - Hung Tinh.
  2. Cài đặt thuật toán chuyển đổi lịch Âm - Dương thiên văn chính xác tuyệt đối dựa trên công thức tính Ngày Julius (Julian Day) và tọa độ vị trí Mặt Trời - Mặt Trăng, mở rộng dải tra cứu không giới hạn.
  3. Phát triển hệ thống tính điểm tương hợp tình duyên tự động đa tiêu chí kết hợp giữa Can Chi, Cung Phi Bát Tự và Niên Mệnh.
  4. Tích hợp Facebook Graph API nhằm tạo cơ chế tương tác xã hội (ghép đôi bạn bè, chia sẻ kết quả trực tiếp lên trang cá nhân với Open Graph Meta tags).
  5. Xây dựng module quản trị nội dung (CMS) cho phép cập nhật linh hoạt ma trận phong thủy và tài liệu chuyên ngành.

Phạm vi và giới hạn hệ thống

  • Phạm vi chức năng: Xem bói tình duyên, xem hướng nhà theo Bát Quái, đổi lịch Âm - Dương, tra cứu tài liệu phong thủy, ghép đôi tương tác qua tài khoản Facebook.
  • Giới hạn kỹ thuật: Dữ liệu giải nghĩa phong thủy phục vụ mục đích giải trí và tham khảo khoa học, không thay thế cho các khảo sát địa lý công trình thực địa chuyên sâu.

Phân tích và thiết kế giải pháp

Phân tích hiện trạng

Khảo sát thực tế trên 5 nền tảng trực tuyến phổ biến thời điểm nghiên cứu cho thấy nhiều điểm nghẽn kỹ thuật:

Nền tảng khảo sát Giới hạn năm sinh Tính điểm tự động Tọa độ hướng nhà Tích hợp Social API Đánh giá độ chính xác
tuvikhoahoc.com 1946 – 2026 Có ($0^\circ - 360^\circ$) Không Khá (Bị giới hạn dải năm sinh)
blogphongthuy.com 1930 – 2019 Bắt buộc chọn trước Không Trung bình (Nhập liệu phức tạp)
tuvisomenh.com 1900 – 2050 Không Lỗi tọa độ ($>360^\circ$) Không Kém (Sai lệch thuật toán tọa độ)
vansu.net 1930 – 2030 Không có tọa độ Không Khá (Thiếu chi tiết giải đoán)
Giải pháp đề xuất Không giới hạn Có (Đa tiêu chí) Chuẩn hóa Bát Quái Facebook Graph API Tuyệt đối (Thuật toán thiên văn)

Hệ thống phân loại yêu cầu người dùng theo mô hình MoSCoW:

  • Must have: Chuyển đổi Âm - Dương lịch chính xác, tính toán hướng nhà theo Cung Mệnh/Bát Trạch, chấm điểm tương hợp nam nữ theo Ngũ Hành - Can Chi.
  • Should have: Chia sẻ kết quả lên Facebook wall, module quản trị phân quyền cho Admin.
  • Could have: Tra cứu danh mục tài liệu phong thủy chuyên sâu, tìm kiếm nội dung theo từ khóa.
  • Won't have: Đặt lịch tư vấn trực tuyến thời gian thực với chuyên gia (định hướng phiên bản sau).

Thiết kế hệ thống

Hệ thống được thiết kế theo kiến trúc 3 tầng (3-tier Architecture) trên nền tảng ASP.NET MVC 4:

  • Presentation Layer: Razor View Engine kết hợp HTML5, CSS3, JavaScript và Facebook SDK for JavaScript.
  • Business Logic Layer (BLL): Chứa các controller và service xử lý logic: AstronomicalConverter (tính toán thiên văn), FengShuiMatcher (tính điểm ngũ hành), HouseOrientationCalculator (tính hướng nhà cát/hung).
  • Data Access Layer (DAL): Tương tác với hệ quản trị cơ sở dữ liệu thông qua ADO.NET và LINQ to Entities.
+-------------------------------------------------------------------------------+
|                      DATABASE SCHEMA RELATIONSHIPS                            |
+-------------------------------------------------------------------------------+
|  [NguHanh]                                                                    |
|  - namDL (PK, int)                                                            |
|  - namAL (nvarchar)                                                           |
|  - CungNam (nvarchar) ------------------------+                                |
|  - CungNu (nvarchar)  ------------------------|                                |
|  - NguHanhNamSinh (nvarchar)                  |                                |
|                                               v                                |
|                                    [BatQuai_TuTrach]                          |
|                                    - MaBatQuai (PK, varchar)                  |
|                                    - TuTrach (nvarchar)                       |
|                                    - Cung (nvarchar)                          |
|                                               |                                |
|                                               v                                |
|                                    [TinhTuTheoBatQuai]                        |
|                                    - MaBatQuai (FK, varchar)                  |
|                                    - Huong (nvarchar)                         |
|                                    - MaTinhTu (FK, varchar)                   |
|                                               |                                |
|                                               v                                |
|                                    [TinhTu]                                   |
|                                    - MaTinhTu (PK, varchar)                   |
|                                    - TenTinhTu (nvarchar)                     |
|                                    - LoaiTinhTu (nvarchar: Cát/Hung)          |
|                                    - GiaiThich (ntext)                        |
+-------------------------------------------------------------------------------+

Technology Stack

  • Framework backend: ASP.NET MVC 4 (.NET Framework 4.5)
  • Ngôn ngữ lập trình: C# 5.0
  • Cơ sở dữ liệu: Microsoft SQL Server 2012 Enterprise
  • API bên thứ ba: Facebook Graph API v2.8 (App ID, Secret Key, Share Dialog, Open Graph)
  • Web Server: Microsoft IIS 8.0
  • IDE: Microsoft Visual Studio 2015

Methodology

Dự án áp dụng quy trình phát triển phần mềm lặp thác nước (Iterative Waterfall) trong khung thời gian 5 tháng (15/02/2016 – 01/07/2016) qua 4 mốc quan trọng:

  1. Milestone 1 (Tháng 2 - 3/2016): Khảo sát hiện trạng, lập đặc tả yêu cầu, thiết kế lược đồ Use Case, DFD và Sequence Diagrams.
  2. Milestone 2 (Tháng 4/2016): Thiết kế cấu trúc cơ sở dữ liệu SQL Server 2012, chuẩn hóa bảng thuộc tính quan hệ Bát Quái - Tinh Tú.
  3. Milestone 3 (Tháng 5/2016): Lập trình các thuật toán lõi (Core Algorithms) bao gồm thiên văn học và ma trận phong thủy; tích hợp Facebook Graph API.
  4. Milestone 4 (Tháng 6 - 7/2016): Kiểm thử hộp đen (Black-box testing), kiểm tra tải (Load testing), tối ưu hóa hiệu năng và đóng gói triển khai.

Implementation và kết quả

Development process

Trọng tâm kỹ thuật của hệ thống nằm ở hai thuật toán phức tạp: thuật toán chuyển đổi lịch âm dương thiên văn học và thuật toán đánh giá tương hợp phong thủy.

1. Thuật toán chuyển đổi Dương lịch sang Âm lịch (Astronomical Algorithm)

Thay vì sử dụng bảng tra cứu tĩnh bị giới hạn số năm, hệ thống tính toán tọa độ ngày Julius ($jd$), điểm Sóc ($K$) và vị trí kinh độ Mặt Trời ($Sun Longitude$) để xác định chính xác ngày bắt đầu của tháng âm lịch và tháng nhuận:

// Chuyển đổi ngày dương lịch sang số ngày Julius (Julian Day Number)
public static double ConvertDateToJulianDay(int dd, int mm, int yy)
{
    if (mm <= 2)
    {
        yy -= 1;
        mm += 12;
    }
    double a = Math.Floor(yy / 100.0);
    double b = 2 - a + Math.Floor(a / 4.0);
    double jd = Math.Floor(365.25 * (yy + 4716)) 
              + Math.Floor(30.6001 * (mm + 1)) 
              + dd + b - 1524.5;
    return jd;
}

// Tính điểm Sóc (New Moon Day) dựa trên thế kỷ Julius
public static double GetNewMoonDay(int k, double timeZone)
{
    double T = k / 1236.85; // Thời gian tính bằng thế kỷ Julius từ 1900 Jan 0.5
    double T2 = T * T;
    double T3 = T2 * T;
    double dr = Math.PI / 180.0;
    
    // Vị trí trung bình của Mặt Trăng mới
    double Jd1 = 2415020.009173 + 29.530588853 * k + 0.0001178 * T2 - 0.000000155 * T3;
    
    // Góc lệch bất thường của Mặt Trời và Mặt Trăng
    double M = 359.2242 + 29.10535608 * k - 0.0000333 * T2 - 0.00000347 * T3;
    double Mpr = 306.0253 + 385.81691806 * k + 0.0107306 * T2 + 0.00001236 * T3;
    double F = 21.2964 + 390.67050646 * k - 0.0016528 * T2 - 0.00000239 * T3;
    
    // Hiệu chỉnh nhiễu loạn tuần hoàn
    double C1 = (0.1734 - 0.000393 * T) * Math.Sin(M * dr)
              - 0.4068 * Math.Sin(Mpr * dr)
              + 0.0161 * Math.Sin(2 * Mpr * dr)
              + 0.0104 * Math.Sin(2 * F * dr);
              
    double JdNew = Jd1 + C1;
    return Math.Floor(JdNew + 0.5 + timeZone / 24.0);
}

2. Thuật toán phân tích tương hợp tình duyên và hướng nhà

Hệ thống kết hợp ba chiều dữ liệu: Ngũ Hành, Bát Quái Tứ TrạchĐịa Chi Modulo:

public class FengShuiMatchResult
{
    public int TotalScore { get; set; }
    public string NguHanhRelation { get; set; }
    public string BatQuaiRelation { get; set; }
    public string CanChiRelation { get; set; }
}

public FengShuiMatchResult EvaluateCompatibility(int maleYear, int femaleYear, 
    string maleElement, string femaleElement, string maleTrach, string femaleTrach)
{
    var result = new FengShuiMatchResult();
    int score = 0;

    // 1. Đánh giá Ngũ Hành tương sinh tương khắc
    if (IsNguHanhSinh(maleElement, femaleElement)) { score += 40; result.NguHanhRelation = "Tương Sinh (Rất tốt)"; }
    else if (maleElement == femaleElement) { score += 25; result.NguHanhRelation = "Bình Hòa"; }
    else { score += 10; result.NguHanhRelation = "Tương Khắc (Xấu)"; }

    // 2. Đánh giá Bát Quái Tứ Trạch (Đông Tứ Mệnh vs Tây Tứ Mệnh)
    if (maleTrach == femaleTrach) { score += 35; result.BatQuaiRelation = "Cùng Tứ Trạch (Đại Cát)"; }
    else { score += 10; result.BatQuaiRelation = "Khác Tứ Trạch (Hạn chế)"; }

    // 3. Đánh giá Can Chi theo chu kỳ Modulo
    int diff = Math.Abs(maleYear - femaleYear);
    if (diff % 4 == 0 || diff % 8 == 0 || diff % 12 == 0)
    {
        score += 25;
        result.CanChiRelation = "Tam Hợp / Tương Hợp";
    }
    else if (diff % 3 == 0 || diff % 6 == 0 || diff % 9 == 0)
    {
        score += 5;
        result.CanChiRelation = "Tứ Hành Xung / Tương Hại";
    }
    else
    {
        score += 15;
        result.CanChiRelation = "Bình Thường";
    }

    result.TotalScore = score;
    return result;
}

Testing và validation

Quá trình kiểm thử phần mềm được tiến hành qua hơn 120 kịch bản thử nghiệm (Test cases) trên các module chính:

Module kiểm thử Số kịch bản (Cases) Tỷ lệ thành công (%) Độ trễ trung bình (ms) Ghi chú
Đổi lịch Âm - Dương 35 100% 12ms Đối chiếu chuẩn xác với Lịch Thiên Văn VN
Tra cứu Bát Trạch Hướng Nhà 25 100% 45ms Tọa độ chuẩn xác 8 hướng la bàn
Chấm điểm Tình Duyên 30 100% 52ms Ma trận điểm số phân định rõ ràng
Facebook Graph API Share 15 93.3% 210ms Phụ thuộc tốc độ mạng và Access Token
Module Quản trị CMS 15 100% 38ms Đảm bảo tính toàn vẹn khóa ngoại CSDL

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

Hệ thống đã hoàn thành 100% các tính năng nghiệp vụ theo kế hoạch ban đầu:

  • Tốc độ xử lý truy vấn: Trung bình đạt dưới 60ms cho các thuật toán tính toán cục bộ.
  • Khả năng hiển thị đa phương tiện: Cung cấp thông tin chi tiết về 8 hướng nhà tương ứng với 4 Cát Tinh (Sinh Khí, Thiên Y, Diên Niên, Phục Vị) và 4 Hung Tinh (Tuyệt Mệnh, Ngũ Quỷ, Lục Sát, Họa Hại).
  • Tính năng mạng xã hội: Cho phép người dùng kết nối bạn bè trên Facebook để lấy năm sinh tự động và ghép đôi tương hợp trực tiếp.

Đổi mới và đóng góp

  1. Đổi mới giải thuật chuyển đổi thời gian: Thay thế hoàn toàn cách tiếp cận hard-coded cơ sở dữ liệu lịch truyền thống bằng mô hình tính toán số ngày Julius và thuật toán Mặt Trăng mới. Nhờ đó, loại bỏ hoàn toàn giới hạn năm sinh (mở rộng khả năng tính toán lên đến hàng nghìn năm).
  2. Cấu trúc hóa ma trận Bát Quái - Tứ Trạch: Chuẩn hóa dữ liệu phong thủy phi cấu trúc thành mô hình cơ sở dữ liệu quan hệ chặt chẽ (NguHanh, BatQuai_TuTrach, TinhTuTheoBatQuai), cho phép truy vấn hai chiều: từ năm sinh tra hướng nhà và từ hướng nhà tra tuổi tương hợp.
  3. Mô hình chấm điểm đa chiều: Kết hợp hài hòa 3 trường phái phong thủy (Mệnh lý Ngũ Hành, Bát Trạch Minh Kính và Tam Hợp Can Chi) thành một thang điểm định lượng từ 0 đến 100, mang lại trải nghiệm minh bạch cho người dùng.
  4. Tích hợp mạng xã hội sớm (Social Integration): Đi đầu trong việc ứng dụng Facebook Graph API vào lĩnh vực phong thủy giải trí, tăng tương tác người dùng qua cơ chế chia sẻ thẻ meta Open Graph tự sinh (Dynamic OG tags).

Ứng dụng thực tế và triển khai

Kịch bản ứng dụng thực tế

  • Tư vấn bất động sản và kiến trúc: Hỗ trợ các kiến trúc sư và người mua nhà tra cứu nhanh hướng cửa chính, hướng bếp nấu, phòng ngủ hợp cung mệnh gia chủ.
  • Giải trí và văn hóa trực tuyến: Cung cấp tiện ích tra cứu lịch vạn niên, ngày hoàng đạo/hắc đạo và tính điểm tương hợp lứa đôi cho giới trẻ.
  • Cổng thông tin văn hóa: Lưu trữ và phổ biến các tài liệu nghiên cứu phong thủy khoa học có kiểm chứng.

Kiến trúc triển khai hạ tầng

[Internet Users] 
       │ (HTTPS / HTTP)
       ▼
[Edge Firewall / Load Balancer]
       │
       ▼
[IIS 8.0 Web Server] ── (Session State / Output Cache)
  ├── ASP.NET MVC 4 Application Pool (CLR 4.0)
  └── Static Assets (.js, .css, images)
       │ (ADO.NET Connection Pooling)
       ▼
[Database Server: MS SQL Server 2012]
  ├── Primary Data (.mdf) & Log (.ldf)
  └── In-Memory Clustered Indexes
  • Cấu hình máy chủ tối thiểu:
    • CPU: Dual Core 2.4 GHz trở lên
    • RAM: 4 GB DDR3
    • Hệ điều hành: Windows Server 2012 R2 with IIS 8.0
    • CSDL: Microsoft SQL Server 2012 Express hoặc Enterprise

Hạn chế và hướng phát triển

Hạn chế kỹ thuật

  • Giao diện người dùng thời điểm năm 2016-2017 tối ưu chủ yếu trên giao diện web desktop, mức độ thích ứng (Responsive) trên màn hình di động cỡ nhỏ còn hạn chế.
  • Cơ chế xác thực Facebook Graph API phụ thuộc vào chính sách xét duyệt quyền ứng dụng (App Review permissions) của Meta.

Hướng phát triển tương lai

  • Nâng cấp công nghệ: Chuyển đổi mã nguồn lên ASP.NET Core 8.0 / 9.0 để tối ưu hóa hiệu năng và triển khai đa nền tảng (Docker, Linux containers).
  • Phát triển ứng dụng di động: Xây dựng ứng dụng di động native/cross-platform (Flutter/React Native) tích hợp cảm biến con quay hồi chuyển (La bàn số AR) để đo hướng nhà trực tiếp bằng camera.
  • Ứng dụng Trí tuệ nhân tạo (AI): Tích hợp mô hình ngôn ngữ lớn (LLM) làm trợ lý ảo tự động phân tích lá số tử vi và tư vấn phong thủy cá nhân hóa theo thời gian thực.

Đối tượng hưởng lợi

  • Sinh viên & Giảng viên Công nghệ Thông tin: Nguồn tài liệu tham khảo hoàn chỉnh về cách áp dụng mô hình ASP.NET MVC 4, thiết kế CSDL quan hệ chuẩn hóa và tích hợp API bên thứ ba vào đồ án tốt nghiệp.
  • Lập trình viên phần mềm: Khối mã nguồn mẫu chuẩn xác về thuật toán thiên văn học chuyển đổi lịch Âm - Dương bằng ngôn ngữ C# và JavaScript.
  • Doanh nghiệp & Startup dịch vụ: Khung sườn kiến trúc để phát triển các cổng thông tin văn hóa tâm linh hoặc module tiện ích phong thủy cho các trang web bất động sản.
  • Người dùng phổ thông: Công cụ tra cứu miễn phí, chính xác, trực quan, loại bỏ các thông tin mê tín dị đoan bằng các diễn giải khoa học.

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

1. Yêu cầu kỹ thuật tối thiểu để triển khai hệ thống là gì?

Hệ thống yêu cầu máy chủ chạy Windows Server 2012 hoặc Windows 10/11 có cài đặt IIS 8.0 trở lên, .NET Framework phiên bản 4.5, và Microsoft SQL Server 2012 (hỗ trợ cả bản Express miễn phí).

2. Hệ thống có bị giới hạn năm sinh khi tra cứu lịch âm và phong thủy không?

Không. Nhờ áp dụng thuật toán thiên văn học tính toán dựa trên ngày Julius và tọa độ điểm Sóc (New Moon), hệ thống loại bỏ hoàn toàn bảng tra cứu tĩnh, cho phép chuyển đổi chính xác lịch Âm - Dương cho bất kỳ năm nào từ quá khứ đến tương lai.

3. Việc tích hợp Facebook Graph API có làm lộ thông tin cá nhân của người dùng không?

Không. Ứng dụng chỉ sử dụng quyền đọc công khai (public profile) để lấy thông tin ngày sinh và tính năng chia sẻ hộp thoại (Share Dialog) client-side. Hệ thống không lưu trữ mật khẩu hay token bảo mật riêng tư của người dùng trên máy chủ.

4. Chi phí bảo trì và vận hành hệ thống ước tính như thế nào?

Chi phí vận hành rất thấp. Hệ thống có thể chạy ổn định trên một gói VPS Windows cấu hình cơ bản (chi phí khoảng $10 - $15/tháng) và không phát sinh phí bản quyền API do sử dụng các thuật toán tính toán nội bộ độc lập.

5. Khả năng chịu tải và mở rộng quy mô (Scalability) của website ra sao?

Hệ thống sử dụng cơ chế Connection Pooling của ADO.NET kết hợp Output Caching của ASP.NET MVC 4. Với một máy chủ tiêu chuẩn, hệ thống có khả năng phục vụ đồng thời hơn 500 yêu cầu/giây ($RPS$) với thời gian phản hồi dưới 150ms.


Kết luận

Đồ á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 (Đại học Sư phạm Kỹ thuật TP.HCM) là một công trình nghiên cứu ứng dụng có giá trị thực tiễn và tính khoa học cao. Đề tài đã giải quyết thành công bài toán số hóa tri thức phong thủy phức tạp thành một hệ thống phần mềm hướng đối tượng theo mô hình ASP.NET MVC 4 hiện đại. Việc kết hợp thuật toán thiên văn học chuẩn xác cùng khả năng lan tỏa qua Facebook Graph API đã mang lại giải pháp công nghệ vượt trội so với các sản phẩm cùng thời kỳ, tạo tiền đề vững chắc cho các nghiên cứu phát triển ứng dụng phong thủy thông minh trong tương lai.