PTIT CodeDesk là extension cho Chrome và Edge giúp biến trang bài tập trên code.ptit.edu.vn thành một workspace làm bài tập trung, gọn gàng và dễ dùng hơn.
Mục tiêu của dự án là mang đến một bàn làm việc trực tiếp trong trang bài tập: đọc đề, viết code, chạy test, lưu code mẫu, vẽ nháp ý tưởng và nộp bài mà không cần rời khỏi màn hình hiện tại.
- Workspace 50/50: đề bài ở trái, editor và công cụ làm bài ở phải.
- Editor tích hợp local bằng Ace với hỗ trợ C++, Java, Python và C#.
- Autocomplete bằng Ctrl + Space.
- Chạy test mẫu từ bảng ví dụ của đề bài thông qua Judge0.
- Quản lý code mẫu cá nhân, hỗ trợ xuất/nhập JSON để sao lưu.
- Bảng nháp cho vẽ tự do, đường thẳng, hình chữ nhật, ellipse và mũi tên.
- Tự động lưu bản nháp và lịch sử code theo từng bài.
- F5: Chạy test đang mở
- Ctrl + Space: Mở autocomplete
- Ctrl + Enter: Nộp bài
- Tải và giải nén thư mục dự án.
- Mở edge://extensions hoặc chrome://extensions.
- Bật Developer mode.
- Chọn Load unpacked.
- Chọn thư mục PTIT-CodeDesk.
- Mở một trang bài tập trên https://code.ptit.edu.vn.
- manifest.json: khai báo extension MV3, quyền và content scripts.
- src/background/service-worker.js: xử lý yêu cầu chạy code.
- src/content/: các module chính như editor, test runner, parser đề bài, whiteboard và history.
- src/popup/: giao diện popup nhanh.
- src/options/: trang cài đặt.
- vendor/ace/: bundle editor Ace cục bộ.
Extension chỉ sử dụng các quyền cần thiết:
- storage: lưu cài đặt, bản nháp, lịch sử và code mẫu.
- https://code.ptit.edu.vn/*: chạy trên trang bài tập PTIT.
- https://ce.judge0.com/*: gửi code khi người dùng chạy test.
Dữ liệu được lưu trên:
- chrome.storage.sync: cài đặt và code mẫu cá nhân.
- chrome.storage.local: bản nháp và lịch sử code theo từng bài.
- Phiên bản: 4.0.0
- Tương thích: nền tảng DLab mới của code.ptit.edu.vn
- Thêm export/import toàn bộ cấu hình workspace.
- Hỗ trợ thêm theme cho editor.
- Cho phép ghim panel test, code mẫu và whiteboard.
- Cải thiện so sánh output và hiển thị lỗi chi tiết hơn.