Tran Manh Tuan

Beacon-based Content Delivery Platform

Đây là dự án freelance tôi tham gia trong giai đoạn 2023–2024, với trách nhiệm chính là xây dựng, phát triển và duy trì backend/API, đồng thời hỗ trợ triển khai và vận hành các thành phần cloud liên quan.

Dấu ấn về quy mô: hệ thống thống kê theo giờ từng ghi nhận 761.921 lượt kết nối thiết bị trong một giờ. Mỗi kết nối đi vào luồng xác định campaign và nội dung quảng cáo phù hợp theo ngữ cảnh beacon, lịch phân phối và các điều kiện targeting.

Bài toán hệ thống

Nền tảng phục vụ nhiều doanh nghiệp trên cùng một hệ thống. Admin console quản lý account, người dùng và phân quyền; ứng dụng tích hợp; địa điểm, beacon và tag; nội dung offer, quảng cáo và notification; campaign, lịch chạy, tần suất và tập người dùng mục tiêu.

Ở phía người dùng cuối, SDK trong mobile app phát hiện tín hiệu BLE/iBeacon rồi gọi API. Backend xác thực ngữ cảnh ứng dụng, tìm các campaign đang hoạt động, áp dụng điều kiện phân phối, trả nội dung phù hợp và ghi nhận sự kiện để phục vụ giám sát và phân tích.

Vai trò và đóng góp chính

  • Phát triển và bảo trì admin backend bằng PHP cùng API thời gian thực bằng Java + Play Framework.
  • Mở rộng luồng quản lý đa tenant cho account, quyền truy cập, ứng dụng, beacon, nội dung và campaign.
  • Duy trì logic đối chiếu campaign theo thời gian, nền tảng thiết bị, tần suất và targeting.
  • Điều tra sự cố xuyên suốt admin, API, MySQL, cache và runtime; ưu tiên thay đổi an toàn và giữ tương thích với các SDK/API consumer đang hoạt động.
  • Hỗ trợ vận hành hạ tầng cloud có load balancing, managed database, Memcached và pipeline dữ liệu phân tích sang BigQuery.

Kiến trúc hệ thống

Nền tảng nội dung beacon — kiến trúc hệ thốngĐội vận hành dùng admin backend PHP, lưu account, ứng dụng và campaign trong MySQL. Ứng dụng di động phát hiện tín hiệu BLE hoặc iBeacon rồi gọi API Java Play; API xác thực request và chuyển cho bước đối chiếu campaign theo lịch, tần suất và targeting. Bước đối chiếu dùng Memcached cho dữ liệu tra cứu nóng và MySQL cho dữ liệu campaign, trả nội dung về ứng dụng và đẩy sự kiện phân phối vào pipeline sự kiện và thống kê, nguồn cho báo cáo BigQuery. Mọi thành phần server chạy trong môi trường cloud có load balancing. Mức cao nhất ghi nhận là 761.921 lượt kết nối thiết bị trong một giờ.

Môi trường cloud có load balancing

nội dung

Đội ngũ vận hành
quản lý campaign và nội dung

Mobile app + SDK
phát hiện BLE/iBeacon

Admin backend PHP
vận hành đa tenant

API Java + Play
xác thực và xử lý request

Đối chiếu campaign
lịch · tần suất · targeting

Memcached
dữ liệu tra cứu nóng

MySQL / managed DB
account · app · campaign

Pipeline sự kiện + thống kê
delivery · click · device

BigQuery / báo cáo
phân tích vận hành

Mức tải cao nhất ghi nhận
761.921 lượt kết nối / giờ

Sơ đồ vừa khung

Sơ đồ được dựng lại ở cấp độ thành phần để mô tả trách nhiệm backend và dữ liệu, không công khai host nội bộ, repository hay chi tiết triển khai độc quyền.

Luồng phân phối quảng cáo

Luồng phân phối quảng cáo qua beaconSDK di động phát hiện beacon, tạo API request kèm ngữ cảnh app, thiết bị và beacon, xác thực tenant và ứng dụng, tìm các campaign đang chạy tại beacon hoặc địa điểm đó, áp dụng luật phân phối theo khung giờ, nền tảng, tần suất và target, chọn offer, quảng cáo hoặc notification, trả về cho app hiển thị, ghi nhận sự kiện phân phối và tương tác, rồi tổng hợp thành thống kê theo giờ. Mức cao nhất ghi nhận là 761.921 lượt kết nối thiết bị trong một giờ.

1. Phát hiện vùng gần
SDK nhận tín hiệu BLE/iBeacon

2. Tạo API request
ngữ cảnh app, device và beacon

3. Xác thực ngữ cảnh
xác định tenant và ứng dụng

4. Tìm campaign phù hợp
campaign đang chạy tại beacon/địa điểm

5. Áp dụng luật phân phối
khung giờ · platform · tần suất · target

6. Chọn nội dung
offer, quảng cáo hoặc notification

7. Trả response
app hiển thị nội dung

8. Ghi nhận kết quả
sự kiện phân phối và tương tác

9. Tổng hợp thống kê
báo cáo theo giờ và analytics

Mức cao nhất ghi nhận
761.921 lượt kết nối thiết bị trong một giờ

Sơ đồ vừa khung

Luồng request tách phần chọn campaign thời gian thực khỏi bước tổng hợp sự kiện phía sau, giúp response cho mobile gọn trong khi vẫn giữ đủ dữ liệu cho vận hành và báo cáo.

Luồng quản trị và vận hành

Luồng quản trị và vận hành nền tảng beaconĐội vận hành quản trị hệ thống và tenant, quản lý account với phân quyền theo vai trò, cấu hình tích hợp SDK và API cho từng ứng dụng, duy trì địa điểm, tag và kho beacon, chuẩn bị offer, quảng cáo và notification, thiết lập campaign với target, lịch và tần suất, publish và vận hành, cuối cùng theo dõi sự kiện, thống kê theo giờ và export.

Đội ngũ vận hành
quản trị system và tenant

Account + RBAC
user, role và permission

Ứng dụng
cấu hình tích hợp SDK/API

Địa điểm + beacon
facility, tag và kho beacon

Kho nội dung
offer, quảng cáo và notification

Thiết lập campaign
target, lịch và tần suất

Publish + vận hành
kiểm soát trạng thái và phân phối

Theo dõi + phân tích
event, thống kê giờ và export

Sơ đồ vừa khung

Admin console đóng vai trò control plane vận hành, nối quản trị tenant, kho beacon vật lý, cấu hình campaign và giám sát sau phân phối trong một luồng thống nhất.

Ba sơ đồ trên được dựng lại từ tài liệu kỹ thuật và giao diện quản trị ở mức thành phần. Chúng tập trung vào cách hệ thống vận hành, không chứa URL nội bộ, credential, source code độc quyền hay dữ liệu production thô.

Ảnh 1 trên 8