Kiến trúc Hệ thống Đa nền tảng

Để đạt được sự đồng bộ hoàn hảo, MindfulBlock sử dụng mô hình Client-Heavy, Server-Light. Phần lớn logic chặn mạng nằm ở thiết bị cục bộ để đảm bảo quyền riêng tư và tốc độ, trong khi Cloud chỉ đóng vai trò là "nguồn sự thật duy nhất" cho các quy tắc chặn.

💻

Mindful PC

Windows / macOS

RUST / TAURI
☁️

Central Account

Firebase / Firestore

REAL-TIME SYNC
📱

Mindful Mobile

iOS / Android

ROADMAP

Luồng Đồng bộ Dữ liệu

Các thành phần chính

  • 1

    Xác thực tập trung

    Đăng nhập một lần (SSO) cho toàn bộ hệ sinh thái thiết bị.

  • 2

    Conflict Resolution

    Xử lý khi thay đổi thiết lập đồng thời trên cả điện thoại và máy tính.

  • 3

    Offline-First

    Vẫn chặn mạng ngay cả khi không có kết nối internet (Local DB).

Lớp Ứng dụng & Giao diện

Để tối ưu nguồn lực phát triển nhưng vẫn giữ được hiệu suất tối đa (Native Performance), chúng tôi chọn giải pháp Multi-Framework dựa trên ngôn ngữ biên dịch mạnh mẽ.

Rust

PC / Desktop

Tauri Framework
  • Siêu nhẹ: File cài đặt chỉ ~5-10MB (so với 100MB+ của Electron).
  • Bảo mật cao: Core bằng Rust giúp bảo vệ logic chặn mạng khỏi bị can thiệp.
  • Tận dụng Web: UI viết bằng React/Tailwind giúp thiết kế hiện đại.
tauri::command {
  update_hosts_file(sites: Vec<String>);
  setup_system_tray(); // minimize-to-tray logic
}
Flutter

Android / iOS

Google Framework (Đang phát triển)
  • 60 FPS: Giao diện mượt mà tuyệt đối cho cả 2 hệ điều hành.
  • VpnService: Khả năng gọi các hàm hệ thống sâu của Android/iOS.
  • Single Codebase: Viết một lần cho cả iPhone và Samsung.
// Gọi MethodChannel để bật VPN chặn mạng
static const platform = MethodChannel('blocker');
await platform.invokeMethod('startVPN');

Tại sao không dùng React Native hay Electron?

Electron: Quá nặng nề và tiêu tốn RAM, không phù hợp cho một ứng dụng chạy ngầm liên tục như blocker.

React Native: Khó khăn hơn Flutter trong việc can thiệp sâu vào các Bridge hệ thống cần thiết cho việc cấu hình VPN/Network.

Đồng bộ hóa & Lưu trữ Cloud

Cốt lõi của việc đồng bộ hóa đa thiết bị là tốc độ và sự ổn định. Chúng tôi đề xuất giải pháp Serverless để giảm thiểu chi phí vận hành và tối đa hóa khả năng mở rộng.

Google Firebase Ecosystem

Lựa chọn hàng đầu cho việc đồng bộ hóa dữ liệu thời gian thực mà không cần xây dựng WebSocket phức tạp.

Auth Firebase Authentication
Database Firestore (NoSQL)
Storage Cloud Storage (User Avatars)

Cấu trúc dữ liệu Đồng bộ

{
  "userId": "user_123",
  "restrictedSites": [...],
  "gamification": {
    "balance": 1500,
    "activeBuffs": [...]
  },
  "lastSync": "2023-10-27T10:00Z"
}

So sánh Tốc độ Đồng bộ

Firebase Realtime SDK giúp thay đổi trên Mobile phản ánh lên PC trong chưa đầy 200ms.

Cơ chế Chặn Mạng: "The Secret Sauce"

Chặn mạng là phần thách thức nhất về mặt kỹ thuật vì mỗi hệ điều hành có một cơ chế bảo mật khác nhau.

PC (Windows/Mac)

Cấp độ 1: Hosts File

Dễ triển khai, nhẹ, nhưng dễ bị người dùng rành kỹ thuật vượt qua.

Cấp độ 2: Local DNS Proxy

Viết bằng Rust để điều hướng tất cả lưu lượng DNS về một bộ lọc nội bộ.

Cấp độ 3: Web Extension

Chặn chính xác từng URL trong trình duyệt, cho phép hiển thị trang "Blocked" đẹp mắt.

Mobile (iOS/Android)

Local VPN Service

Tạo một VPN "giả" ngay trên máy (không gửi dữ liệu đi đâu). Tất cả gói tin đi qua bộ lọc này.

Network Extension (iOS)

Sử dụng Apple NEFilterDataProvider để chặn các luồng dữ liệu ở cấp hệ thống.

Accessibility API

Dùng để đọc URL hiện tại của trình duyệt Chrome/Safari và tự động đóng tab nếu vi phạm.