Skip to content

data: add laptop category — 970 laptops (first non-mobile class) - #102

Merged
Seungpyo1007 merged 5 commits into
mainfrom
data/import-staging
Jul 8, 2026
Merged

Seungpyo1007 merged 5 commits into
mainfrom
data/import-staging

Conversation

@Seungpyo1007

Copy link
Copy Markdown
Member

What & why

Adds a new laptop category to the dataset — the first non-mobile device class — with 970 laptops. This is the TechAPI half; the engine half (model/schema/router/seed/dump/validate) merged in TechEngine PR #39 and the submodule pin was bumped to d1c3b0b on main, so laptops now validate, serve and dump like any other category.

  • Added: 970 laptop records (Lenovo 233, HP 218, Asus 179, Acer 102, MSI 93, Dell 73, Apple 22, Samsung 17, and others)
  • All verified: false. brand is a required FK; cpu/gpu are optional FKs (raw cpu_name/gpu_name always kept). Fields: ram_gb, storage_gb, display, device_category, msrp_usd, os.

Commits (each Refs #1): validator rule, 3 brand-group data commits, and the surgical dump refresh (new laptops collection).

Closes #1

Source

abhinavflac/laptops-specs-dataset (GitHub, MIT). MSRP converted INR→USD (~÷83); release_date year derived from the CPU generation (Intel/AMD/Apple naming), placeholder YYYY-01-01. variant.source_row cites the CSV row.

Dump

Regenerated via TechEngine app.dump at the laptop-supporting submodule pin d1c3b0b. Laptops are unscored (no /score), so the dump adds v1/laptops/** (detail only) + a manifest entry. Only the new collection + manifest are committed — no churn on existing records.

Checklist

  • python -m app.validate — ✅ passed (full dataset incl. 970 laptops)
  • python TechEngine/integrity_check.py data --strict — ✅ no hard anomalies
  • git diff --check — ✅ clean
  • Correct data/laptop/<brand>/<year>/<base>/<slug>.json paths, kebab-case unique slugs, source_urls present

Mirror the TechEngine laptop validator: LAPTOP_REQUIRED fields, ranges
(ram_gb 1-256, storage_gb, weight_g 300-6000, msrp 50-50000), brand
required + optional cpu/gpu FK checks, and the variant path convention.

Refs #1
New `laptop` category seeded from the abhinavflac/laptops-specs-dataset
(GitHub, MIT). Lenovo and HP lines with cpu_name/gpu_name, RAM, storage,
display and INR->USD MSRP. Bulk import, verified:false.

Refs #1
More abhinavflac/laptops-specs-dataset laptops (Asus, Acer, MSI gaming
and mainstream lines). verified:false.

Refs #1
Remaining abhinavflac/laptops-specs-dataset laptops (Dell, Apple,
Samsung, Microsoft, Infinix, Gigabyte, Motorola). verified:false.

Refs #1
Add the 970 laptop records to the static v1 dump (new `laptops`
collection, unscored) and register it in the manifest. Regenerated via
TechEngine app.dump at the laptop-supporting submodule pin d1c3b0b;
only the new laptop collection + manifest are committed.

Refs #1
@Seungpyo1007 Seungpyo1007 added enhancement New feature or request data Dataset changes labels Jul 8, 2026
@Seungpyo1007 Seungpyo1007 self-assigned this Jul 8, 2026
@github-actions github-actions Bot added the app Validator or application code changes label Jul 8, 2026
@Seungpyo1007 Seungpyo1007 moved this from Todo to In Progress in TechAPI-Project Jul 8, 2026
@Seungpyo1007

Copy link
Copy Markdown
Member Author

🤖 Review — PASS

Check Command Result
Schema/self-check python -m app.validate ✅ passed (full dataset incl. 970 laptops)
Integrity gate python TechEngine/integrity_check.py data --strict ✅ no hard anomalies
Whitespace git diff --check origin/main..HEAD ✅ none
Engine dump app.dump @ d1c3b0b ✅ 106,641 records incl. laptops:970

Data-change summary

  • Added: 970 laptops (new category) · Modified/Deleted: 0
  • All verified:false. brand required FK; cpu/gpu optional FKs, raw cpu_name/gpu_name preserved.
  • New category wired end-to-end: engine model/schema/router/seed/dump/validate landed in TechEngine PR data(mobile): import supplemental smartphone and tablet variants #39 (merged); submodule pinned to d1c3b0b on main.

Example records

  • data/laptop/lenovo/2024/lenovo-legion-pro-5/…-abhinavflac-…json (Gaming, Core Ultra 7 255HX, RTX 5060, 32GB)
  • data/laptop/acer/2021/acer-15-aspire-lite-al15-41/…json (Ryzen 5 5625U, 16GB)

Heuristic notes

  • release_date year derived from CPU generation (placeholder YYYY-01-01) since the source lacks dates; MSRP converted INR→USD. A few gpu_name values read "Radeon Radeon" (source series+model duplication) — cosmetic, raw string only.

Site build

  • No site/src changes. Surgical dump refresh — only the new v1/laptops/** collection + manifest committed (laptops are unscored).

@Seungpyo1007

Copy link
Copy Markdown
Member Author

📊 Dataset stats (post-merge projection)

Metric Count
Total records 106,641
verified: true 10,028
verified: false 96,607
missing verified 6
Verified ratio 9.40%

New category: laptops (970) — the dataset's first non-mobile device class. Public laptop data is small (~1k rich records), so this is near the ceiling for a single source; more can come from additional laptop datasets later.

@Seungpyo1007
Seungpyo1007 merged commit 4499d3a into main Jul 8, 2026
5 checks passed
@github-project-automation github-project-automation Bot moved this from In Progress to Done in TechAPI-Project Jul 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

app Validator or application code changes data Dataset changes enhancement New feature or request

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

TechAPI dataset roadmap and status: all categories (1989-2026)

1 participant