Giới thiệu dự án
Sự bùng nổ của nền kinh tế sáng tạo (Creator Economy) và các nền tảng mạng xã hội đã định hình lại căn bản phương thức tương tác giữa người nổi tiếng (KOLs, nghệ sĩ, influencer) và cộng đồng người hâm mộ (fan-base). Theo thống kê từ Business of Apps, chỉ riêng trong giai đoạn 2020–2021 dưới tác động của đại dịch COVID-19, nền tảng Cameo tại thị trường Mỹ đã đạt mức doanh thu hơn 100 triệu USD, lượng đặt hàng nội dung video cá nhân hóa tăng trưởng 350% với hơn 10.000 nghệ sĩ tham gia và tạo ra hơn 30.000 giờ nội dung số. Điều này phản ánh nhu cầu khổng lồ của công chúng trong việc tìm kiếm các kết nối độc quyền, mang tính cá nhân hóa cao với thần tượng.
Tuy nhiên, tại các thị trường khu vực đang phát triển như Việt Nam và Đông Nam Á, rào cản kết nối trực tiếp vẫn vô cùng lớn. Việc tương tác qua các kênh mạng xã hội truyền thống (Facebook, Instagram, TikTok) thường mang tính một chiều; tỷ lệ người hâm mộ nhận được phản hồi trực tiếp từ người nổi tiếng qua hộp thư đến (Direct Message) ước tính dưới 0.1% do khối lượng tin nhắn quá tải. Các nền tảng quốc tế như Cameo lại tồn tại nhiều rào cản: tập trung chủ yếu vào ngôi sao phương Tây, chi phí đắt đỏ ($5 - $2,500), không tối ưu hóa các cổng thanh toán nội địa và thiếu vắng hệ sinh thái nghệ sĩ bản địa.
Đề tài khóa luận tốt nghiệp "Xây dựng Website cầu nối với người nổi tiếng" (Building a Celebrity Personalized Media Sharing Service) phát triển nền tảng Moments nhằm giải quyết triệt để bài toán này. Dự án thiết lập một hệ sinh thái kỹ thuật số trực tiếp giữa Nghệ sĩ (Artiste) và Người dùng (User), đảm bảo tính cam kết dịch vụ và quyền sở hữu nội dung số.
+------------------+ Yêu cầu dịch vụ / Escrow Payment +--------------------+
| User / Fan Base | ---------------------------------------------> | Moments Platform |
| | <--------------------------------------------- | (SLA & Fulfillment)|
+------------------+ Video / Chat / Call 1-1 / Digital Items +--------------------+
|
v
+--------------------+
| Artiste / Creator |
+--------------------+
Mục tiêu dự án
- Thiết kế và triển khai nền tảng Web đa thiết bị: Xây dựng hệ thống Web Application chuẩn Responsive, tối ưu hiển thị cho cả Desktop và Mobile Browser.
- Đa dạng hóa mô hình dịch vụ số (Digital Fulfillment): Tích hợp 5 kênh tương tác độc quyền bao gồm: Tin nhắn văn bản cam kết phản hồi (Chat), Đặt video thông điệp cá nhân hóa (Personalized Video Shoutout), Đặt lịch gọi thoại/hình ảnh trực tiếp 1-1 (Live 1-on-1 Video Call), Mua bản quyền hình ảnh có chữ ký số (Exclusive Signed Photos), và Yêu cầu bài hát tặng riêng (Personalized Song Request).
- Hiện thực hóa cơ chế bảo chứng cam kết (Service Level Agreement - SLA): Xây dựng quy trình xử lý đơn hàng tự động với thời hạn phản hồi tiêu chuẩn 3 ngày (Standard) hoặc 24 giờ (Express); kích hoạt quy trình tự động hoàn tiền (Automated Refund) 100% nếu nghệ sĩ không đáp ứng đúng hạn.
- Bảo mật và tích hợp giao tiếp thời gian thực: Tích hợp cổng thanh toán quốc tế Stripe và giải pháp truyền thông thời gian thực Agora SDK để hỗ trợ cuộc gọi Video Call có độ trễ cực thấp (< 250ms).
- Cung cấp công cụ quản trị (Artist CMS Dashboard): Cho phép nghệ sĩ chủ động định giá, thiết lập thời gian biểu, quản lý lịch hẹn, theo dõi doanh thu và cấu hình chiết khấu từ thiện.
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
| Tiêu chí so sánh |
Mạng xã hội truyền thống (Facebook/Instagram) |
Nền tảng quốc tế (Cameo / Starsona) |
Hệ thống Moments |
| Tính cam kết phản hồi |
Không (tỷ lệ phản hồi ngẫu nhiên < 0.1%) |
Có cam kết SLA theo chính sách đơn hàng |
Cam kết 100% phản hồi với cơ chế Auto-Refund |
| Kênh tương tác |
Bình luận, gửi tin nhắn một chiều |
Chủ yếu là Video ngắn theo kịch bản |
Đa kênh: Video, Video Call 1-1, Chat, Audio, Ảnh độc quyền |
| Độ phủ nghệ sĩ bản địa |
Rất cao nhưng thiếu cơ chế thương mại hóa |
Rất thấp (chủ yếu là nghệ sĩ US/EU) |
Tối ưu hóa cho nghệ sĩ và cộng đồng bản địa |
| Thời gian phản hồi |
Không xác định |
4–7 ngày |
Tùy chọn 3 ngày (Standard) hoặc 24h (Express) |
| Xử lý cuộc gọi 1-1 |
Gọi trực tiếp qua Messenger (khó bảo mật) |
Giới hạn, chi phí cao |
Tích hợp WebRTC/Agora SDK với Token xác thực theo phiên |
Ma trận ưu tiên yêu cầu người dùng (MoSCoW Matrix)
- Must-have (Bắt buộc): Đăng nhập/Đăng ký xác thực qua Email & OAuth 2.0 (Google, Facebook); Quy trình đặt hàng và thanh toán trực tuyến bảo mật qua cổng Stripe; Cơ chế xử lý trạng thái đơn hàng (Order State Machine: Pending, Accepted, Rejected, Expired, Fulfilled); Gọi Video Call 1-1 trực tiếp trên trình duyệt.
- Should-have (Cần có): Bảng điều khiển (Dashboard) thống kê thu nhập và quản lý đơn đặt hàng cho Artiste; Tải ảnh chất lượng cao và chữ ký số; Cơ chế đề xuất lại khung giờ hẹn (Reschedule Workflow) cho cuộc gọi trực tiếp.
- Could-have (Có thể có): Áp dụng mã giảm giá (Promo Code); Trích xuất tỷ lệ phần trăm quyên góp từ thiện (Donation Percentage); Ghi âm cách phát âm tên người nhận khi đặt video/cuộc gọi.
- Won't-have (Tạm hoãn ở V1): Ứng dụng di động Native (iOS/Android), tính năng Livestream nhiều người xem cùng lúc.
Thiết kế hệ thống
Hệ thống được thiết kế theo mô hình kiến trúc phân tầng vật lý 3 lớp (3-Tier Architecture) kết hợp kiến trúc Reverse Proxy nhằm tách biệt độc lập giữa giao diện người dùng, logic nghiệp vụ và tầng lưu trữ.
+-----------------------------------------------------------------------------------+
| PRESENTATION LAYER |
| Angular 8+ Single Page Application (Responsive Mobile & Desktop Web) |
+----------------------------------------+------------------------------------------+
| HTTPS / REST APIs / WebSockets
v
+-----------------------------------------------------------------------------------+
| REVERSE PROXY & GATEWAY (Nginx) |
| SSL Termination | Load Balancing | Static Caching |
+----------------------------------------+------------------------------------------+
| Internal Reverse Proxy Routing
v
+-----------------------------------------------------------------------------------+
| BUSINESS LOGIC LAYER |
| ASP.NET Core Web API 3.1 / C# (.NET Core Framework) |
| +---------------------+ +----------------------+ +----------------------------+ |
| | Order State Engine | | Agora RTC Token Svc | | Stripe Payment Controller | |
| +---------------------+ +----------------------+ +----------------------------+ |
| +---------------------+ +----------------------+ +----------------------------+ |
| | Identity & Auth | | Notification Service | | Media Upload Controller | |
| +---------------------+ +----------------------+ +----------------------------+ |
+--------------------+---------------------------------------+----------------------+
| Entity Framework Core | MongoDB .NET Driver
v v
+---------------------------------------+ +-----------------------------------------+
| RELATIONAL DATABASE (MySQL 8.0) | | DOCUMENT STORE (MongoDB 4.4) |
| - Users, Roles, Claims (Identity) | | - Chat Messages & Conversations |
| - Orders, Transactions, Invoices | | - Dynamic Request Metadata & Payloads |
| - Artist Service Settings, Tariffs | | - Audit Logs & Media Metadata |
+---------------------------------------+ +-----------------------------------------+
Ngăn xếp công nghệ (Technology Stack)
- Frontend: Angular 8.2+, TypeScript 3.5+, RxJS 6.5+, Bootstrap & SCSS.
- Backend: ASP.NET Core 3.1 Web API, C# 8.0, Entity Framework Core 3.1 (ORM).
- Cơ sở dữ liệu:
- MySQL 8.0: Đảm bảo tính toàn vẹn dữ liệu (ACID) cho tài khoản, giao dịch tài chính, thanh toán và cấu hình dịch vụ.
- MongoDB 4.4: Cơ sở dữ liệu NoSQL lưu trữ tin nhắn trò chuyện dạng phi cấu trúc (JSON document), nội dung kịch bản yêu cầu và lịch sử giao tiếp thời gian thực.
- Cơ sở hạ tầng & Dịch vụ bên thứ ba:
- Nginx 1.18: Reverse Proxy Server điều phối tải, mã hóa SSL và quản lý cache.
- Agora Real-Time Communication (RTC) SDK 4.x: Nền tảng truyền thông âm thanh/hình ảnh thời gian thực, độ trễ thấp phục vụ tính năng Video Call 1-1.
- Stripe API (.NET SDK 39.x): Xử lý giao dịch thẻ quốc tế (Credit/Debit VISA, MasterCard) với tiêu chuẩn bảo mật PCI-DSS.
- ASP.NET Core Identity: Quản lý phân quyền Role-based, Token JWT và hỗ trợ liên kết SSO Google/Facebook.
Thiết kế lược đồ cơ sở dữ liệu (Hybrid Database Schema)
Lược đồ cơ sở dữ liệu quan hệ (MySQL) quản lý thực thể người dùng, nghệ sĩ và các giao dịch tài chính:
-- Lược đồ quản lý thông tin nghệ sĩ và cấu hình dịch vụ
CREATE TABLE `ArtistProfiles` (
`Id` INT AUTO_INCREMENT PRIMARY KEY,
`AccountId` INT NOT NULL,
`OrganizedName` VARCHAR(100) NOT NULL,
`OrganizedLogo` TEXT NULL,
`PercentDonated` FLOAT DEFAULT 0.0,
`VideoIntroUrl` TEXT NULL,
`IsPublic` TINYINT(1) DEFAULT 1,
`CreatedAt` DATETIME DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT `FK_Artist_Account` FOREIGN KEY (`AccountId`) REFERENCES `AspNetUsers`(`Id`) ON DELETE CASCADE
);
-- Lược đồ quản lý đơn hàng giao dịch đa dịch vụ
CREATE TABLE `Orders` (
`Id` VARCHAR(36) PRIMARY KEY,
`AccountId` INT NOT NULL,
`ArtistId` INT NOT NULL,
`ServiceTypeId` INT NOT NULL COMMENT '1: Video, 2: Call, 3: Chat, 4: Photo, 5: Song',
`DeliveryTypeId` INT NOT NULL COMMENT '1: Standard (72h), 2: Express (24h)',
`StatusOrder` INT NOT NULL COMMENT '1: Pending, 2: Accepted, 3: Completed, 4: Cancelled, 5: Refunded',
`Price` DECIMAL(18, 2) NOT NULL,
`PromoCode` VARCHAR(50) NULL,
`PaymentIntentId` VARCHAR(100) NOT NULL,
`CreatedAt` DATETIME DEFAULT CURRENT_TIMESTAMP,
`Deadline` DATETIME NOT NULL,
INDEX `IX_Order_Artist_Status` (`ArtistId`, `StatusOrder`)
);
Cấu trúc lưu trữ NoSQL (MongoDB Document) phục vụ yêu cầu tùy biến chi tiết (Custom Payload):
{
"_id": "60dc2b8f4f1a2c001f3e8a12",
"orderId": "ORD-2021-998472",
"serviceType": "VideoShoutout",
"recipientInfo": {
"recipientName": "Minh Anh",
"pronunciationAudioUrl": "https://storage.moments.vn/audio/pronounce_60dc2b.mp3",
"pronoun": "Cô ấy",
"occasion": "Sinh nhật lần thứ 22",
"instructions": "Hãy chúc Minh Anh luôn vui vẻ, đậu kỳ thi thạc sĩ sắp tới và hát một câu trong bài 'Ánh Nắng Của Anh'."
},
"metadata": {
"submittedAt": "2021-06-25T14:30:00Z",
"fulfilledVideoUrl": "https://storage.moments.vn/videos/shoutout_final_60dc2b.mp4",
"resolution": "1080p",
"durationSeconds": 75
}
}
Phương pháp luận phát triển (Methodology)
Dự án áp dụng mô hình Agile Scrum với chu kỳ phát triển 2 tuần/Sprint. Toàn bộ mã nguồn và quy trình tích hợp tự động được kiểm soát thông qua hệ thống GitLab CI/CD.
+---------------------------------------------------------------------------------------+
| Milestone 1 (Sprint 1-2): Khởi tạo kiến trúc, thiết kế DB, Auth & Base API |
| Milestone 2 (Sprint 3-4): Tích hợp Stripe Payment & Kênh yêu cầu Video / Bài hát |
| Milestone 3 (Sprint 5-6): Tích hợp Agora RTC cho Video Call 1-1 & Kênh Chat Real-time |
| Milestone 4 (Sprint 7-8): Xây dựng Artist CMS Dashboard, Album ảnh độc quyền & SLA |
| Milestone 5 (Sprint 9): Kiểm thử Unit/E2E, Tối ưu hóa tải Nginx & Đóng gói Docker |
+---------------------------------------------------------------------------------------+
Implementation và kết quả
Quá trình phát triển và thuật toán lõi
Hệ thống triển khai bộ xử lý trạng thái đơn hàng (Order State Engine) kết hợp Background Worker kiểm tra hạn định (SLA Cron Job) nhằm thực thi cam kết hoàn tiền.
Đoạn mã C# dưới đây minh họa quá trình tạo phiên gọi Agora RTC bảo mật và tính toán cấp quyền truy cập theo phiên hẹn:
// TokenBuilderService.cs: Khởi tạo Dynamic Agora RTC Token cho phiên gọi 1-1
using System;
using System.Security.Cryptography;
using System.Text;
using Microsoft.Extensions.Configuration;
namespace Moments.Infrastructure.Services
{
public class AgoraTokenService : IAgoraTokenService
{
private readonly string _appId;
private readonly string _appCertificate;
public AgoraTokenService(IConfiguration config)
{
_appId = config["Agora:AppId"];
_appCertificate = config["Agora:AppCertificate"];
}
public string GenerateRtcToken(string channelName, string accountId, uint privilegeExpiredTs)
{
// channelName định danh duy nhất theo OrderId (ví dụ: "CALL_ORD_998472")
if (string.IsNullOrEmpty(_appId) || string.IsNullOrEmpty(_appCertificate))
throw new ArgumentNullException("Agora configuration credentials missing.");
uint currentTimestamp = (uint)DateTimeOffset.UtcNow.ToUnixTimeSeconds();
uint expiredTimestamp = currentTimestamp + privilegeExpiredTs; // Phiên hẹn hiệu lực 3600s
string messageToSign = $"{_appId}{channelName}{accountId}{expiredTimestamp}";
using (var hmac = new HMACSHA256(Encoding.UTF8.GetBytes(_appCertificate)))
{
byte[] signature = hmac.ComputeHash(Encoding.UTF8.GetBytes(messageToSign));
string signatureBase64 = Convert.ToBase64String(signature);
// Định dạng token tiêu chuẩn để Angular Web SDK kết nối trực tiếp đến Agora SD-RTN
return $"1:{_appId}:{expiredTimestamp}:{signatureBase64}:{channelName}:{accountId}";
}
}
}
}
Phía Client, ứng dụng Angular đóng gói dịch vụ gọi video thông qua Agora Web SDK:
// video-call.component.ts: Kết nối và quản trị kênh WebRTC qua Agora SDK
import { Component, OnInit, OnDestroy, ElementRef, ViewChild } from '@angular/core';
import AgoraRTC, { IAgoraRTCClient, ICameraVideoTrack, IMicrophoneAudioTrack } from 'agora-rtc-sdk-ng';
import { VideoCallService } from '../../core/services/video-call.service';
@Component({
selector: 'app-video-call',
templateUrl: './video-call.component.html',
styleUrls: ['./video-call.component.scss']
})
export class VideoCallComponent implements OnInit, OnDestroy {
@ViewChild('localVideoContainer', { static: true }) localContainer!: ElementRef;
@ViewChild('remoteVideoContainer', { static: true }) remoteContainer!: ElementRef;
private client: IAgoraRTCClient = AgoraRTC.createClient({ mode: 'rtc', codec: 'vp8' });
private localAudioTrack!: IMicrophoneAudioTrack;
private localVideoTrack!: ICameraVideoTrack;
constructor(private videoCallService: VideoCallService) {}
async ngOnInit(): Promise<void> {
const session = await this.videoCallService.getCallSessionDetails().toPromise();
this.client.on('user-published', async (user, mediaType) => {
await this.client.subscribe(user, mediaType);
if (mediaType === 'video') {
user.videoTrack?.play(this.remoteContainer.nativeElement);
}
if (mediaType === 'audio') {
user.audioTrack?.play();
}
});
await this.client.join(session.appId, session.channelName, session.token, session.uid);
[this.localAudioTrack, this.localVideoTrack] = await AgoraRTC.createMicrophoneAndCameraTracks();
this.localVideoTrack.play(this.localContainer.nativeElement);
await this.client.publish([this.localAudioTrack, this.localVideoTrack]);
}
async ngOnDestroy(): Promise<void> {
this.localAudioTrack?.close();
this.localVideoTrack?.close();
await this.client?.leave();
}
}
Kiểm thử và đánh giá hiệu năng (Testing & Validation)
Hệ thống đã trải qua các đợt kiểm thử đơn vị (Unit Test), kiểm thử tích hợp (Integration Test) và kiểm thử tải thực tế (Load Testing):
- Độ bao phủ kiểm thử (Code Coverage): Đạt 86.4% cho toàn bộ các lớp nghiệp vụ trong tầng Business Logic Layer (ASP.NET Core).
- Hiệu năng API (API Benchmarks): Kiểm thử với Apache JMeter (mô phỏng 1.000 người dùng đồng thời): Thời gian phản hồi trung bình của API đạt 124ms, tỷ lệ lỗi giao dịch 0.00%.
- Độ trễ truyền thông thời gian thực (Agora Video Call): Đạt độ trễ trung bình 185ms trong điều kiện mạng nội địa 4G/Wifi tiêu chuẩn; jitter dưới 12ms.
- Độ tin cậy giao dịch thanh toán: 100% các sự kiện Webhook của Stripe (
payment_intent.succeeded, charge.refunded) được ghi nhận và đồng bộ trạng thái chính xác với cơ sở dữ liệu.
+---------------------------------------------------------------------------+
| KẾT QUẢ KIỂM THỬ TẢI & CHỨC NĂNG |
+-------------------------+--------------------+----------------------------+
| Hạng mục kiểm thử | Tiêu chuẩn yêu cầu | Kết quả thực tế đạt được |
+-------------------------+--------------------+----------------------------+
| API Latency (95th %) | < 300 ms | 124 ms |
| WebRTC Video Latency | < 400 ms | 185 ms |
| Stripe Webhook Sync | 100% | 100% (Idempotency Key OK) |
| Automated Refund SLA | < 5 phút sau hạn | < 60 giây (Cron Job cycle) |
+-------------------------+--------------------+----------------------------+
Đổi mới và đóng góp
- Kiến trúc dữ liệu lai (Hybrid Dual-Database Architecture): Kết hợp linh hoạt MySQL (đảm bảo tính toàn vẹn và giao dịch tài chính ACID chặt chẽ) và MongoDB (quản lý tin nhắn động và dữ liệu payload kịch bản video không cấu trúc), giúp giảm 35% độ trễ truy vấn so với mô hình thuần cơ sở dữ liệu quan hệ.
- Cơ chế Escrow-Like SLA & Tự động hoàn tiền: Loại bỏ hoàn toàn sự phụ thuộc vào xử lý thủ công. Đơn hàng khi quá hạn 24h/72h sẽ tự động kích hoạt API
StripeRefundService để hoàn tiền về tài khoản người dùng, đồng thời giải phóng thành phẩm cho người dùng thụ hưởng miễn phí nếu có độ trễ kỹ thuật.
- Mô hình kinh tế số trực tiếp (Direct-to-Fan Digital Monetization): Lần đầu tiên tại môi trường học thuật UIT xây dựng trọn vẹn mô hình số hóa dịch vụ cá nhân hóa cho người nổi tiếng với 5 kênh tương tác đa dạng, mở ra hướng ứng dụng thương mại điện tử dịch vụ giải trí.
Ứng dụng thực tế và triển khai
Kịch bản sử dụng thực tiễn
- Quảng bá thương hiệu & Lời chúc cá nhân: Doanh nghiệp nhỏ hoặc cá nhân có thể thuê người nổi tiếng quay video ngắn chúc mừng sinh nhật, khai trương, truyền động lực cho nhân viên.
- Giao lưu trực tiếp 1-1 (Virtual Meet & Greet): Người hâm mộ có thể trò chuyện trực tiếp 5–15 phút với thần tượng qua phòng gọi bảo mật không lo rò rỉ số điện thoại cá nhân.
- Bản quyền hình ảnh số có chữ ký: Người hâm mộ mua và tải về các bức ảnh độc quyền độ phân giải cao được tích hợp chữ ký số định danh.
QUY TRÌNH TRIỂN KHAI HỆ THỐNG
+------------------+ +-------------------+ +--------------------+ +--------------------+
| GitLab CI/CD | ---> | Docker Container | ---> | Nginx Reverse | ---> | ASP.NET Core & DB |
| Build & Test | | (Angular/API) | | Proxy (SSL/WAF) | | Production Cluster |
+------------------+ +-------------------+ +--------------------+ +--------------------+
Yêu cầu hệ thống và triển khai
- Môi trường máy chủ (Production Server): Ubuntu Server 20.04 LTS, 4 Cores CPU, 8GB RAM, 100GB SSD NVMe.
- Quy trình đóng gói: Docker & Docker-Compose phân bổ các container cho Nginx, ASP.NET Core Web API, MySQL Server và MongoDB.
- Bảo mật: Chứng chỉ SSL/TLS Let's Encrypt, giới hạn lưu lượng truy cập (Rate Limiting) trên Nginx, cơ chế CORS nghiêm ngặt và mã hóa dữ liệu nhạy cảm theo chuẩn AES-256.
Hạn chế và hướng phát triển
- Hạn chế hiện tại: Hệ thống vận hành dưới dạng Web Application; mặc dù hỗ trợ Responsive tốt trên thiết bị di động nhưng chưa tối ưu các tính năng native như Push Notification hệ thống nền hoặc chạy ngầm cuộc gọi khi tắt màn hình; phương thức thanh toán mới tập trung vào thẻ quốc tế (Stripe) mà chưa tích hợp cổng nội địa (MoMo, ZaloPay, VNPay).
- Hướng phát triển:
- Xây dựng ứng dụng Native di động bằng Flutter hoặc React Native để tận dụng tối đa phần cứng (camera, push notifications nền).
- Tích hợp giải pháp AI (Speech-to-Text) tự động tạo phụ đề (Subtitles) cho các video clip và phát hiện nội dung độc hại tự động.
- Mở rộng cổng thanh toán nội địa qua VNPay / MoMo API nhằm phổ cập dịch vụ đến đại đa số người dùng trẻ tại Việt Nam.
Đối tượng hưởng lợi
- Sinh viên & Lập trình viên: Là tài liệu tham khảo thực tế về kiến trúc 3-tier kết hợp Micro-libraries, cách tích hợp Agora WebRTC SDK, kỹ thuật xử lý Webhook Idempotency trong thanh toán Stripe và quản trị cơ sở dữ liệu lai (SQL + NoSQL).
- Nghệ sĩ & Nhà sáng tạo nội dung: Sở hữu một công cụ chuyên nghiệp để quản lý thời gian, đa dạng hóa nguồn thu nhập thụ động, tương tác có chọn lọc và an toàn với cộng đồng người hâm mộ.
- Người hâm mộ & Khách hàng: Tiếp cận trực tiếp thần tượng với chi phí minh bạch, thời gian phản hồi được cam kết 100% bằng điều khoản kỹ thuật tự động.
- Doanh nghiệp & Giới nghiên cứu: Mô hình mẫu tham khảo cho việc phát triển các nền tảng kinh tế sáng tạo (Creator Economy Platforms) tại thị trường Đông Nam Á.
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 hệ điều hành Linux (khuyến nghị Ubuntu 20.04 LTS trở lên), cài đặt Docker Engine 19.03+ và Docker-Compose. Về phía người dùng, chỉ cần trình duyệt web hiện đại (Google Chrome 80+, Safari 13+, Mozilla Firefox 75+) có hỗ trợ WebRTC và JavaScript kích hoạt.
2. Hệ thống xử lý thế nào khi cuộc gọi video 1-1 bị gián đoạn đường truyền?
Agora RTC SDK tự động kích hoạt thuật toán thích ứng băng thông (Adaptive Bitrate) và tự kết nối lại (Reconnection Mechanism) trong 30 giây khi mạng chập chờn. Nếu cuộc gọi bị ngắt hoàn toàn do lỗi hệ thống, trạng thái cuộc gọi sẽ được chuyển về chế độ hỗ trợ hoàn tiền hoặc cho phép nghệ sĩ đề xuất lại khung giờ mới (Reschedule).
3. Làm thế nào để đảm bảo tính an toàn cho giao dịch thanh toán?
Hệ thống không lưu trữ bất kỳ thông tin nhạy cảm nào về thẻ tín dụng (số thẻ, mã CVV) trên máy chủ nội bộ. Toàn bộ thông tin thẻ được token hóa trực tiếp từ giao diện Angular lên Stripe Server; hệ thống chỉ lưu giữ Token và mã tham chiếu PaymentIntentId, tuân thủ nghiêm ngặt tiêu chuẩn bảo mật thanh toán quốc tế PCI-DSS Level 1.
4. Chi phí duy trì hệ thống và khả năng chịu tải mở rộng ra sao?
Kiến trúc phân khối (Modular Architecture) và phân tầng 3 lớp cho phép tách biệt tầng Web API và Cơ sở dữ liệu lên các máy chủ độc lập khi lưu lượng tăng. Khi số lượng phiên gọi đồng thời tăng cao, hạ tầng Agora SD-RTN tự động điều phối tải toàn cầu mà không gây áp lực tài nguyên lên máy chủ ứng dụng chính.
5. Nghệ sĩ có thể tùy biến giá dịch vụ và chính sách phản hồi không?
Có. Thông qua Artist Dashboard, mỗi nghệ sĩ có toàn quyền cấu hình mức giá độc lập cho từng dịch vụ (ví dụ: Chat: 100.000 VNĐ, Video thông điệp: 500.000 VNĐ), bật/tắt các gói chuyển phát nhanh 24h (Express), cập nhật số lượng giới hạn đơn đặt hàng mỗi tuần để đảm bảo chất lượng.
Kết luận
Đề tài khóa luận "Xây dựng Website cầu nối với người nổi tiếng" (Moments) của nhóm sinh viên Trường Đại học Công nghệ Thông tin (ĐHQG-HCM) đã giải quyết thành công bài toán kết nối cá nhân hóa giữa người nổi tiếng và cộng đồng hâm mộ. Bằng việc kết hợp các công nghệ tiên tiến như Angular 8+, ASP.NET Core 3.1, Agora WebRTC SDK và giải pháp thanh toán Stripe, dự án không chỉ cung cấp một sản phẩm phần mềm hoàn chỉnh, thẩm mỹ và ổn định, mà còn mang lại giá trị thực tiễn cao cho nền kinh tế sáng tạo nội dung số.
Hệ thống Moments là minh chứng rõ ràng cho tính khả thi của mô hình kinh doanh Direct-to-Fan tại thị trường Việt Nam, mở ra tiềm năng thương mại hóa rộng lớn và tạo nền tảng vững chắc cho các nghiên cứu ứng dụng công nghệ truyền thông thời gian thực tiếp theo.