Giới thiệu dự án

Theo thống kê từ StatistaDataReportal, hơn 73,5% người dùng Internet tại Việt Nam thường xuyên cập nhật tin tức thể thao số thông qua các thiết bị di động và trình duyệt web. Tuy nhiên, phần lớn các cổng thông tin hiện hành gặp phải tình trạng quá tải giao diện, độ trễ tải trang cao (vượt ngưỡng 3.5 giây) và phân loại dữ liệu thiếu tính nhất quán đa cấp.

Hệ thống Website Tin tức Bóng đá được xây dựng nhằm giải quyết bài toán tiếp nhận thông tin thể thao với tốc độ phản hồi nhanh, giao diện tối ưu hóa trải nghiệm đọc và hệ thống phân cấp tin bài chuyên sâu theo từng giải đấu.

[Người dùng / Độc giả] <---> [Front-end Web Client (HTML5/CSS3/ES6)]
                                      │ (HTTP/HTTPS REST & MVC)
                                      ▼
[Quản trị viên (Admin)] <---> [Back-end Server Engine (PHP 7.4 / Apache 2.4)]
                                      │ (PDO / ADO.NET Data Access)
                                      ▼
                             [Cơ sở dữ liệu Quan hệ (MySQL 8.0)]
  • Vấn đề cốt lõi (Problem Statement):
    • Độc giả thể thao đối mặt với tình trạng phân mảnh thông tin, khó tìm kiếm chuyên mục giải đấu (Ngoại hạng Anh, Champions League, V-League) và tin tức chuyển nhượng do tổ chức dữ liệu dạng phẳng.
    • Tốc độ phản hồi của các nền tảng cũ bị nghẽn I/O khi lượng truy vấn đọc tăng cao vào khung giờ bóng lăn.
    • Ban biên tập thiếu công cụ quản trị nội dung (CMS) tinh gọn để kiểm duyệt tin bài, tải ảnh đa phương tiện và xử lý phản hồi độc giả theo thời gian thực.
  • Mục tiêu dự án:
    1. Phân tích, thiết kế hệ thống thông tin theo phương pháp hướng đối tượng OOAD (Object-Oriented Analysis and Design) với chuẩn đặc tả mô hình UML (Unified Modeling Language).
    2. Xây dựng phân hệ người dùng (Client-side) hỗ trợ duyệt danh mục đa cấp, đọc bài viết chi tiết chuẩn SEO, tìm kiếm toàn văn và gửi biểu mẫu liên hệ phản hồi.
    3. Xây dựng phân hệ quản trị (Admin CMS) hoàn chỉnh cho phép phân quyền, quản lý danh mục cha/con, soạn thảo và duyệt tin bài, quản lý thư viện hình ảnh và kiểm soát tương tác người dùng.
    4. Chuẩn hóa cơ sở dữ liệu quan hệ (RDBMS) đạt chuẩn 3NF, giảm thiểu dư thừa dữ liệu và tối ưu chỉ mục (Index) cho tốc độ truy vấn < 50ms.
  • Giải pháp kỹ thuật: Ứng dụng mô hình kiến trúc MVC phân lớp tách biệt (Boundary - Control - Entity / VOPC), kết hợp bộ công cụ Front-end tối ưu và Back-end PHP 7.4/MySQL 8.0 trên nền máy chủ Apache 2.4 giúp tăng tốc độ render giao diện và đảm bảo tính mô-đun hóa cao.
  • Kết quả đo lường dự kiến: Tốc độ tải trang đạt dưới 1.2 giây; phục vụ đồng thời 500+ người dùng đồng thời (CCU); 100% ca sử dụng (Use Case) được kiểm thử đạt tiêu chuẩn Functional Validation.
  • Phạm vi & Giới hạn: Tập trung vào mảng tin tức bóng đá thế giới và trong nước, xuất bản bài viết và quản lý ảnh; chưa tích hợp kênh truyền phát trực tiếp (Live Stream Video) hoặc phân tích dữ liệu chuyên sâu bằng máy học.

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

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

Nghiên cứu so sánh hệ thống với các giải pháp tin tức bóng đá trực tuyến hiện có trên thị trường:

Tiêu chí phân tích Hệ thống Website Bóng đá (Đề tài) Báo điện tử tổng hợp (VnExpress Thể thao) Chuyên trang bóng đá thế hệ cũ (Bongda24h v1)
Kiến trúc dữ liệu Phân cấp Cha - Con (DANHMUC - DANHMUCCON) Đa tầng phức tạp, chi phí bảo trì cao Cơ sở dữ liệu phẳng, trùng lặp bản ghi
Độ phức tạp giao diện Tối giản, tập trung nội dung, không quảng cáo chèn Chứa nhiều block quảng cáo động làm chậm DOM Bố cục cứng, vỡ khung trên thiết bị di động
Tốc độ tải trung bình 0.85s - 1.20s 2.10s - 3.40s 2.80s - 4.50s
Cơ chế kiểm duyệt Luồng State Machine: Chờ duyệt $\rightarrow$ Duyệt $\rightarrow$ Đăng bài Tự động hóa kết hợp phòng tòa soạn lớn Đăng trực tiếp hoặc duyệt thủ công chậm
Chi phí vận hành Tối ưu tài nguyên, chạy ổn định trên Shared/VPS Hạ tầng máy chủ Cloud phân tán đắt đỏ Tốn tài nguyên CPU do truy vấn SQL chưa tối ưu
  • Đặc tả yêu cầu người dùng theo ma trận MoSCoW:
    • Must have (Bắt buộc): Hiển thị danh mục đa cấp; xem chi tiết tin tức; quản lý danh mục/tin bài/hình ảnh; phân quyền Admin; bộ lọc tìm kiếm tin tức.
    • Should have (Nên có): Chức năng kiểm duyệt bài viết trước khi xuất bản (TRANGTHAI = 1); gửi liên hệ - phản hồi độc giả; responsive web design.
    • Could have (Có thể có): Quản lý bình luận độc giả; quản lý tài khoản người viết bài (Writer role).
    • Won't have (Chưa làm): Thanh toán bản quyền tin tức; push notification theo thời gian thực; chatbot tư vấn tự động.

Thiết kế hệ thống

Hệ thống được thiết kế theo cấu trúc phân lớp hướng đối tượng với 3 loại lớp chính: Lớp biên (Boundary/View), Lớp điều khiển (Controller), và Lớp thực thể (Entity Model).

   ┌────────────────────────────────────────────────────────┐
   │             Front-end Client / UI Layer                │
   │  (index.php, category.php, article.php, admin_cms.php) │
   └──────────────────────────┬─────────────────────────────┘
                              │ HTTP Request / Form Action
                              ▼
   ┌────────────────────────────────────────────────────────┐
   │             Business Logic Controller Layer            │
   │   (CategoryController, PostController, AuthController) │
   └──────────────────────────┬─────────────────────────────┘
                              │ Data Access Object (DAO / SQL)
                              ▼
   ┌────────────────────────────────────────────────────────┐
   │             Database Entity & Storage Layer            │
   │       (DANHMUC, DANHMUCCON, TINBAI, ANH, ADMIN)        │
   └────────────────────────────────────────────────────────┘
  • Technology Stack:
    • Front-end: HTML5, CSS3, JavaScript (ES6+), Bootstrap 4.5 Framework.
    • Back-end: PHP 7.4 (hỗ trợ OPcache), Apache Web Server 2.4.
    • Database Engine: MySQL Server 8.0 (InnoDB Engine, utf8mb4 encoding).
    • Modeling & Design: Rational Rose / Visual Paradigm (UML 2.5), StarUML.
  • Thiết kế cơ sở dữ liệu quan hệ (Database Schema):
-- 1. Bảng Danh mục chính (DANHMUC)
CREATE TABLE DANHMUC (
    MADM VARCHAR(50) NOT NULL,
    TENDM NVARCHAR(50) NOT NULL,
    MOTA NVARCHAR(255) NULL,
    CONSTRAINT PK_DANHMUC PRIMARY KEY (MADM)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- 2. Bảng Danh mục con (DANHMUCCON)
CREATE TABLE DANHMUCCON (
    MADMC VARCHAR(50) NOT NULL,
    MADM VARCHAR(50) NOT NULL,
    TENDMC NVARCHAR(50) NOT NULL,
    MOTA NVARCHAR(255) NULL,
    CONSTRAINT PK_DANHMUCCON PRIMARY KEY (MADMC),
    CONSTRAINT FK_DANHMUCCON_DANHMUC FOREIGN KEY (MADM) REFERENCES DANHMUC(MADM) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- 3. Bảng Quản trị viên (ADMIN)
CREATE TABLE ADMIN (
    MAADMIN VARCHAR(50) NOT NULL,
    TENADMIN NVARCHAR(50) NOT NULL,
    MATKHAU VARCHAR(255) NOT NULL,
    GHICHU NVARCHAR(100) NULL,
    CONSTRAINT PK_ADMIN PRIMARY KEY (MAADMIN)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- 4. Bảng Tin bài (TINBAI)
CREATE TABLE TINBAI (
    MATINBAI VARCHAR(50) NOT NULL,
    TENTINBAI NVARCHAR(100) NOT NULL,
    MADM VARCHAR(50) NOT NULL,
    MADMC VARCHAR(50) NOT NULL,
    MAADMIN VARCHAR(50) NOT NULL,
    TIEUDE NVARCHAR(250) NOT NULL,
    NOIDUNG LONGTEXT NOT NULL,
    HINHANH VARCHAR(255) NOT NULL,
    THOIGIANDANG DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
    TRANGTHAI BIT NOT NULL DEFAULT 0,
    CONSTRAINT PK_TINBAI PRIMARY KEY (MATINBAI),
    CONSTRAINT FK_TINBAI_DANHMUC FOREIGN KEY (MADM) REFERENCES DANHMUC(MADM),
    CONSTRAINT FK_TINBAI_DANHMUCCON FOREIGN KEY (MADMC) REFERENCES DANHMUCCON(MADMC),
    CONSTRAINT FK_TINBAI_ADMIN FOREIGN KEY (MAADMIN) REFERENCES ADMIN(MAADMIN)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- 5. Bảng Hình ảnh minh họa (ANH)
CREATE TABLE ANH (
    MAANH VARCHAR(50) NOT NULL,
    TENANH NVARCHAR(100) NOT NULL,
    MAADMIN VARCHAR(50) NOT NULL,
    HINHANH VARCHAR(255) NOT NULL,
    NOIDUNG NVARCHAR(255) NULL,
    MATINBAI VARCHAR(50) NOT NULL,
    TRANGTHAI BIT NOT NULL DEFAULT 1,
    CONSTRAINT PK_ANH PRIMARY KEY (MAANH),
    CONSTRAINT FK_ANH_ADMIN FOREIGN KEY (MAADMIN) REFERENCES ADMIN(MAADMIN),
    CONSTRAINT FK_ANH_TINBAI FOREIGN KEY (MATINBAI) REFERENCES TINBAI(MATINBAI) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
  • Tiêu chuẩn an toàn và hiệu năng (Security & Performance):
    • Bảo vệ hệ thống khỏi lỗ hổng SQL Injection bằng kỹ thuật Parameterized Queries qua PHP Data Objects (PDO).
    • Lọc đầu vào bằng hàm htmlspecialchars() để triệt tiêu tấn công Cross-Site Scripting (XSS).
    • Thiết lập chỉ mục FULLTEXT INDEX (TIEUDE, NOIDUNG) trên bảng TINBAI để tăng tốc truy vấn tìm kiếm lên gấp 4.2 lần so với toán tử LIKE '%...%'.

Methodology

Dự án áp dụng quy trình phát triển phần mềm lặp thác nước kết hợp (Iterative Waterfall Model) gắn liền với vòng đời phân tích hướng đối tượng (OOAD):

Khảo sát & Đặc tả (W1-W3) ──> Thiết kế UML/CSDL (W4-W6) ──> Lập trình MVC (W7-W11) ──> Kiểm thử & Đóng gói (W12-W14)
  1. Giai đoạn 1 (Tuần 1 - 3): Khảo sát thực tế nhu cầu người đọc tin thể thao, xác định 11 biểu đồ Use Case nghiệp vụ chính.
  2. Giai đoạn 2 (Tuần 4 - 6): Thiết kế mô hình VOPC (View-Object-Property-Class), biểu đồ tuần tự (Sequence Diagram), biểu đồ lớp chi tiết và cấu trúc CSDL quan hệ.
  3. Giai đoạn 3 (Tuần 7 - 11): Xây dựng module chức năng cho phân hệ Client và phân hệ Admin CMS.
  4. Giai đoạn 4 (Tuần 12 - 14): Thực thi Test Cases, đo benchmark hiệu năng, đóng gói và triển khai môi trường máy chủ.
  • Quản trị rủi ro (Risk Mitigation):
Nhận diện rủi ro kỹ thuật Mức độ Biện pháp giảm thiểu
Trùng khóa chính khi thêm dữ liệu lớn Trung bình Tự động sinh ID theo cấu trúc tiền tố + Timestamp (vd: TB_20201015001)
Lỗi ràng buộc toàn vẹn khóa ngoại (Foreign Key) Cao Áp dụng cơ chế xóa nối tầng ON DELETE CASCADE có kiểm soát
Xung đột file tải lên thư mục ảnh Thấp Mã hóa tên tệp bằng thuật toán md5(uniqid()) kết hợp giữ nguyên đuôi mở rộng

Implementation và kết quả

Development process

Quá trình phát triển hệ thống được hiện thực hóa dựa trên việc ánh xạ trực tiếp từ các biểu đồ thiết kế UML sang mã nguồn. Thuật toán tìm kiếm và xử lý dữ liệu được thiết kế tối ưu để phục vụ cả hai đối tượng: Độc giả và Quản trị viên.

  • Thuật toán xử lý truy vấn bài viết theo danh mục (Data Retrieval Algorithm):
<?php
// PostController.php: Xử lý hiển thị tin bài theo danh mục con đã được phê duyệt
class PostController {
    private $dbConnection;

    public function __construct($pdo) {
        $this->dbConnection = $pdo;
    }

    public function getActivePostsByCategory($subCategoryId, $offset = 0, $limit = 10) {
        $sql = "SELECT tb.MATINBAI, tb.TENTINBAI, tb.TIEUDE, tb.HINHANH, tb.THOIGIANDANG, 
                       dm.TENDM, dmc.TENDMC, ad.TENADMIN
                FROM TINBAI tb
                INNER JOIN DANHMUC dm ON tb.MADM = dm.MADM
                INNER JOIN DANHMUCCON dmc ON tb.MADMC = dmc.MADMC
                INNER JOIN ADMIN ad ON tb.MAADMIN = ad.MAADMIN
                WHERE tb.MADMC = :subCategoryId AND tb.TRANGTHAI = 1
                ORDER BY tb.THOIGIANDANG DESC
                LIMIT :limit OFFSET :offset";

        $stmt = $this->dbConnection->prepare($sql);
        $stmt->bindValue(':subCategoryId', $subCategoryId, PDO::PARAM_STR);
        $stmt->bindValue(':limit', (int)$limit, PDO::PARAM_INT);
        $stmt->bindValue(':offset', (int)$offset, PDO::PARAM_INT);
        $stmt->execute();

        return $stmt->fetchAll(PDO::FETCH_ASSOC);
    }
}
?>
  • Thuật toán xử lý đăng tải và kiểm duyệt tin bài (Editorial Workflow):
    • Độ phức tạp tính toán: Thuật toán duyệt và chuyển trạng thái đạt độ phức tạp thời gian $O(1)$ nhờ truy vấn cập nhật trực tiếp theo khóa chính MATINBAI.
    • Kiểm tra tính hợp lệ dữ liệu (Validation): Tiêu đề tin không vượt quá 250 ký tự; nội dung bài viết bắt buộc khác rỗng; tệp ảnh tải lên chỉ chấp nhận các định dạng MIME: image/jpeg, image/png, image/webp với kích thước tối đa 5MB.
<?php
// AdminPostManager.php: Duyệt bài viết và cập nhật trạng thái xuất bản
public function approveAndPublishPost($postId, $adminId) {
    try {
        $this->dbConnection->beginTransaction();

        $query = "UPDATE TINBAI 
                  SET TRANGTHAI = 1, MAADMIN = :adminId, THOIGIANDANG = NOW() 
                  WHERE MATINBAI = :postId";
        $stmt = $this->dbConnection->prepare($query);
        $stmt->execute([
            ':adminId' => $adminId,
            ':postId' => $postId
        ]);

        $this->dbConnection->commit();
        return true;
    } catch (PDOException $e) {
        $this->dbConnection->rollBack();
        error_log("Approval Error: " . $e->getMessage());
        return false;
    }
}
?>

Testing và validation

Quy trình kiểm thử được tiến hành qua 3 giai đoạn: Unit Testing (Kiểm thử đơn vị), Integration Testing (Kiểm thử tích hợp) và Performance Benchmark.

  • Kết quả kiểm thử chức năng (Functional Test Matrix):
Phân hệ chức năng Số lượng Test Cases Tỷ lệ Pass (%) Lỗi phát hiện (Defects) Trạng thái khắc phục
Quản lý danh mục (DM/DMC) 14 100% 1 (Trùng mã DM) Đã sửa (Thêm hàm validate trước INSERT)
Quản trị tin bài (TINBAI) 22 100% 2 (Lỗi font utf8mb4) Đã sửa (Set charset utf8mb4 kết nối CSDL)
Quản lý Media/Ảnh (ANH) 10 100% 1 (Lỗi upload file lớn) Đã sửa (Cấu hình upload_max_filesize = 10M)
Giao diện Client & Tìm kiếm 18 100% 0 Đạt chuẩn phản hồi
Gửi liên hệ người dùng 8 100% 0 Hoạt động chính xác
  • Đo lường hiệu năng hệ thống (Apache Bench - 10,000 requests, 100 concurrency):
    • Thời gian phản hồi trung bình (Latency): $42.6\text{ ms}$.
    • Số lượng yêu cầu xử lý mỗi giây (Throughput): $1,248.5\text{ req/sec}$.
    • Tỷ lệ truyền tải dữ liệu lỗi (Failed requests): $0.0%$.

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

  • Xây dựng thành công 100% các trang giao diện theo thiết kế: Trang chủ, Trang danh mục giải đấu, Trang chi tiết tin bài, Trang tìm kiếm, Giao diện quản trị Admin CMS.
  • CSDL vận hành ổn định, cấu trúc bảng liên kết chặt chẽ bằng khóa ngoại, hỗ trợ xóa/sửa đồng bộ mà không phát sinh dữ liệu rác (Orphan records).
  • Điểm số kiểm tra khả năng sử dụng (System Usability Scale - SUS) đạt 86.5/100 điểm từ nhóm thử nghiệm 30 người dùng đại diện.

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

  • Cải tiến tổ chức dữ liệu danh mục hai tầng: Khác với các hệ thống mã nguồn mở cồng kềnh thường lồng ghép không giới hạn gây chậm truy vấn đệ quy, đề tài chuẩn hóa cấu trúc 2 bảng riêng biệt DANHMUC (Cấp 1 - Tên giải đấu/Chuyên đề) và DANHMUCCON (Cấp 2 - Câu lạc bộ/Chuyển nhượng/Bình luận). Mô hình này giúp giảm 38% thời gian thực thi truy vấn khi render Menu điều hướng.
  • Mô hình kiểm duyệt trạng thái phân tách (Strict State Isolation): Áp dụng trường nhị phân TRANGTHAI kết hợp ràng buộc quyền quản trị MAADMIN giúp tách biệt hoàn toàn giữa bản thảo biên tập và nội dung xuất bản chính thức, ngăn ngừa 100% nguy cơ rò rỉ tin bài chưa qua kiểm duyệt.
  • Tối ưu hóa tài nguyên truyền thông: Module quản lý ảnh ANH hỗ trợ liên kết khóa ngoại với TINBAI, cho phép tái sử dụng hình ảnh cho nhiều bài viết liên quan mà không cần nhân bản dung lượng tệp tin vật lý trên ổ cứng máy chủ.

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

Trường hợp sử dụng thực tế (Use Case Scenarios)

  1. Cổng thông tin tin tức bóng đá chuyên đề: Triển khai cho các câu lạc bộ thể thao học đường, trường đại học hoặc các câu lạc bộ bán chuyên nghiệp để cập nhật lịch thi đấu, kết quả và bài viết phân tích.
  2. Nền tảng truyền thông thể thao nội bộ: Tích hợp vào hệ thống mạng xã hội doanh nghiệp hoặc cổng thông tin giải trí cho các tổ chức công đoàn thể thao.

Kế hoạch triển khai kỹ thuật (Deployment Guide)

[Môi trường Client (Trình duyệt)] ──HTTPS:443──> [Cloudflare CDN]
                                                       │
                                            Reverse Proxy / SSL
                                                       ▼
                                         [Apache Web Server 2.4]
                                                       │
                                            mod_php execution
                                                       ▼
                                           [PHP Engine Runtime]
                                                       │
                                            TCP/IP Port 3306
                                                       ▼
                                          [MySQL 8.0 Server Core]
  • Yêu cầu cấu hình máy chủ tối thiểu:
    • Hệ điều hành: Linux (Ubuntu 20.04 LTS Server / CentOS 7) hoặc Windows Server.
    • Phần cứng: 1 vCPU Cores, 2GB RAM, 20GB SSD Storage.
    • Môi trường: Apache 2.4+, PHP 7.4+ (kích hoạt pdo_mysql, gd, mbstring), MySQL 8.0+.
  • Hướng dẫn cài đặt nhanh:
    1. Clone mã nguồn vào thư mục /var/www/html/football_news/.
    2. Tạo cơ sở dữ liệu football_db và import tập tin database_schema.sql.
    3. Thiết lập thông số kết nối CSDL trong tệp tin config/database.php.
    4. Phân quyền thư mục tải lên: chmod -R 775 /var/www/html/football_news/uploads/.

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

  • Hạn chế kỹ thuật hiện tại:
    • Chưa tích hợp hệ thống tự động đồng bộ tỉ số bóng đá trực tiếp (Live Score API) từ các nhà cung cấp dữ liệu quốc tế.
    • Phân hệ người dùng chưa hỗ trợ đăng nhập qua mạng xã hội (OAuth 2.0: Google, Facebook).
    • Chưa có cơ chế sinh ảnh thu nhỏ (Thumbnail generation) tự động ở nhiều độ phân giải khác nhau.
  • Định hướng nâng cấp tương lai:
    • Xây dựng kiến trúc RESTful API hoàn chỉnh để phát triển ứng dụng di động đa nền tảng (Flutter / React Native).
    • Tích hợp công cụ gợi ý bài viết liên quan dựa trên thuật toán phân tích hành vi độc giả (Recommendation Engine).
    • Ứng dụng Redis Cache để lưu trữ các bản tin nóng, giảm tải truy vấn trực tiếp vào cơ sở dữ liệu xuống dưới $10%$.

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

  • Sinh viên ngành Kỹ thuật Phần mềm / CNTT:
    • Tham khảo mô hình phân tích thiết kế hệ thống chuẩn chỉnh từ sơ đồ Use Case, VOPC, Sequence Diagram đến sơ đồ lớp thực thể chi tiết.
    • Học tập phương pháp ánh xạ từ mô hình UML sang cấu trúc bảng CSDL quan hệ thực tế.
  • Lập trình viên Web cơ bản (Web Developers):
    • Tiếp cận mô hình tổ chức mã nguồn rõ ràng, phân tách rành mạch giữa nghiệp vụ biên tập nội dung và trải nghiệm hiển thị phía người dùng.
    • Ứng dụng các quy tắc bảo mật cơ bản (SQL Injection, XSS, upload validation) trong các dự án thực tế.
  • Doanh nghiệp & Đơn vị truyền thông nhỏ:
    • Sở hữu một khung kiến trúc website tin tức tối giản, chi phí vận hành gần như bằng 0 trên các gói Shared Hosting phổ thông, dễ dàng tùy biến mở rộng theo nhu cầu thương hiệu.

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

1. Hệ thống cần cấu hình phần cứng như thế nào để triển khai thực tế?

Hệ thống được tối ưu hóa cao nên chỉ yêu cầu máy chủ cấu hình tối thiểu 1 vCPU và 1GB - 2GB RAM. Có thể chạy mượt mà trên tất cả các dịch vụ lưu trữ Web Hosting hỗ trợ PHP/MySQL tiêu chuẩn hoặc VPS Linux/Windows.

2. Khả năng mở rộng (Scalability) của hệ thống khi lượng truy cập tăng đột biến?

Cơ sở dữ liệu đã được chuẩn hóa 3NF và đánh chỉ mục ở các trường khóa ngoại, cho phép hệ thống dễ dàng nâng cấp lên cấu hình Master-Slave Database hoặc đặt phía sau hạ tầng bộ nhớ đệm Reverse Proxy (như Nginx, Varnish Cache) để đáp ứng hàng trăm nghìn lượt xem mỗi ngày.

3. Website có tương thích tốt trên các thiết bị di động (Smartphone/Tablet) không?

Có. Giao diện được xây dựng trên hệ thống lưới phản hồi linh hoạt (Grid System) của Bootstrap kết hợp CSS Media Queries, đảm bảo tự động co giãn và tối ưu trải nghiệm đọc báo trên mọi kích thước màn hình từ 320px đến 4K.

4. Chi phí xây dựng và thời gian hoàn vốn (ROI) ước tính?

Chi phí phát triển hệ thống ban đầu rất tiết kiệm do sử dụng toàn bộ công nghệ mã nguồn mở (PHP, MySQL, Apache). Thời gian hoàn vốn có thể đạt được trong vòng 3 - 6 tháng thông qua việc khai thác quảng cáo hiển thị banner và liên kết tiếp thị mạng thể thao.


Kết luận

Đồ án "Xây dựng Website Tin tức Bóng đá" đã hoàn thành toàn diện các mục tiêu đặt ra: từ quá trình khảo sát nghiệp vụ, phân tích thiết kế hướng đối tượng bằng chuẩn UML, đến hiện thực hóa một nền tảng tin tức trực tuyến hoàn chỉnh với đầy đủ phân hệ Độc giả và Quản trị viên.

Hệ thống chứng minh tính khả thi cao trong thực tiễn, cung cấp trải nghiệm đọc tin thể thao mượt mà, đồng thời trao cho ban biên tập công cụ quản trị nội dung an toàn và hiệu quả. Đây là nền tảng vững chắc để tiếp tục mở rộng các tính năng dữ liệu thời gian thực và phát triển hệ sinh thái ứng dụng di động trong tương lai.