How heromontage/headphones-blockchain works
Aether Audio is a headphone storefront with authenticated ordering and blockchain-based AETHER Points rewards. The main customer journey is browsing the product, getting an ETH-denominated quote, creating an order, paying from a wallet, and verifying payment; successful verification can mint rewards. Customers can also check balances, redeem points, manage profiles, and review orders. Admins have a separate order-management flow. The tree and README establish the broader UI capabilities, but unsampled page implementations leave some UI-to-API wiring uncertain.
Main entry points: [...nextauth]/route.ts Authentication · db.ts MySQL data · page.tsx Order page · orders/route.ts Create order
Components 29
Storefront
- Storefront
src/app/page.tsx - Product specs
src/app/specs/page.tsx - Order page
src/app/order/page.tsx - Order success
src/app/order-success/page.tsx - Customer profile
src/app/profile/page.tsx - Order admin
src/app/admin/orders/page.tsx - Sign-in UI
src/components/AuthModal.tsx - Wallet UI
src/components/WalletConnection.tsx - Rewards dashboard
src/components/RewardsDashboard.tsx
Orders and payments
- Price quote
src/app/api/orders/quote/route.ts - Create order
src/app/api/orders/route.ts - Order lookup
src/app/api/orders/[id]/route.ts - Payment verification
src/app/api/orders/[id]/verify-payment/route.ts - Admin orders API
src/app/api/admin/orders/route.ts - Order status API
src/app/api/admin/orders/[id]/status/route.ts
Identity and accounts
- Authentication
src/app/api/auth/[...nextauth]/route.ts - Signup
src/app/api/auth/signup/route.ts - Shipping address
src/app/api/user/address/route.ts
Blockchain rewards
- User points
src/app/api/user/points/route.ts - Wallet account
src/app/api/user/wallet/route.ts - Reward balance
src/app/api/rewards/get-balance/route.ts - Mint points
src/app/api/rewards/mint-points/route.ts - Redeem points
src/app/api/rewards/redeem-points/route.ts
Other components
- Customer
- Admin
- MySQL data
src/lib/db.ts - Token contract
- Customer wallet
- ETH price service
Connections 42
- Customer → Storefront: browses
- Storefront → Product specs: views details
- Customer → Order page: starts purchase
- Order page → Price quote: requests quote
- Order page → Create order: creates order
- Price quote → ETH price service: fetches rate
- Create order → ETH price service: fetches rate
- Create order → MySQL data: reads and writes
- Create order → Authentication: checks session
- Order page → Customer wallet: pays
- Customer → Wallet UI: connects wallet
- Payment verification → Authentication: checks session
- Payment verification → MySQL data: checks and updates
- Payment verification → Token contract: verifies payment; mints
- Customer wallet → Token contract: submits payment
- Order success → Order lookup: loads order
- Order success → Payment verification: submits transaction
- Order success → Mint points: requests points
- Mint points → Authentication: checks session
- Mint points → MySQL data: reads and updates
- Mint points → Token contract: mints tokens
- Customer profile → Shipping address: manages address
- Customer profile → Wallet account: manages wallet
- Customer profile → User points: loads points
- Rewards dashboard → Reward balance: checks balance
- Rewards dashboard → Redeem points: redeems points
- Reward balance → Authentication: checks session
- Reward balance → MySQL data: reads wallet
- Reward balance → Token contract: reads balance
- Redeem points → Authentication: checks session
- Redeem points → MySQL data: reads and updates
- Redeem points → Token contract: burns tokens
- Sign-in UI → Authentication: signs in
- Authentication → MySQL data: reads and writes
- Signup → MySQL data: creates account
- Admin → Order admin: manages orders
- Order admin → Admin orders API: lists orders
- Order admin → Order status API: updates status
- Admin orders API → Authentication: checks session
- Admin orders API → MySQL data: reads orders
- Order status API → Authentication: checks session
- Order status API → MySQL data: updates order