Skip to content

Latest commit

 

History

History
58 lines (38 loc) · 4.99 KB

File metadata and controls

58 lines (38 loc) · 4.99 KB

Label Review Collaboration Platform / 多人审核协作平台

中文主说明 | Project README

This directory turns the offline review queue into a multi-user, auditable web workflow. It has been validated with two independent reviewer accounts on a trusted LAN.

本目录把离线审核队列转换为多人可登录、可追溯的 Web 审核流程,并已在可信局域网中用两个独立账号完成同时审核验证。

Real review dashboard

Real five-candidate review workspace

Account administration

Components / 目录

  • backend/: Spring Boot 4 REST API, JWT/RBAC, project membership, task leasing, audit and Flyway.
  • frontend/: Vue 3 + TypeScript review workspace with heartbeat and constrained Chinese decisions.
  • tools/import_review_queue.py: bounded, idempotent bridge for queues and historical desktop decisions.
  • tools/capture_platform_screenshots.mjs: dependency-free Chrome DevTools documentation capture.
  • docker-compose.yml: MySQL, API and Nginx-hosted frontend.
  • campus-deploy/: Windows and trusted-LAN deployment scripts with Git-ignored local configuration.

Review ergonomics / 审核交互

  • The left rail groups every candidate box from the current image and shows pending, claimed, completed and escalated states.
  • The concurrency unit is the source image, not an individual box. Claiming one candidate atomically leases all pending or expired siblings with the same (project, split, image_name) to the same reviewer; heartbeat and release operate on the same image group.
  • Decision buttons save immediately and automatically advance to the next candidate in the current image, then to the next image. This keeps the high-frequency review path to one click.
  • A reviewer can revise their own completed decision; administrators may correct any completed decision. Every revision is version-checked and audited.
  • Keyboard controls: 1/2/3 immediately save a decision and advance, N moves from a completed/historical item, Shift+N moves to the next image, R releases an unreviewed task, and ? opens the shortcut card.
  • Review images default to original pixels and can switch to fit-to-canvas, zoom from 50% to 400%, or enter fullscreen. Use 0, + and - for quick image control.
  • A visible lease countdown, heartbeat state and browser network state make task ownership failures observable instead of silent.
  • “My recent reviews” returns only the current reviewer's records in the selected project and reopens a completed item for version-checked, audited correction.

左侧列表按图片聚合展示全部候选框;并发边界是整张源图而不是单个框,领取任一候选时会在同一事务中把同项目、同划分、同图片的全部待审候选租给同一审核人,心跳和释放也按整图执行。主流程点击决定后立即保存,优先自动进入本图下一框,本图完成后自动进入下一图。租约倒计时、心跳和网络状态均可见;“我的最近审核”只展示当前账号在当前项目中的记录,可回到原图进行带版本校验和审计留痕的纠错。审核图默认按原始像素显示,并支持适应画布、50%-400% 缩放和全屏查看。

The UI-library decision is documented in ADR 0004: the image-first workbench stays custom, while commodity administration screens may adopt components selectively when measurements justify the dependency.

Docker deployment / Docker 部署

The workspace above is a capture of the running application with one real underground image and five grouped candidates, not a mockup. Additional login, dashboard and administration screenshots are available in COLLABORATION_PLATFORM.md.

cd platform
Copy-Item .env.example .env
# Edit passwords, JWT secret and REVIEW_PACKAGE_DIR.
docker compose up -d --build

Then open http://localhost:8088. Full architecture, deployment and API documentation is in COLLABORATION_PLATFORM.md.

Trusted LAN deployment / 校园网或局域网部署

Build the frontend and JAR, create the ignored campus-deploy/campus.local.env, then use the start/status/stop scripts. MySQL may run on the host, in VMware or on another LAN machine.

构建前端和 JAR 后,在 campus-deploy/campus.local.env 中填写仅本机使用的配置,再通过启动、状态和停止脚本管理平台。详细步骤见 campus-deploy/README.md

Production-scale validation completed 30,183 / 30,183 decisions with 0 pending, claimed or escalated tasks. The finalizer produced a consistent database snapshot, complete candidate-level CSV, policy snapshot, exact remap manifest and SHA-256 checksums. These figures validate workflow completion and traceability, not detector accuracy or maximum concurrency.