Skip to content

Add Versus mirror site#41

Open
Sun-sunshine06 wants to merge 1 commit into
aiming-lab:mainfrom
Sun-sunshine06:feat/versus-mirror-upstream
Open

Add Versus mirror site#41
Sun-sunshine06 wants to merge 1 commit into
aiming-lab:mainfrom
Sun-sunshine06:feat/versus-mirror-upstream

Conversation

@Sun-sunshine06

Copy link
Copy Markdown

Summary

  • Adds a Versus mirror under sites/versus with product categories, rankings, search, detail pages, side-by-side comparisons, saved comparisons, and benchmark users.
  • Covers smartphones, headphones, cameras, graphics cards, and smartwatches with 20 seeded products and specification-aware search.
  • Registers versus as the next site on the upstream 15-site base, exposed on port 40015.
  • Adds Docker build-time seed generation for the code-generated SQLite seed DB.

Verification

  • sites/versus/venv/Scripts/python.exe -m py_compile sites/versus/app.py
  • python -m py_compile control_server.py
  • tasks.jsonl JSON parse check passed
  • Flask test client smoke: /, /categories, /category/smartphones, /item/iphone-15-pro, /compare, /compare/iphone-15-pro-vs-samsung-galaxy-s24-ultra, /rankings, /search?q=sony+headphones, /login all returned 200
  • Login as alice.j@test.com and save comparison flow returned 200

Note

  • This branch is rebased onto aiming-lab/WebHarbor main and does not include hqhq1025 fork-only site changes.

@Susan571 Susan571 left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewer checklist (WebHarbor Review Guide)

Reviewer note: Source-level review (checked out pull/41/head). The mechanical Docker pipeline (build, curl 200, md5 reset) was not run in my environment — please pair with a Docker-capable mechanical pass.

Visual fidelity: ❌ FAIL

  • Compare/rankings IA fits versus.com conceptually and templates are richer than a bare skin, but all product imagery is the /product-art/<slug>.svg placeholder (shapes + brand initials + "{score} Versus Score"). No real product photos → fails the real-images check.

Functional depth: ✅ PASS

  • Category browse, brand/price/min-score filters, product detail, side-by-side compare with a winner, compare-picker, rankings, search, login, save-comparison, account.
  • Data quality is strong: real product names with plausible real specs (Sennheiser Momentum 4 = 60 h battery, Sony WH-1000XM5 = 30 h, Nikon Z8 = 45.7 MP, RTX 4080 Super = 16 GB/320 W). Best data of this contributor's set.

Task quality: ⚠️ Request changes (10 tasks)

  • Good: Versus--1 (headphones ≥50 h → only Momentum 4 qualifies; real distractors), Versus--3 (camera ≥40 MP → Z8 + X-T5), Versus--6 (phones ≤ $1000 highest score → excludes S24 Ultra at $1299). These need spec-reading with near-miss distractors.
  • Leak risk: the Versus Score is rendered on cards/art, so score-comparison tasks (--0, --2) may be answerable without opening detail. Move the deciding value behind the detail/compare page.
  • Only 10 tasks (need 15–20); Versus--5 leaks the password.

Verdict: Request changes

(1) Use real product images; (2) hide the score on cards for score-comparison tasks; (3) provide 15–20 tasks with more ≥5-step reasoning; (4) remove the credential leak. This is the closest of the contributor's set to acceptable on functionality/data.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants