chore: archive v2.3 milestone files
Archive setup sharing, currency system, and i18n foundation milestone. Reorganize ROADMAP.md with v2.3 details block, update PROJECT.md, MILESTONES.md, STATE.md deferred items, and RETROSPECTIVE.md. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
|
||||
## What This Is
|
||||
|
||||
A gear management and discovery platform. Users catalog their gear collections (bikepacking, sim racing, or any hobby), track weight, price, and source details, research purchases through planning threads with side-by-side comparison, and compose named setups (loadouts) with weight classification and visualization. A global item database with crowd-verified specs and structured reviews helps users make informed purchase decisions. Multi-user with public setup sharing and gear discovery.
|
||||
A gear management and discovery platform. Users catalog their gear collections (bikepacking, sim racing, or any hobby), track weight, price, and source details, research purchases through planning threads with side-by-side comparison, and compose named setups (loadouts) with weight classification and visualization. A global item database with crowd-verified specs and market-aware pricing helps users make informed purchase decisions. Multi-user with granular setup sharing (private/link/public), multi-currency support, and a fully internationalized UI (English + German).
|
||||
|
||||
## Core Value
|
||||
|
||||
@@ -65,18 +65,18 @@ Help people make better gear decisions — discover what others use, compare rea
|
||||
- ✓ Catalog-driven onboarding flow with hobby picker, category-grouped item browser, and batch collection creation — v2.2
|
||||
- ✓ Mobile icon-based action buttons on detail pages — v2.2
|
||||
|
||||
- ✓ Setup visibility toggle (private/link/public) with shares table, 128-bit token entropy, deactivate/reactivate on transition — v2.3
|
||||
- ✓ ShareModal with Google Docs-style UX: visibility picker, link creation/expiry, revoke, deactivation warning — v2.3
|
||||
- ✓ Shared setup viewer: `/s/:token` short URL, read-only mode, inline "Shared setup" banner — v2.3
|
||||
- ✓ Multi-currency support: market_prices + community_prices tables, ECB exchange rates (24h cache), conversion service — v2.3
|
||||
- ✓ Community price aggregation: ownership-validated submissions, median with 3-report minimum, market-aware MSRP on catalog detail — v2.3
|
||||
- ✓ i18n foundation: react-i18next, 7 namespaces, English + German translations, language picker, locale-aware formatting — v2.3
|
||||
|
||||
### Active
|
||||
|
||||
- ✓ i18n foundation: react-i18next framework, English + German locales, locale-aware formatting, language picker — v2.3
|
||||
|
||||
## Current Milestone: v2.3 Global & Social Ready
|
||||
|
||||
**Goal:** Make GearBox work for a global audience with setup sharing, multi-currency support, and localization infrastructure.
|
||||
|
||||
**Target features:**
|
||||
- Setup sharing system with visibility toggle (private/link/public)
|
||||
- Multi-currency support (USD/EUR/GBP) with user preference
|
||||
- i18n foundation with translation framework and locale-aware formatting
|
||||
- [ ] Freeform reviews with moderation system
|
||||
- [ ] Comments on setups
|
||||
- [ ] Follow users / activity feeds
|
||||
|
||||
### Future
|
||||
|
||||
@@ -85,6 +85,7 @@ Help people make better gear decisions — discover what others use, compare rea
|
||||
- [ ] Follow users / activity feeds
|
||||
- [ ] OAuth / social login providers
|
||||
- [ ] User-to-user messaging
|
||||
- [ ] ComparisonTable currency normalization (hooks available, needs real multi-currency test data)
|
||||
|
||||
### Out of Scope
|
||||
|
||||
@@ -100,12 +101,12 @@ Help people make better gear decisions — discover what others use, compare rea
|
||||
|
||||
## Context
|
||||
|
||||
Shipped through v2.2 with 31 phases across 6 milestones. All milestones v1.0-v2.2 complete. Phase 34 (i18n Foundation) complete — v2.3 in progress.
|
||||
Tech stack: React 19, Hono, Drizzle ORM, PostgreSQL, TanStack Router/Query, Tailwind CSS v4, Lucide React, Recharts, framer-motion, all on Bun.
|
||||
Shipped through v2.3 with 34 phases across 7 milestones. All milestones v1.0-v2.3 complete.
|
||||
Tech stack: React 19, Hono, Drizzle ORM, PostgreSQL, TanStack Router/Query, Tailwind CSS v4, Lucide React, Recharts, framer-motion, react-i18next, all on Bun.
|
||||
Primary use case is bikepacking gear but data model is hobby-agnostic.
|
||||
Auth: External OIDC via Logto (browser sessions) + API keys (programmatic) + MCP OAuth (Claude).
|
||||
Infrastructure: PostgreSQL, MinIO (S3-compatible image storage), Docker Compose for dev/prod.
|
||||
Features: MCP server (21 tools), global item catalog with attribution and bulk import, user profiles with Logto account management, public setup sharing, catalog-driven onboarding, fit-within image framing with crop editor, item/candidate detail pages, candidate ranking/comparison/impact preview. Public discovery landing page with catalog search, popular setups feed, recent items, and trending categories. Top nav + mobile bottom tab bar.
|
||||
Features: MCP server (21 tools), global item catalog with attribution/bulk import/market prices, user profiles with Logto account management, granular setup sharing (private/link/public) with share tokens, multi-currency pricing (USD/EUR/GBP) with ECB rates and community aggregation, i18n (English + German, 7 namespaces), catalog-driven onboarding, fit-within image framing with crop editor, item/candidate detail pages, candidate ranking/comparison/impact preview. Public discovery landing page with catalog search, popular setups feed, recent items, and trending categories. Top nav + mobile bottom tab bar.
|
||||
20+ test files (service-level, route-level integration, MCP). E2E tests pending rewrite for OIDC auth (backlog 999.1).
|
||||
|
||||
## Constraints
|
||||
@@ -159,6 +160,15 @@ Features: MCP server (21 tools), global item catalog with attribution and bulk i
|
||||
| Click-to-cycle for ClassificationBadge | Only 3 values, simpler than popup | ✓ Good |
|
||||
| Classification-preserving sync via Map | Save metadata before delete, restore after re-insert | ✓ Good |
|
||||
| Recharts for charting | Mature React chart library, composable API | ✓ Good |
|
||||
| visibility text column (not boolean) | Future-proofs for additional sharing modes, readable in queries | ✓ Good |
|
||||
| shares table separate from setups | Enables future per-person shares, write permissions, and revocation | ✓ Good |
|
||||
| 128-bit base64url share tokens | URL-safe, sufficient entropy, no external dep | ✓ Good |
|
||||
| Deactivate/reactivate on visibility change | Share links survive visibility round-trips, not destroyed | ✓ Good |
|
||||
| EUR default price currency | Matches existing data assumption from early single-user era | ✓ Good |
|
||||
| Module-level ECB rate cache | Simple, single-process, avoids DB or Redis for rate storage | ✓ Good |
|
||||
| Community price median with 3-report floor | Prevents manipulation from single-user submissions | ✓ Good |
|
||||
| i18next namespace-per-feature | Matches TanStack Router file-based routing, lazy-loadable | ✓ Good |
|
||||
| localStorage language key (gearbox-language) | User preference wins over browser default in detection order | ✓ Good |
|
||||
|
||||
## Evolution
|
||||
|
||||
@@ -178,4 +188,4 @@ This document evolves at phase transitions and milestone boundaries.
|
||||
4. Update Context with current state
|
||||
|
||||
---
|
||||
*Last updated: 2026-04-10 after Phase 27 complete — top nav restructure & search bar rethink*
|
||||
*Last updated: 2026-04-19 after v2.3 milestone — Global & Social Ready*
|
||||
|
||||
Reference in New Issue
Block a user