Giới thiệu dự án
Trong kỷ nguyên chuyển đổi số và bùng nổ công nghệ thông tin, việc tối ưu hóa trải nghiệm hội nghị, hội thảo khoa học và sự kiện doanh nghiệp đã trở thành yêu cầu cấp thiết. Theo các khảo sát thực tế trong ngành tổ chức sự kiện, phương thức tương tác truyền thống (sử dụng micro chuyền tay, phiếu biểu quyết giấy, bảng khảo sát in ấn) làm lãng phí tới 35% thời lượng chương trình, chỉ thu hút được 15–20% đại biểu tham gia phản hồi và gây ra độ trễ lớn trong khâu tổng hợp dữ liệu. Đồ án "Xây dựng ứng dụng hỗ trợ giao tiếp trực tuyến hội nghị" do sinh viên Nguyễn Văn Ngọc thực hiện dưới sự hướng dẫn của TS. Đỗ Văn Chiểu tại Trường Đại học Dân lập Hải Phòng được nghiên cứu và phát triển nhằm giải quyết triệt để các rào cản tương tác trong không gian hội nghị.
+-------------------------------------------------------------------------+
| VẤN ĐỀ TƯƠNG TÁC HỘI NGHỊ TRUYỀN THỐNG |
| - Lãng phí 35% thời lượng cho khâu chuyền micro & ghi nhận thủ công |
| - Tỷ lệ đại biểu ngại phát biểu công khai cao (> 70%) |
| - Dữ liệu khảo sát phân mảnh, xử lý hậu sự kiện mất 24h - 48h |
+-------------------------------------------------------------------------+
+-------------------------------------------------------------------------+
| GIẢI PHÁP ỨNG DỤNG WEB-BASED REAL-TIME |
| - Đăng ký đại biểu trực tuyến đồng bộ hóa định danh |
| - Gửi câu hỏi tức thì qua giao diện Web đến Admin/Speaker |
| - Live Polls & Khảo sát đa tiêu chí tự động tính toán tỷ lệ phần trăm |
+-------------------------------------------------------------------------+
Problem Statement & Pain Points cụ thể
- Nghẽn cổ chai tương tác (Interaction Bottleneck): Đại biểu muốn đặt câu hỏi thường bị giới hạn bởi thời gian và tâm lý e ngại trước đám đông; quá trình chuyển micro vật lý gây ngắt quãng mạch thuyết trình của diễn giả (Speaker).
- Thiếu cơ chế sàng lọc câu hỏi: Diễn giả bị quá tải bởi các câu hỏi trùng lặp hoặc ngoài luồng do không có lớp kiểm duyệt trung gian từ Ban tổ chức (Admin).
- Độ trễ trong biểu quyết (Live Polling Delay): Khảo sát bằng hình thức giơ tay hoặc phiếu giấy không đưa ra được con số thống kê phần trăm chính xác ngay tại thời điểm diễn ra phiên thảo luận.
- Xử lý dữ liệu hậu hội nghị thủ công: Việc tổng hợp danh sách đại biểu, đánh giá chất lượng hội nghị đòi hỏi nhiều nhân sự nhập liệu, dễ xảy ra sai sót dữ liệu.
Mục tiêu dự án
- Xây dựng nền tảng Web tương thích đa thiết bị (PC, Laptop, Smartphone, Tablet) phục vụ giao tiếp trực tiếp giữa Đại biểu, Ban quản trị và Diễn giả.
- Thiết kế module Đăng ký & Định danh đại biểu tự động, quản lý thông tin đại biểu tham dự tập trung.
- Phát triển kênh Live Q&A trực tuyến với luồng kiểm duyệt qua Admin giúp lọc trùng, phân loại câu hỏi trước khi chuyển tiếp tới Speaker.
- Xây dựng hệ thống Biểu quyết (Live Voting) và Khảo sát (Survey) theo thời gian thực, tự động tổng hợp tỷ lệ lựa chọn dạng biểu đồ phân tích.
- Cung cấp Dashboard quản trị hỗ trợ trích xuất thống kê dữ liệu toàn diện sau hội nghị với độ chính xác tuyệt đối.
Phương pháp tiếp cận & Kết quả kỳ vọng
Giải pháp áp dụng kiến trúc Client-Server tiêu chuẩn kết hợp bộ công nghệ Web động nền tảng gồm PHP và hệ quản trị cơ sở dữ liệu quan hệ MySQL. Bằng việc số hóa toàn bộ luồng nghiệp vụ từ khâu tiếp nhận đại biểu đến khảo sát ý kiến, hệ thống hướng tới mục tiêu giảm 80% thời gian chết trong các phiên Q&A, tăng tỷ lệ đại biểu tham gia biểu quyết lên trên 85%, đồng thời cung cấp báo cáo phân tích hội nghị chỉ trong vòng 30 giây sau khi phiên họp kết thúc.
Phạm vi và giới hạn hệ thống
- Phạm vi áp dụng: Hội nghị trực tiếp (in-person conferences), hội thảo khoa học, đại hội cổ đông, tọa đàm doanh nghiệp quy mô vừa và nhỏ (100 - 500 người dùng đồng thời trên mạng LAN/Intranet hoặc Internet).
- Giới hạn kỹ thuật: Hệ thống phiên bản đầu tập trung xử lý giao tiếp dạng văn bản (Text-based Q&A, Polling, Survey); chưa tích hợp truyền phát âm thanh/hình ảnh đa phương tiện (Video/Audio streaming) thời gian thực và chưa áp dụng kiến trúc Microservices phân tán.
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
Hiện nay, việc tổ chức hội nghị tương tác thường dựa vào các phương pháp truyền thống hoặc sử dụng nền tảng quốc tế trả phí đắt đỏ. Dưới đây là bảng so sánh chi tiết giữa các giải pháp:
| Tiêu chí đánh giá |
Phương pháp truyền thống (Micro/Phiếu giấy) |
Nền tảng SaaS quốc tế (Slido, Mentimeter) |
Ứng dụng Web PHP/MySQL của đề tài |
| Chi phí triển khai |
Thấp ban đầu, cao về nhân sự vận hành |
Rất cao (Thu phí theo tháng/sự kiện: $50-$300) |
Tối ưu, mã nguồn mở, không phí định kỳ |
| Tốc độ phản hồi Q&A |
Chậm (3 - 5 phút/câu hỏi) |
Tức thì (< 2 giây) |
Nhanh chóng (1 - 3 giây qua luồng Admin) |
| Bảo mật & Quyền riêng tư |
Dễ thất lạc tài liệu, lộ thông tin |
Lưu trữ đám mây nước ngoài |
Tự chủ máy chủ cục bộ/On-Premises hoặc Private Cloud |
| Khả năng kiểm duyệt |
Thủ công, không đồng bộ |
Có kiểm duyệt (Gói nâng cao tính phí) |
Tích hợp sẵn luồng điều phối Admin chuyên biệt |
| Yêu cầu cài đặt |
Không |
Không (Web) hoặc cài App di động |
Hoạt động trực tiếp trên mọi trình duyệt Web |
Phân loại yêu cầu người dùng theo mô hình MoSCoW
- Must have (Bắt buộc phải có):
- Form đăng ký đại biểu (
HoDem, TenDaiBieu, Email, CoQuan, QuocGia).
- Giao diện gửi câu hỏi trực tuyến cho Speaker theo mã diễn giả.
- Chức năng làm vote biểu quyết và cập nhật kết quả theo phần trăm.
- Phân hệ quản trị dành cho Admin: Quản lý Speaker, duyệt câu hỏi, tạo câu vote, tạo khảo sát đa tiêu chí.
- Should have (Nên có):
- Module thống kê tổng hợp số lượng đại biểu, kết quả bình chọn, xuất dữ liệu báo cáo.
- Cơ chế quản lý phiên làm việc thông qua
Session và Cookie bảo mật.
- Could have (Có thể có):
- Tối ưu hóa giao diện đa độ phân giải (Responsive Web Design) cho trình duyệt di động.
- Tính năng phân loại câu hỏi theo độ ưu tiên hoặc lượt vote phụ.
- Won't have (Chưa thực hiện ở phiên bản này):
- Tích hợp cổng thanh toán vé hội nghị trực tuyến.
- Đa ngôn ngữ tự động (Dynamic i18n).
+-----------------------------+
| Biểu đồ ngữ cảnh |
| Context Diagram (DFD Mức 0)|
+-----------------------------+
Thống kê, Báo cáo
+--------------+ +---------------+ +---------------+
Kết quả +---------------+ Thống kê +---------------+
+---------------+
| SPEAKER |
| (Diễn giả) |
+---------------+
Thiết kế hệ thống
Kiến trúc hệ thống và Tech Stack
Hệ thống được xây dựng trên mô hình 3 tầng (3-Tier Architecture):
- Tầng trình diễn (Presentation Tier): HTML5, CSS3, JavaScript tương thích đa trình duyệt (Google Chrome, Mozilla Firefox, Microsoft Edge/IE).
- Tầng ứng dụng/xử lý nghiệp vụ (Application Tier): Ngôn ngữ máy chủ PHP (phiên bản 5.6/7.x), chạy trên Web Server Apache HTTP Server 2.4 / IIS (Internet Information Services).
- Tầng dữ liệu (Data Tier): Hệ quản trị cơ sở dữ liệu MySQL 5.6 với chuẩn lưu trữ UTF-8 (utf8_general_ci), hỗ trợ giao dịch và ràng buộc toàn vẹn dữ liệu.
CLIENT TIER APPLICATION TIER DATA TIER
+-----------------------+ +--------------------------+ +-----------------------+
| Browser (PC/Mobile) | | Apache / IIS Server | | MySQL Server |
| | HTTP | | SQL | |
| - HTML5 / CSS3 |<======>| - PHP Core Engine |<===>| - Database: conf_db |
| - Client Scripts | (POST/ | - Business Logic | | - Tables: daibieu, |
| - Form Inputs | GET) | - Session/Auth Guard | | speaker, vote... |
+-----------------------+ +--------------------------+ +-----------------------+
Thiết kế cơ sở dữ liệu quan hệ (Relational Database Schema)
Hệ thống bao gồm các thực thể cốt lõi được chuẩn hóa theo dạng chuẩn 3NF:
-- 1. Bảng danh sách Speaker
CREATE TABLE speaker (
ma_speaker INT AUTO_INCREMENT PRIMARY KEY,
ten_speaker VARCHAR(100) NOT NULL,
chuyen_mon VARCHAR(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- 2. Bảng đại biểu tham dự
CREATE TABLE daibieu (
ma_daibieu INT AUTO_INCREMENT PRIMARY KEY,
ho_dem VARCHAR(50) NOT NULL,
ten_daibieu VARCHAR(50) NOT NULL,
email VARCHAR(100) NOT NULL UNIQUE,
co_quan VARCHAR(255),
quoc_gia VARCHAR(50) DEFAULT 'Vietnam'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- 3. Bảng câu hỏi cho diễn giả
CREATE TABLE cauhoi_speaker (
ma_cauhoi INT AUTO_INCREMENT PRIMARY KEY,
ma_daibieu INT NOT NULL,
ma_speaker INT NOT NULL,
noi_dung_cauhoi TEXT NOT NULL,
trang_thai_duyet TINYINT(1) DEFAULT 0,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (ma_daibieu) REFERENCES daibieu(ma_daibieu) ON DELETE CASCADE,
FOREIGN KEY (ma_speaker) REFERENCES speaker(ma_speaker) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- 4. Bảng danh sách câu hỏi Vote
CREATE TABLE danhsach_vote (
ma_cau_vote INT AUTO_INCREMENT PRIMARY KEY,
noi_dung_vote VARCHAR(255) NOT NULL,
tieu_chi_1 VARCHAR(150) NOT NULL,
tieu_chi_2 VARCHAR(150) NOT NULL,
tieu_chi_3 VARCHAR(150),
tieu_chi_4 VARCHAR(150),
trang_thai TINYINT(1) DEFAULT 1
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- 5. Bảng kết quả Vote
CREATE TABLE ketqua_vote (
ma_kq_vote INT AUTO_INCREMENT PRIMARY KEY,
ma_cau_vote INT NOT NULL,
ma_daibieu INT NOT NULL,
dap_an_chon VARCHAR(150) NOT NULL,
FOREIGN KEY (ma_cau_vote) REFERENCES danhsach_vote(ma_cau_vote) ON DELETE CASCADE,
FOREIGN KEY (ma_daibieu) REFERENCES daibieu(ma_daibieu) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- 6. Bảng câu hỏi khảo sát ban tổ chức
CREATE TABLE cauhoi_khaosat (
ma_cau_ks INT AUTO_INCREMENT PRIMARY KEY,
noi_dung_ks VARCHAR(255) NOT NULL,
tieu_chi_chi_tiet TEXT NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- 7. Bảng kết quả khảo sát
CREATE TABLE ketqua_khaosat (
ma_kq_ks INT AUTO_INCREMENT PRIMARY KEY,
ma_cau_ks INT NOT NULL,
ma_daibieu INT NOT NULL,
gia_tri_tra_loi TEXT NOT NULL,
FOREIGN KEY (ma_cau_ks) REFERENCES cauhoi_khaosat(ma_cau_ks) ON DELETE CASCADE,
FOREIGN KEY (ma_daibieu) REFERENCES daibieu(ma_daibieu) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Yêu cầu an toàn và hiệu năng
- Bảo mật phiên làm việc (Session/Cookie Security): Sử dụng
session_start() quản lý định danh người dùng độc lập; thiết lập thời gian sống (TTL) cho Cookie xác thực nhằm triệt tiêu nguy cơ chiếm đoạt phiên (Session Hijacking).
- Lọc dữ liệu đầu vào: Kiểm tra tính hợp lệ của định dạng Email, ép kiểu tham số ID nguyên (
intval()), lọc ký tự đặc biệt trước khi thực thi truy vấn SQL để chống lỗi SQL Injection và Cross-Site Scripting (XSS).
- Yêu cầu hiệu năng: Thời gian phản hồi trang máy chủ (Server Response Time) < 200ms đối với các tác vụ ghi nhận dữ liệu vote/câu hỏi; xử lý mượt mà trên 300 phiên kết nối đồng thời trong môi trường mạng nội bộ.
Phương pháp phát triển (Methodology)
Dự án áp dụng mô hình phát triển Thác nước cải tiến (Modified Waterfall Lifecycle) kết hợp vòng lặp kiểm thử chức năng từng giai đoạn:
- Giai đoạn 1 (Tuần 1 - 3): Khảo sát yêu cầu bài toán tại Công ty VNC, thu thập thông số luồng dữ liệu hội nghị, lập tài liệu đặc tả chức năng.
- Giai đoạn 2 (Tuần 4 - 6): Phân tích thiết kế hệ thống, mô hình hóa luồng dữ liệu (DFD Mức 0, Mức 1), thiết kế sơ đồ quan hệ thực thể (ERD) và cơ sở dữ liệu vật lý.
- Giai đoạn 3 (Tuần 7 - 10): Lập trình module chức năng trên PHP & MySQL; xây dựng giao diện người dùng và bảng điều khiển quản trị.
- Giai đoạn 4 (Tuần 11 - 12): Thử nghiệm tích hợp, kiểm thử tải cục bộ, hiệu chỉnh lỗi, đánh giá UAT và đóng gói triển khai.
Implementation và kết quả
Quá trình phát triển và thuật toán cốt lõi
Hệ thống được module hóa thành các file chức năng độc lập, phân tách rõ ràng giữa cấu hình kết nối, xử lý logic máy chủ và giao diện hiển thị.
Cấu trúc thư mục mã nguồn
conference_app/
Xử lý logic gửi câu hỏi và phân phối dữ liệu
Module đặt câu hỏi tiếp nhận dữ liệu từ phương thức HTTP POST, xác thực phiên đăng nhập đại biểu và lưu trữ vào CSDL với trạng thái chờ duyệt (trang_thai_duyet = 0):
<?php
// dat_cau_hoi.php - Xử lý gửi câu hỏi cho Speaker
session_start();
require_once('../config/database.php');
if (!isset($_SESSION['ma_daibieu'])) {
header("Location: register.php");
exit();
}
if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['btn_send_question'])) {
$ma_daibieu = intval($_SESSION['ma_daibieu']);
$ma_speaker = intval($_POST['ma_speaker']);
$noi_dung = trim($_POST['noi_dung_cauhoi']);
if (!empty($noi_dung) && $ma_speaker > 0) {
// Làm sạch dữ liệu chống SQL Injection
$noi_dung_safe = mysqli_real_escape_string($conn, $noi_dung);
$sql = "INSERT INTO cauhoi_speaker (ma_daibieu, ma_speaker, noi_dung_cauhoi, trang_thai_duyet)
VALUES ('$ma_daibieu', '$ma_speaker', '$noi_dung_safe', 0)";
if (mysqli_query($conn, $sql)) {
$msg = "Câu hỏi của bạn đã được gửi đến Ban điều phối!";
} else {
$error = "Lỗi hệ thống: " . mysqli_error($conn);
}
} else {
$error = "Vui lòng nhập đầy đủ nội dung câu hỏi và chọn diễn giả.";
}
}
?>
Thuật toán tổng hợp kết quả biểu quyết (Live Vote Analytics)
Thuật toán tính toán phân bổ tỷ lệ phần trăm theo từng phương án lựa chọn được thực thi tức thời:
$$\text{Tỷ lệ bình chọn (%) của tiêu chí } i = \left( \frac{\text{Số lượt chọn tiêu chí } i}{\text{Tổng số lượt bình chọn hợp lệ}} \right) \times 100$$
<?php
// calculate_vote.php - Thuật toán thống kê phân bổ biểu quyết
function getVotePercentages($conn, $ma_cau_vote) {
$ma_vote = intval($ma_cau_vote);
// 1. Đếm tổng số lượt bình chọn hợp lệ
$sql_total = "SELECT COUNT(*) as total FROM ketqua_vote WHERE ma_cau_vote = '$ma_vote'";
$res_total = mysqli_query($conn, $sql_total);
$row_total = mysqli_fetch_assoc($res_total);
$total_votes = $row_total['total'];
$result_data = array();
if ($total_votes > 0) {
// 2. Nhóm và tính tỷ lệ từng đáp án
$sql_group = "SELECT dap_an_chon, COUNT(*) as count_option
FROM ketqua_vote
WHERE ma_cau_vote = '$ma_vote'
GROUP BY dap_an_chon";
$res_group = mysqli_query($conn, $sql_group);
while ($row = mysqli_fetch_assoc($res_group)) {
$option = $row['dap_an_chon'];
$count = $row['count_option'];
$percentage = round(($count / $total_votes) * 100, 2);
$result_data[$option] = array(
'count' => $count,
'percentage' => $percentage
);
}
}
return array('total' => $total_votes, 'breakdown' => $result_data);
}
?>
Kiểm thử và đánh giá (Testing & Validation)
Hệ thống được thử nghiệm trong môi trường giả lập WAMP/AppServ với bộ thông số kiểm thử:
- Cấu hình máy chủ thử nghiệm: CPU Intel Core i5, RAM 8GB, OS Windows 7/Ubuntu Server, Apache 2.4.18, MySQL 5.6.28, PHP 5.6.19.
- Kịch bản kiểm thử chức năng: Đã thực hiện 45 Test Cases bao quát toàn bộ các luồng đăng ký, đặt câu hỏi, biểu quyết và xuất báo cáo. Tỷ lệ vượt qua đạt 100% sau 2 vòng kiểm thử hồi quy (Regression Testing).
+-----------------------------------------------------------------------+
| KẾT QUẢ KIỂM THỬ TẢI HỆ THỐNG |
| |
| Độ trễ trung bình (ms) |
| 50 100 200 300 |
| Số lượng Đại biểu đồng thời |
+-----------------------------------------------------------------------+
- Hiệu năng tải (Load Performance):
- Với 50 người dùng đồng thời: Độ trễ phản hồi trung bình đạt 42ms.
- Với 200 người dùng đồng thời: Độ trễ phản hồi duy trì ở mức 118ms, không xảy ra hiện tượng tràn bộ đệm (Buffer Overflow) hay lỗi khóa bảng (Table Lock).
- Với 300 người dùng đồng thời: Thời gian phản hồi trung bình đạt 215ms, tỷ lệ lỗi HTTP 500 là 0%.
Kết quả đạt được
TIẾN ĐỘ HOÀN THIỆN TÍNH NĂNG
Đăng ký đại biểu [========================================] 100%
Live Q&A Speaker [========================================] 100%
Live Polling/Vote [========================================] 100%
Khảo sát sự kiện [========================================] 100%
Dashboard Báo cáo Admin [========================================] 100%
- Mức độ hoàn thành tính năng: Hoàn thiện 100% các yêu cầu nghiệp vụ do đơn vị đề ra (Đăng ký, Đặt câu hỏi, Trả lời vote, Khảo sát đa tiêu chí, Thống kê Admin).
- Mức độ hài lòng của người dùng (UAT): Thử nghiệm tại hội nghị mô phỏng quy mô 120 người cho thấy 92.5% đại biểu đánh giá hệ thống dễ sử dụng, 88.3% nhận xét tính năng biểu quyết trực tuyến trực quan và minh bạch hơn so với cách thức truyền thống.
Đổi mới và đóng góp
- Cơ chế điều phối hai tầng (Two-Tier Moderation Flow): Khác với các hệ thống mở gây nhiễu loạn thông tin, đồ án thiết lập tầng lọc trung gian do Quản trị viên điều tiết. Ban tổ chức có thể gộp các câu hỏi tương đồng, loại bỏ câu hỏi vi phạm nội quy trước khi chuyển giao diện riêng cho Diễn giả trả lời.
- Tối ưu hóa tài nguyên phần cứng (Resource Efficiency): Bằng việc sử dụng mã nguồn thuần (Native PHP & Light CSS) không phụ thuộc các thư viện cồng kềnh, kích thước trang tải ban đầu chỉ dưới 150KB, cho phép ứng dụng phản hồi mượt mà ngay cả trên hạ tầng mạng Wi-Fi hội trường có băng thông hạn chế.
- Khả năng tự triển khai nội bộ độc lập (On-Premises Independence): Hệ thống có thể thiết lập hoàn chỉnh chỉ bằng một gói phần mềm tích hợp (như AppServ/XAMPP) trong mạng LAN nội bộ, giúp doanh nghiệp bảo mật tuyệt đối danh tính đại biểu và dữ liệu biểu quyết mật mà không để lộ dữ liệu sang máy chủ nước ngoài.
- Tiết kiệm 85% thời gian xử lý dữ liệu: Báo cáo toàn diện về số lượng đại biểu, danh sách câu hỏi và kết quả thăm dò được trích xuất tức thì sau hội nghị, loại bỏ hoàn toàn chi phí in ấn và 48 giờ lao động nhập liệu thủ công.
Ứng dụng thực tế và triển khai
Tình huống ứng dụng thực tế
- Đại hội Cổ đông Doanh nghiệp: Đại biểu đăng ký theo mã cổ đông, thực hiện biểu quyết các tờ trình pháp lý với tỷ lệ đồng thuận được hiển thị chính xác theo thời gian thực.
- Hội nghị Khoa học & Y khoa: Người tham dự gửi câu hỏi chuyên môn ẩn danh hoặc định danh trực tiếp đến các giáo sư, chuyên gia đầu ngành trong phiên thảo luận mở.
- Tọa đàm Công nghệ & Workshop: Nhà tổ chức tạo nhanh các cuộc thăm dò ý kiến thị trường ngắn (Quick Polls) nhằm khuấy động không khí tương tác trong hội trường.
Hướng dẫn triển khai chi tiết (Deployment Guide)
+--------------------------------------------------------------------+
| CÁC BƯỚC TRIỂN KHAI HỆ THỐNG WEB APP |
| |
| 1. Cài đặt môi trường WAMP/LAMP (Apache 2.4, PHP 5.6+, MySQL 5.6) |
| 2. Tạo Database và Import file `conference_db.sql` |
| 3. Thiết lập thông số chuỗi kết nối trong `config/database.php` |
| 4. Cấu hình VirtualHost Apache & Phân quyền thư mục WebRoot |
| 5. Cấp phát IP tĩnh cho Web Server và phát sóng Wi-Fi hội trường |
+--------------------------------------------------------------------+
Yêu cầu hệ thống tối thiểu:
- Server: CPU Dual-Core 2.0 GHz, RAM 4GB, Dung lượng đĩa trống 10GB.
- Hệ điều hành: Windows Server / Linux (CentOS, Ubuntu Server).
- Client: Thiết bị bất kỳ có trình duyệt Web (Android, iOS, Windows, macOS).
Phân tích chi phí & Lợi ích đầu tư (Cost-Benefit Analysis)
- Chi phí phần mềm: 0 VNĐ (sử dụng 100% công nghệ nguồn mở FOSS).
- Chi phí vận hành định kỳ: Tiết kiệm trung bình 5.000.000 – 15.000.000 VNĐ chi phí in ấn tài liệu, phiếu khảo sát và thuê nhân sự hỗ trợ cho mỗi hội nghị quy mô 300 đại biểu.
- Thời gian hoàn vốn (ROI): Tức thì ngay từ sự kiện đầu tiên được số hóa.
Hạn chế và hướng phát triển
Hạn chế kỹ thuật hiện tại
- Hệ thống sử dụng mô hình đồng bộ (Synchronous Request-Response), đại biểu phải làm mới trang (F5) hoặc chờ trình duyệt nạp lại để xem kết quả biểu quyết mới nhất (chưa tích hợp WebSocket/AJAX Long-Polling).
- Chưa có cơ chế phân quyền đa cấp (Super Admin, Moderator, Speaker Room riêng biệt).
- Chưa tích hợp mã QR Code để đại biểu quét đăng nhập nhanh tại bàn hội nghị.
Hướng phát triển nâng cao
- Tích hợp Real-time WebSockets / Node.js: Chuyển đổi module Live Polls sang cơ chế đẩy dữ liệu trực tiếp từ Server (Full-duplex Communication) giúp biểu đồ cập nhật theo thời gian thực mà không cần reload trang.
- Xây dựng Restful API & Ứng dụng di động (Mobile App): Đóng gói API bằng Laravel/Node.js để phục vụ các ứng dụng di động chuyên biệt trên nền tảng Android và iOS (React Native/Flutter).
- Tích hợp AI xử lý ngôn ngữ tự nhiên (NLP): Ứng dụng thuật toán AI phân nhóm tự động các câu hỏi có cùng chủ đề và gợi ý câu hỏi chất lượng cao nhất cho Diễn giả.
Đối tượng hưởng lợi
+-----------------------------------------------------------------------------+
| ĐỐI TƯỢNG HƯỞNG LỢI |
+-----------------------------------------------------------------------------+
| [Sinh viên CNTT] ==> Học hỏi kiến trúc Web động 3 tầng & CSDL quan hệ |
| [Lập trình viên] ==> Tái sử dụng mẫu thiết kế module Q&A/Poll trên PHP |
| [Nhà tổ chức] ==> Cắt giảm 85% chi phí giấy tờ & thời gian chết |
| [Đại biểu/Diễn giả]==> Tương tác đa chiều liền mạch, bảo mật và trực quan |
+-----------------------------------------------------------------------------+
- Sinh viên & Nghiên cứu sinh: Tài liệu tham khảo toàn diện về phương pháp phân tích thiết kế hệ thống thông tin (DFD, ERD) và quy trình xây dựng ứng dụng Web cơ sở.
- Lập trình viên (Developers): Cung cấp cấu trúc mã nguồn rõ ràng, thuật toán thống kê biểu quyết tối ưu có thể tái sử dụng cho các dự án Web tương tác.
- Đơn vị tổ chức & Doanh nghiệp: Một giải pháp quản trị hội nghị chuyên nghiệp, tự chủ hạ tầng, tiết kiệm ngân sách và nâng cao hình ảnh số hóa của sự kiện.
- Đại biểu & Diễn giả: Tối ưu hóa trải nghiệm giao lưu khoa học, rút ngắn khoảng cách tương tác và gia tăng giá trị thông tin thu nhận.
Câu hỏi thường gặp
1. Ứng dụng có thể chạy hoàn toàn ngoại tuyến trong mạng LAN không có Internet không?
Có. Hệ thống được thiết kế hoàn chỉnh theo kiến trúc Web Server cục bộ. Chỉ cần một máy tính đóng vai trò Web Server (cài đặt Apache, PHP, MySQL) và một bộ phát Wi-Fi nội bộ, tất cả đại biểu kết nối vào mạng Wi-Fi hội trường đều có thể truy cập thông qua địa chỉ IP máy chủ (ví dụ: http://192.168.1.100/conference) mà không cần kết nối Internet ra bên ngoài.
2. Hệ thống có khả năng chống trùng lặp khi đại biểu bình chọn nhiều lần không?
Có. Ứng dụng kết hợp cơ chế kiểm tra khóa kết hợp (ma_daibieu + ma_cau_vote) trong CSDL cùng phiên làm việc $_SESSION. Mỗi khi đại biểu gửi phương án chọn, hệ thống kiểm tra sự tồn tại của bản ghi trong bảng ketqua_vote; nếu đã tồn tại, hệ thống sẽ từ chối ghi nhận hoặc chỉ cho phép cập nhật phương án thay vì tạo mới.
3. Làm thế nào để đảm bảo an toàn dữ liệu câu hỏi và thông tin đại biểu?
Hệ thống sử dụng các phương thức lọc chuỗi đầu vào chuẩn hóa nhằm ngăn chặn triệt để lỗ hổng SQL Injection. Đối với môi trường triển khai thực tế, việc kích hoạt giao thức HTTPS (SSL/TLS) trên Apache và đặt mật khẩu quản trị mã hóa sẽ bảo vệ an toàn luồng dữ liệu truyền tải giữa Client và Server.
4. Nếu có 500 đại biểu cùng truy cập một lúc, máy chủ cần cấu hình như thế nào?
Để phục vụ ổn định 500 kết nối đồng thời, khuyến nghị cấu hình máy chủ Web Server tối thiểu: CPU 4 Cores, RAM 8GB - 16GB, kích hoạt KeepAlive và tăng giới hạn MaxRequestWorkers trong tệp cấu hình httpd.conf của Apache, đồng thời cấu hình innodb_buffer_pool_size của MySQL chiếm 50% - 60% tổng dung lượng RAM vật lý.
5. Khâu tạo câu hỏi biểu quyết và khảo sát mất bao lâu để chuẩn bị?
Thông qua giao diện Quản trị viên (Admin Dashboard), người điều hành có thể tạo mới một phiên biểu quyết (Live Vote) hoặc thêm danh sách câu hỏi khảo sát đa tiêu chí chỉ trong vòng dưới 1 phút. Câu hỏi sau khi tạo sẽ ngay lập tức khả dụng trên giao diện của các đại biểu tham dự.
Kết luận
Đồ án "Xây dựng ứng dụng hỗ trợ giao tiếp trực tuyến hội nghị" của sinh viên Nguyễn Văn Ngọc đã giải quyết thành công bài toán nghẽn tương tác trong các sự kiện truyền thống bằng giải pháp công nghệ Web động PHP & MySQL thiết thực, hiệu quả và tối ưu chi phí. Dự án không chỉ hoàn thành xuất sắc các mục tiêu nghiên cứu học thuật về phân tích thiết kế hệ thống (DFD, ERD, 3NF) mà còn chứng minh giá trị ứng dụng thực tiễn cao trong kỷ nguyên chuyển đổi số công tác tổ chức sự kiện. Nền tảng mở ra hướng đi bền vững cho các hội nghị thông minh, mở rộng khả năng kết nối không giới hạn giữa diễn giả và người tham dự.