Skip to main content

[DDD] Thiết kế Chi tiết Chức năng Tải Video Lên Đa Nền Tảng

Tóm tắt tài liệu

Tài liệu này mô tả chi tiết kỹ thuật của chức năng tải video lên đa nền tảng, sử dụng React Query để xử lý việc tải video lên các nền tảng mạng xã hội (TikTok, YouTube), đồng thời hỗ trợ tự động điều hướng người dùng tới trang xác thực khi cần.

1. Tổng quan (Overview)

1.1. Bối cảnh và Vấn đề

Trong hệ thống quản lý nội dung bất động sản, người dùng có thể chọn đăng video lên các nền tảng bên ngoài như TikTok hoặc YouTube. Tuy nhiên, mỗi nền tảng có cách xác thực và cách đăng video khác nhau. Nếu không thiết kế hợp lý, việc quản lý các luồng xử lý này sẽ dễ rối và khó bảo trì. Chúng ta cần gom toàn bộ phần xử lý này vào một nơi duy nhất để dễ sử dụng và dễ mở rộng trong tương lai.

1.2. Mục tiêu & Phi mục tiêu

Mục tiêu

  • Tạo ra một phần xử lý giúp lập trình viên có thể dễ dàng tái sử dụng khi cần tải video lên TikTok hoặc YouTube.
  • Tự động xử lý xác thực nếu token hết hạn hoặc chưa cấp quyền.
  • Hiển thị thông báo phù hợp cho người dùng về trạng thái upload.

Phi mục tiêu

  • Không xử lý upload nội dung dạng livestream.

2. Workflow chi tiết

  1. Khi người dùng muốn tải video lên (Youtube hoặc Tiktok)
  • Người dùng bấm vào biểu tượng tải video (Youtube hoặc Tiktok).
  • Hệ thống sẽ gửi yêu cầu tải video lên.
  • Trong lúc video đang xử lý, hệ thống sẽ cập nhật trạng thái theo thời gian thực để người dùng biết tiến trình.
  1. Nếu người dùng chưa đăng nhập bằng tài khoản Youtube/Tiktok
  • Hệ thống sẽ phát hiện và từ chối tải video (báo lỗi chưa đăng nhập).
  • Sau đó:
    • Hệ thống sẽ lấy đường dẫn đăng nhập chính thức của Youtube hoặc Tiktok.
    • Một tab mới sẽ mở ra, dẫn người dùng đến trang đăng nhập và cấp quyền cho hệ thống truy cập tài khoản của họ.
  1. Sau khi người dùng đăng nhập xong
  • Người dùng sẽ được chuyển về trang xác nhận.
  • Tại đây, họ bấm nút "Xác thực" để hoàn tất việc liên kết tài khoản.
  • Hệ thống sẽ:
    • Gửi thông tin xác thực cuối cùng.
    • Thông báo xác thực thành công hoặc thất bại.
  1. Sau khi xác thực thành công
  • Người dùng có thể thử tải lại video.
  • Lúc này, vì đã đăng nhập rồi nên người dùng không cần làm lại bước xác thực nữa.

3. Luồng Tương tác (Interaction Flow)

4. API Endpoints liên quan

Chức năngNền tảngPhương thứcEndpoint
Upload VideoYoutubePOST/brok/api/v1/youtube/upload
Upload VideoTikTokPOST/brok/api/v1/tiktok/upload
Lấy auth linkYoutubeGET/brok/api/v1/youtube/auth
Lấy auth linkTikTokGET/brok/api/v1/tiktok/auth
Callback xác thựcYoutubePOST/brok/api/v1/youtube/callback
Callback xác thựcTikTokPOST/brok/api/v1/tiktok/callback

5. Ưu điểm

Tính năngMô tả
Dễ dùng lạiMọi xử lý tải video lên các nền tảng khác nhau đều gom về một nơi duy nhất.
Tự động xử lý xác thựcNếu người dùng chưa đăng nhập hoặc bị hết phiên, hệ thống sẽ tự mở cửa sổ đăng nhập.
Dễ thêm nền tảng mớiNếu sau này muốn thêm Zalo, Facebook,… thì chỉ cần bổ sung phần xử lý riêng cho nền tảng đó.
Phản hồi rõ ràng cho người dùngThông báo cho mọi trạng thái (thành công, lỗi, yêu cầu xác thực)

6. Rủi ro và Giảm thiểu

Tình huống có thể xảy raMức độ ảnh hưởngDễ xảy ra không?Cách xử lý để hạn chế
Hệ thống không nhận được liên kết đăng nhập lạiCaoCó thể xảy raHiển thị thông báo cho người dùng và hướng dẫn họ thử lại sau
Hệ thống bên ngoài (TikTok/YouTube) không phản hồiCaoHiếm khi xảy raHiển thị lỗi rõ ràng và cho phép người dùng thử lại nếu muốn
Gặp rắc rối khi thêm nhiều nền tảng mớiTrung bìnhCó thể xảy raThiết kế logic linh hoạt để có thể thêm nền tảng mới mà không trùng lặp

Tài liệu tham khảo: