How oxyyz/oasis-craft works
This is a Nuxt storefront for Samarkand Market, presenting Uzbek crafts in Japanese and English. Shoppers browse featured items or filter and sort the catalog, open product details, save favorites, and add items to a cart with delivery totals. The account page displays order, profile, address, and favorite views; the sampled account orders and profile are static UI, not connected to an order service. Product records and shared types form the internal catalog/model layer. Source excerpts do not establish checkout, newsletter submission, or external commerce integrations.
Main entry points: app.vue App Shell · cart.ts Cart Store · [id].vue Product Detail · index.vue Home Page
Components 17
Storefront
- App Shell
app/app.vue - Home Page
app/pages/index.vue - Site Header
app/components/AppHeader.vue - Site Footer
app/components/AppFooter.vue - Language Store
app/stores/lang.ts
Product Catalog
- Product Listing
app/pages/products/index.vue - Product Detail
app/pages/products/[id].vue - Product Card
app/components/ProductCard.vue - Product Shape
app/components/ProductShape.vue - Product Data
app/data/products.ts
Customer State
- Cart Drawer
app/components/CartDrawer.vue - Account Page
app/pages/account.vue - Cart Store
app/stores/cart.ts - Favorites Store
app/stores/favorites.ts
Shared Model
- Domain Types
app/types/index.ts
Other components
- Shopper
- Browser Storage
Connections 29
- Shopper → App Shell: opens storefront
- App Shell → Site Header: renders
- App Shell → Site Footer: renders
- App Shell → Home Page: routes to
- App Shell → Cart Store: hydrates
- App Shell → Favorites Store: hydrates
- Shopper → Home Page: browses
- Shopper → Product Listing: filters catalog
- Shopper → Product Detail: views item
- Shopper → Account Page: opens account
- Home Page → Product Data: reads featured items
- Product Listing → Product Data: filters and sorts
- Product Detail → Product Data: reads item and related
- Product Listing → Product Card: renders results
- Home Page → Cart Store: adds gift item
- Product Detail → Cart Store: adds item
- Product Detail → Favorites Store: toggles favorite
- Account Page → Favorites Store: reads and removes
- Cart Drawer → Cart Store: reads and updates
- Cart Store → Browser Storage: loads and saves cart
- Favorites Store → Browser Storage: loads and saves favorites
- Home Page → Language Store: reads language
- Product Listing → Language Store: reads language
- Product Detail → Language Store: reads language
- Account Page → Language Store: reads language
- Cart Drawer → Language Store: reads language
- Product Data → Domain Types: uses product type
- Cart Store → Domain Types: uses cart types
- Favorites Store → Domain Types: uses favorite types