- SUMMARY.md created for 35-02 (FIX-03) - STATE.md advanced to plan 2 of 3 complete, added 35-02 decisions - ROADMAP.md updated (2 of 3 summaries) - REQUIREMENTS.md marked FIX-03 complete
96 lines
4.3 KiB
Markdown
96 lines
4.3 KiB
Markdown
# 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
|
|
|
|
- [x] **FIX-01**: User clicking "Add Candidate" on a thread page opens the add-candidate modal (not the wrong modal)
|
|
- [x] **FIX-02**: Item images display correctly on collection overview cards (no broken/missing images)
|
|
- [x] **FIX-03**: Catalog and collection images load without noticeable delay (slow image loading resolved)
|
|
- [x] **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 | Complete |
|
|
| FIX-02 | Phase 35 | Complete |
|
|
| FIX-03 | Phase 35 | Complete |
|
|
| FIX-04 | Phase 35 | Complete |
|
|
| 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*
|