4.3 KiB
4.3 KiB
Requirements: GearBox v2.4
Defined: 2026-04-19 Milestone: v2.4 Admin Foundation Core Value: Help people make better gear decisions — discover what others use, compare real-world data, and see how a potential buy affects your setup before committing.
v2.4 Requirements
Bug Fixes
- FIX-01: User clicking "Add Candidate" on a thread page opens the add-candidate modal (not the wrong modal)
- FIX-02: Item images display correctly on collection overview cards (no broken/missing images)
- FIX-03: Catalog and collection images load without noticeable delay (slow image loading resolved)
- FIX-04: Clicking the sign-in button on an auth prompt redirects the user directly to the Logto login page
- FIX-05: All clickable and interactive elements show a pointer cursor on hover throughout the app
Admin Role
- ROLE-01: The users table has an isAdmin boolean flag that identifies admin users
- ROLE-02: Admin can set another user's isAdmin flag via a server-side mechanism (CLI or seed, not public UI)
Admin Panel — Global Items
- ADMN-01: Admin user can navigate to an /admin route that is inaccessible to non-admin users
- ADMN-02: Admin can browse all global catalog items with search and tag filtering
- ADMN-03: Admin can edit a global catalog item's details (name, brand, model, weight, price, tags, image, attribution fields)
- ADMN-04: Admin can delete a global catalog item from the catalog (with confirmation)
Admin Panel — Tag Management
- ADMN-05: Admin can browse all tags with item counts and parent/child relationships displayed
- ADMN-06: Admin can create a new tag with a name
- ADMN-07: Admin can rename an existing tag
- ADMN-08: Admin can assign a parent tag to a tag (enabling sub-tag hierarchy, e.g. "down" under "sleeping-bag")
- ADMN-09: Admin can remove a tag's parent assignment (making it a top-level tag again)
- ADMN-10: Admin can delete a tag, with a warning if items are currently using it
Future Requirements (v2.5+)
Catalog Spec System
- SPEC-01: Tags can have typed spec field definitions (key, label, unit, type: number/text/image)
- SPEC-02: Sub-tags inherit the spec schema of their parent tag
- SPEC-03: Admin can create, edit, and delete spec field definitions for a tag via the admin panel
- SPEC-04: Global catalog items can have spec values filled in for their tag's spec schema
- SPEC-05: Catalog item detail page displays spec values in a structured spec sheet section
- SPEC-06: Items are filterable/comparable by numeric spec values (e.g. R-value, comfort temp)
Engagement Stats
- STAT-01: Global catalog item detail pages track view counts
- STAT-02: Authenticated users can like/save a catalog item (wishlist-style)
- STAT-03: Catalog item detail page shows owner count, view count, like count, and public setup appearances
- STAT-04: User can view their list of saved/liked catalog items
Out of Scope
| Feature | Reason |
|---|---|
| User management in admin panel | Not needed until user base grows; Logto handles account lifecycle |
| Moderation queue / content flagging | Deferred — requires freeform UGC first |
| Sub-items / component attachment to items | High complexity, needs dedicated discussion and milestone |
| Freeform reviews or comments | No moderation infrastructure yet |
| Social login providers | Logto handles this externally |
Traceability
| Requirement | Phase | Status |
|---|---|---|
| FIX-01 | Phase 35 | Pending |
| FIX-02 | Phase 35 | Pending |
| FIX-03 | Phase 35 | Pending |
| FIX-04 | Phase 35 | Pending |
| FIX-05 | Phase 35 | Pending |
| ROLE-01 | Phase 36 | Pending |
| ROLE-02 | Phase 36 | Pending |
| ADMN-01 | Phase 36 | Pending |
| ADMN-02 | Phase 37 | Pending |
| ADMN-03 | Phase 37 | Pending |
| ADMN-04 | Phase 37 | Pending |
| ADMN-05 | Phase 38 | Pending |
| ADMN-06 | Phase 38 | Pending |
| ADMN-07 | Phase 38 | Pending |
| ADMN-08 | Phase 38 | Pending |
| ADMN-09 | Phase 38 | Pending |
| ADMN-10 | Phase 38 | Pending |
Coverage:
- v2.4 requirements: 17 total
- Mapped to phases: 17
- Unmapped: 0 ✓
Requirements defined: 2026-04-19 Last updated: 2026-04-19 — traceability finalized for v2.4 roadmap