Skip to content

Repository files navigation

VisualAll Logo

🌊 VisualAll

Trình trực quan hóa Thuật toán & Cấu trúc Dữ liệu Java

Tauri React Java Rust


🌟 Giới thiệu (Introduction)

VisualAll là một công cụ Desktop mạnh mẽ giúp trực quan hóa quá trình thực thi mã nguồn Java theo thời gian thực. Thay vì việc theo dõi thuật toán một cách khô khan trên màn hình console, VisualAll sẽ tự động phân tích và hiển thị mảng, đối tượng, con trỏ và các thao tác thay đổi dữ liệu dưới dạng đồ họa "Glassmorphism" sống động.

Tính năng nổi bật:

  • 🚀 Trình biên dịch & chạy JDI tích hợp: Phân tích mã Java theo từng bước (Step-by-step).
  • 🎨 Giao diện Glassmorphism: Nền tối/sáng cực kỳ hiện đại và mượt mà.
  • 🔍 Theo dõi biến tự động: Tự động nhận diện Array, Collection, Map và Object.
  • ⚡ Siêu nhẹ & Độc lập: Ứng dụng Desktop thực thụ (Standalone) nhờ Tauri, không cần chạy web server rườm rà.

📸 Review / Screenshots

VisualAll Algorithm Animation


🚀 Getting Started

Bạn có 2 cách để bắt đầu với VisualAll: chạy ứng dụng trực tiếp hoặc tự Build từ mã nguồn.

1. Dành cho người dùng (Chạy trực tiếp)

Bạn không cần phải cài đặt môi trường lập trình. Tải bản Portable (file .zip), giải nén ra và chạy file VisualAll.exe!

2. Dành cho lập trình viên (Build từ Source)

Yêu cầu hệ thống:

Tự động Build (Chỉ cần 1 click): Dự án đã tích hợp sẵn một script PowerShell để tự động hóa toàn bộ quá trình:

  1. Mở PowerShell dưới quyền Administrator (nếu cần thiết).
  2. Chạy lệnh:
.\build.ps1

Script sẽ tự động:

  • Biên dịch lõi Java (core-jdi.jar).
  • Cài đặt gói NPM và biên dịch Frontend (React).
  • Trích xuất file .jar và đóng gói ứng dụng Tauri (.exe).
  • Tạo sẵn thư mục VisualAll-Portable và file VisualAll-Setup.exe tại thư mục gốc.

🏗️ Quick Architecture (Kiến trúc hệ thống)

VisualAll được thiết kế theo mô hình Sidecar Architecture tối ưu hiệu suất với 3 module chính:

  1. Frontend (React.js + Vite)

    • Đảm nhiệm toàn bộ giao diện người dùng (UI).
    • Vẽ các hoạt ảnh mảng, đối tượng bằng CSS hiện đại (Zoom/Pan/Pinch).
    • Render mã nguồn với cú pháp Highlight (PrismJS).
  2. Middleware / Desktop Host (Tauri - Rust)

    • Bọc Frontend vào một cửa sổ Windows Native nhỏ gọn, tốn ít RAM.
    • Nhúng (embed) backend Java .jar trực tiếp vào mã nguồn C++.
    • Quản lý vòng đời (spawn/kill) của tiến trình Java và chuyển tiếp các luồng sự kiện (Stdout/Stderr) từ Backend lên Frontend thông qua IPC (Inter-Process Communication).
  3. Backend (Java JDI - core-jdi)

    • Sử dụng JDI (Java Debug Interface) để can thiệp sâu vào tiến trình đang chạy.
    • Biên dịch mã nguồn người dùng động (On-the-fly Compilation).
    • Chụp ảnh trạng thái của bộ nhớ (Variables Snapshot) ở từng dòng lệnh và gửi tín hiệu dạng chuỗi JSON ra luồng tiêu chuẩn (Standard Output).

About

Visualise algorithm on Screen to observer -java

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages