Kiến trúc hệ thống
Sơ đồ tổng quan
Section titled “Sơ đồ tổng quan”┌─────────────────┐ ┌──────────────────┐ ┌──────────────────┐│ Landing Page │ │ Console │ │ Seller Portal ││ (Next.js 16) │ │ (React + Vite) │ │ (React + Vite) ││ Trang giới │ │ Dashboard │ │ Dashboard ││ thiệu sản │ │ người dùng │ │ đại lý ││ phẩm │ │ cuối │ │ │└────────┬────────┘ └────────┬─────────┘ └────────┬─────────┘ │ │ │ │ ┌────────▼─────────┐ │ └──────────────► API Backend ◄───────────────┘ │ (api.prx.network)│ │ Go + Encore │ └────────┬──────────┘ │ ┌────────────┼────────────┐ ▼ ▼ ▼ ┌──────────┐ ┌──────────┐ ┌──────────┐ │PostgreSQL│ │ Redis │ │ NATS │ │ Database │ │ Cache │ │ JetStream│ └──────────┘ └──────────┘ └──────────┘Các thành phần
Section titled “Các thành phần”Landing Page (netproxy-index-v2)
Section titled “Landing Page (netproxy-index-v2)”- Stack: Next.js 16, React 19, TypeScript, Tailwind CSS 4
- Mục đích: Trang giới thiệu sản phẩm, thu hút khách hàng
- Tính năng: 14 ngôn ngữ, dark mode, animation (Framer Motion, GSAP), SEO
- Deploy: Cloudflare Pages (khuyến nghị) hoặc Vercel
- Repo: github.com/lebachhiep/netproxy-index-v2
Console (netproxy-console-v2)
Section titled “Console (netproxy-console-v2)”- Stack: React 19, Vite 6, TypeScript 5.8, Tailwind CSS 4, SCSS
- Mục đích: Bảng điều khiển cho người dùng cuối
- Tính năng: Mua proxy, quản lý subscription, ví điện tử, lịch sử đơn hàng, 14 ngôn ngữ
- Deploy: Vercel (khuyến nghị) hoặc Cloudflare Pages
- Repo: github.com/lebachhiep/netproxy-console-v2
Seller Portal
Section titled “Seller Portal”- URL: seller.prx.network
- Mục đích: Bảng điều khiển đại lý — do NetProxy vận hành
- Tính năng: Quản lý giá, người dùng, đơn hàng, thương hiệu, thanh toán, báo cáo
API Backend
Section titled “API Backend”- URL:
api.prx.network - Mục đích: Hệ thống API duy nhất phục vụ tất cả frontend
- Do NetProxy vận hành — đại lý không cần triển khai backend
Luồng hoạt động chính
Section titled “Luồng hoạt động chính”Luồng đăng ký người dùng
Section titled “Luồng đăng ký người dùng”- Khách truy cập Landing Page của đại lý
- Nhấn “Đăng ký” → chuyển hướng đến Console
- Đăng ký tài khoản trên Console
- Backend tự động gắn người dùng với đại lý dựa trên domain
Luồng mua proxy
Section titled “Luồng mua proxy”- Người dùng đăng nhập Console
- Chọn loại proxy, quốc gia, thời hạn → thêm vào giỏ hàng
- Thanh toán qua cổng thanh toán đại lý đã cấu hình
- Backend nhận webhook xác nhận → xử lý đơn hàng
- Worker mua proxy từ nhà cung cấp → tạo subscription
- Người dùng nhận thông tin proxy (IP, port, username, password)
Luồng giá
Section titled “Luồng giá”- Admin đặt giá gốc cho từng gói proxy
- Đại lý đặt hệ số nhân (multiplier) trên Seller Portal
- Người dùng thấy giá = giá gốc × hệ số nhân
- Mã giảm giá (coupon) áp dụng thêm trên giá cuối
Luồng white-label
Section titled “Luồng white-label”- Đại lý cấu hình domain + logo + favicon trên Seller Portal
- Console lấy thông tin branding từ API dựa trên domain request
- Giao diện tự động hiển thị thương hiệu của đại lý
Xác thực (Authentication)
Section titled “Xác thực (Authentication)”- Sử dụng JWT (JSON Web Token)
- Access token: hết hạn sau 15 phút
- Refresh token: hết hạn sau 30 ngày
- Tự động refresh token khi nhận lỗi 401
- Hỗ trợ “Remember me” — lưu token ở localStorage hoặc sessionStorage