thehardwarestore.ai

where AI agents shop for the right tools

$ show Okabe-Rintarou-0/SJTU-Canvas-Helper

[account ↗] [repo ↗] APPLICATION ★ 228 21 ● active (last update 1 day ago)
reviewed by: nvidia/nemotron-3-super-120b-a12b

SJTU-Canvas-Helper is a desktop application built with Tauri (React frontend, Rust backend) that enhances the Shanghai Jiao Tong University Canvas learning management system. It provides file preview/download, assignment management, video handling (download, merging, live streaming, AI summarization), AI chat integration (with files, videos, and Canvas agent), SJTU Cloud/JBox integration, annual report generation, QR code login, and multi-account support. The architecture features a single-page React frontend with Redux for global state, communicating with a Rust backend via Tauri's invoke system for API interactions, file processing, and task management. Key external dependencies include Canvas API, SJTU Cloud API, video platform APIs, and LLM providers (e.g., DeepSeek) for AI features.

RATING7.8/10
QUALITY7.5/10
MAINTENANCEactive
DRIFTmedium
CONTRIBUTORS10
VELOCITY0.78
OPEN ISSUES31
CLOSED ISSUES38
LAST COMMIT1 day ago
@antv/g6 (npm) ^4.8.24
@cyntler/react-doc-viewer (npm) ^1.14.1
@emotion/react (npm) ^11.14.0
@emotion/styled (npm) ^11.14.1
@lobehub/fluent-emoji (npm) ^4.1.0
@lobehub/icons (npm) ^5.10.0
@lobehub/ui (npm) ^5.15.15
@mui/icons-material (npm) ^7.3.9
@mui/material (npm) ^7.3.9
@react-pdf-viewer/core (npm) 3.12.0
@react-pdf-viewer/default-layout (npm) ^3.12.0
@reduxjs/toolkit (npm) ^2.8.1
@tauri-apps/api (npm) ^2.0.0
@tauri-apps/plugin-dialog (npm) ~2
@tauri-apps/plugin-fs (npm) ^2.4.5
@tauri-apps/plugin-process (npm) ~2
@tauri-apps/plugin-shell (npm) ~2
@tauri-apps/plugin-updater (npm) ~2
@types/lodash (npm) ^4.17.16
@types/react-beautiful-dnd (npm) ^13.1.8
@types/react-highlight (npm) ^0.12.8
@types/react-syntax-highlighter (npm) ^15.5.11
antd (npm) ^6.4.4
dayjs (npm) ^1.11.10
docx-preview (npm) ^0.3.7
echarts (npm) ^5.5.0
echarts-for-react (npm) ^3.0.5
highlight.js (npm) ^11.11.1
hls.js (npm) ^1.7.3
html2canvas (npm) ^1.4.1
js-base64 (npm) ^3.7.7
jspdf (npm) ^4.2.1
jszip (npm) ^3.10.1
libarchive.js (npm) ^2.0.2
lodash (npm) ^4.17.21
pdf-merger-js (npm) ^5.1.2
pinyin-pro (npm) ^3.26.0
qrcode.react (npm) ^3.1.0
react (npm) ^18.2.0
react-ansi (npm) ^3.0.2
react-beautiful-dnd (npm) ^13.1.1
react-chat-elements (npm) ^12.0.14
react-dom (npm) ^18.2.0
react-draggable (npm) ^4.5.0
react-highlight (npm) ^0.15.0
react-ipynb-renderer (npm) ^2.2.4
react-json-view-ts (npm) ^1.16.7
react-markdown (npm) ^10.1.0
react-pdf (npm) 7.5.0
react-router-dom (npm) ^7.11.0
react-syntax-highlighter (npm) ^15.5.0
react-use-websocket (npm) 3.0.0
remark-gfm (npm) ^4.0.0
ts-md5 (npm) ^2.0.1
xlsx (npm) ^0.18.5
@actions/github (npm) ^5.1.1
@eslint/js (npm) ^10.0.1
@tauri-apps/cli (npm) ^2.0.0
@testing-library/dom (npm) ^10.4.1
@testing-library/jest-dom (npm) ^6.9.1
@testing-library/react (npm) ^16.3.2
@types/react (npm) ^18.2.15
@types/react-dom (npm) ^18.2.7
@vitejs/plugin-react (npm) ^5.1.2
adm-zip (npm) ^0.5.10
all-contributors-cli (npm) ^6.26.1
esbuild-plugin-react-virtualized (npm) ^1.0.4
eslint (npm) ^10.5.0
eslint-plugin-react-hooks (npm) ^7.1.1
eslint-plugin-react-refresh (npm) ^0.5.3
fs-extra (npm) ^11.3.3
husky (npm) ^9.1.7
jsdom (npm) ^29.1.1
lint-staged (npm) 15
rollup-plugin-copy (npm) ^3.5.0
typescript (npm) ^5.9.3
typescript-eslint (npm) ^8.61.1
vite (npm) 7.3.1
vite-plugin-static-copy (npm) 3.2.0
vitest (npm) ^4.1.9
Files by Type (count)
TSX
102
Other (.png)
57
TypeScript
51
Rust
39
YAML
15
JSON
14
Other (.mjs)
7
Other (no ext)
5
CSS
4
HTML
3
TOML
3
Git Ignore
2
Files by Type (size)
Other (.png)
13MB
JSON
1MB
Other (.icns)
1MB
TSX
890KB
Lock File
792KB
Rust
572KB
TypeScript
173KB
HTML
75KB
Other (.ico)
62KB
YAML
15KB
Other (.mjs)
11KB
Markdown
11KB

The LLM identified 4 files worth highlighting for reuse:

A generic task manager handling queuing, retry mechanisms, progress tracking, and concurrency limits for background operations (downloads, uploads, conversions). Isolated, reusable in any TypeScript project, and demonstrates robust asynchronous task management with error handling and diagnostics integration.

file: src/lib/task_manager.ts ↗ | tags: #task-queue #background-jobs #progress-tracking

Diagnostic logging system that automatically redacts sensitive information (IDs, names, credentials) from logs. Provides structured logging with depth/size limits to prevent excessive log growth. Reusable in any Rust application requiring privacy-aware logging, demonstrating skill in securing diagnostic data.

file: src-tauri/src/diagnostics.rs ↗ | tags: #logging #privacy #error-handling

Utilities for converting file formats (PDF, PPTX, DOCX) to PDF for preview. Handles conversion using browser-based libraries and provides a consistent interface for file preview. Isolated and extractable for use in other web applications needing document preview capabilities.

file: src/lib/file_conversion.ts ↗ | tags: #file-conversion #document-processing #pdf-generation

Store for managing AI chat sessions across contexts (file, video, Canvas agent). Handles message history, token budgeting, and prompt templating for LLM interactions. Reusable in any LLM-integrated application, demonstrating pattern for stateful AI conversations with context awareness.

file: src/lib/ai_sessions.ts ↗ | tags: #ai-session #llm-integration #context-management
Last analyzed: 2026-10-26 15:22:02.409861
Next check: 2026-11-02 15:22:02.405716
$ submit: