Commit Graph

11 Commits

Author SHA1 Message Date
79d3f2d37f Merge remote-tracking branch 'origin/main' 2026-02-21 22:11:08 +00:00
325d2944fe feat: Order & Checkout System - cart, checkout, order history, tracking
- Backend: Add GET /api/orders/:id, PUT /api/orders/:id/cancel, GET /api/orders/:id/tracking with mock Yamato data
- Frontend: Zustand cart store with localStorage persistence (key 'cart')
- Frontend: CartPage (/cart) with quantity controls, item removal, JPY totals
- Frontend: CheckoutPage (/checkout) with shipping address form, auth guard, POST to /api/orders
- Frontend: OrderHistoryPage (/account/orders) with Japanese status labels, auth guard
- Frontend: OrderDetailPage (/account/orders/:id) with cancel button, tracking section, auth guard
- Updated App.tsx with all four new routes
- Updated ProductDetail.tsx to use cart store with View Cart link after adding
- Updated Navbar.tsx with cart icon badge (item count) and 注文履歴 order history link
2026-02-21 22:06:25 +00:00
cc695c6f28 feat: AR Viewer - WebAR with model-viewer, 5 environment presets, placement modes
- Add Google model-viewer 3.5.0 CDN script to client/index.html for WebXR/QuickLook AR
- Create ARViewer.tsx modal component with 5 Japanese environment presets (tatami, modern-japanese, wooden-table, stone-surface, neutral), floor/shelf/wall placement mode selector, WebXR support detection, and small-item scale reference badge
- Replace external AR link in ProductDetail.tsx with in-browser ARViewer modal; auto-detect placement mode from craft_category (textiles=wall, others=floor) and isSmallItem from product dimensions
- Patch GET /api/products/:id to null out ar_model_url when ar_eligible is false, preventing URL exposure for ineligible products

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-21 22:04:44 +00:00
Fullstack Developer
393aa96956 Revert "test push access"
This reverts commit 44f457ea6e.
2026-02-21 19:18:40 +00:00
Fullstack Developer
44f457ea6e test push access 2026-02-21 19:18:01 +00:00
4859999340 fix: merge App.tsx routes - add /craftsmen/:id for CraftsmanProfile
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-21 18:53:13 +00:00
a18d0efc6d feat: add product catalog with filters, product detail page with AR support, enhanced homepage
- Backend: add GET /api/products/search (full-text) and GET /api/products/featured endpoints; update GET /:id to include related_products (same category, limit 4)
- Products.tsx: full rewrite with sidebar filters (METI toggle prominent first, category buttons, price bands), sort dropdown, 12-per-page pagination, search bar calling /search endpoint, empty state, responsive 1/2/3 col grid
- ProductDetail.tsx: new page with image, name/name_ja, price, METI badge, craftsman link, description, AR button (amber, only when ar_model_url + ar_eligible=true), ar_ineligible_reason badge, add-to-cart (login-gated), related products grid (max 4), reviews section (max 5, star rating)
- App.tsx: add /products/:id route for ProductDetail
- Home.tsx: category tiles already link to /products?category=<key>; add New Arrivals section fetching /api/products/featured showing 4-col product card grid

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-21 18:52:36 +00:00
ecc0d9ee83 feat: add craftsman profile page with featured endpoint and full craftsmen list linking
- Add GET /api/craftsmen/featured endpoint returning top 6 by product count
- Expand GET /api/craftsmen/:id to return all profile fields and last 12 products
- New CraftsmanProfile.tsx page: header, bio/story, stats, extended details, products grid
- Update CraftsmenList.tsx: category translations, years_of_practice, card links to /:id
- Add /craftsmen/:id route to App.tsx

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-21 18:50:43 +00:00
2fa526075e feat: add React frontend - homepage, auth, products, craftsmen pages
- React 18 + Vite + TypeScript + TailwindCSS + shadcn/ui components
- Auth pages (login/register) with JWT token management via Zustand store
- Homepage with 9 craft category tiles (ceramics first, lacquerware second)
- METI 伝統的工芸品 badge and featured section on homepage
- Products page with category filters + METI認定 filter
- Craftsmen list page with METI badge display
- Navbar with auth-aware navigation
- Japanese warm color theme (amber/terracotta)
- API proxy config pointing to Express backend

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-21 18:19:30 +00:00
6707c44d31 feat: add backend infrastructure - Express server, auth, CRUD APIs, DB migrations
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-21 18:16:11 +00:00
928e1125bf Initial commit 2026-02-21 18:06:14 +00:00