Saleor Store
우리 컬렉션을 쇼핑하세요
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
自転車(中古車体・パーツ)に特化した C2C マーケットプレイスの MVP。 • スマホファースト(375px 基準)で設計し、PC はレスポンシブ対応 • 対応ブラウザ: 最新版 Chrome / Safari / Edge(iOS Safari・Android Chrome を含む) • ユーザー種別: 出品者・購入者(同一アカウントで兼任)・運営管理者 マイグレーションを足したら pnpm db:hosted を実行して、 生成された supabase/setup-hosted.sql を一緒にコミットする(CI が確認する)。 管理画面(/admin)は users.role = 'admin' のユーザーのみアクセスできます。 管理画面上での管理者追加 UI は MVP の対象外のため、DB を直接更新してください。 決済の確定は Webhook のみを正としています。Stripe CLI で転送してください。 テストカードは 4242 4242 4242 4242(有効期限は未来の任意日、CVC は任意の3桁)。 評価の14日自動公開と、未決済取引の掃除を行います。README 전문 보기 ↗
自転車(中古車体・パーツ)に特化した C2C マーケットプレイスの MVP。
| レイヤ | 採用 |
|---|---|
| アプリ | Next.js 16(App Router / Turbopack)+ React 19 + TypeScript |
| UI | Tailwind CSS v4 + shadcn/ui |
| DB / 認証 / 画像 | Supabase(PostgreSQL / Auth / Storage) |
| 決済 | Stripe Checkout + Webhook |
| メール | Resend |
| ホスティング | Vercel(日次バッチは Vercel Cron) |
| テスト | Vitest(ユニット)/ Playwright(E2E) |
前提: Node.js 20.9 以上、pnpm、Docker
pnpm install
# Supabase をローカル起動(初回はイメージ取得に数分かかる)
pnpm db:start
# 出力された ANON_KEY / SERVICE_ROLE_KEY を .env.local に設定する
cp .env.example .env.local
# 型を生成
pnpm db:types
pnpm dev # http://localhost:3000
pnpm lint # ESLint
pnpm format # Prettier(整形)
pnpm typecheck # tsc --noEmit
pnpm test # Vitest(ユニット)
pnpm test:e2e # Playwright(E2E。シードを入れてから流す)
pnpm build # 本番ビルド
pnpm db:reset # マイグレーション再適用 + シード
pnpm db:types # src/types/database.ts を再生成
pnpm db:hosted # supabase/setup-hosted.sql を作り直す
マイグレーションを足したら pnpm db:hosted を実行して、
生成された supabase/setup-hosted.sql を一緒にコミットする(CI が確認する)。
| 用途 | URL |
|---|---|
| アプリ | http://localhost:3000 |
| Supabase API | http://127.0.0.1:54321 |
| 送信メールの確認(Inbucket) | http://127.0.0.1:54324 |
node scripts/seed-dev.mjs 500 # ダミー商品を 500 件作成
管理画面(/admin)は users.role = 'admin' のユーザーのみアクセスできます。
管理画面上での管理者追加 UI は MVP の対象外のため、DB を直接更新してください。
update public.users set role = 'admin' where email = '[email protected]';
決済の確定は Webhook のみを正としています。Stripe CLI で転送してください。
stripe listen --forward-to localhost:3000/api/webhooks/stripe
# 表示された whsec_... を .env.local の STRIPE_WEBHOOK_SECRET に設定する
テストカードは 4242 4242 4242 4242(有効期限は未来の任意日、CVC は任意の3桁)。
評価の14日自動公開と、未決済取引の掃除を行います。
curl -H "Authorization: Bearer $CRON_SECRET" http://localhost:3000/api/cron/daily
.env.example を参照してください。本番(Vercel)にも同じキーを設定します。
| 変数 | 用途 |
|---|---|
NEXT_PUBLIC_APP_URL | メール本文・OAuth リダイレクトの絶対 URL |
PLATFORM_FEE_RATE | 販売手数料率(表示のみ。精算処理は対象外) |
NEXT_PUBLIC_SUPABASE_URL / NEXT_PUBLIC_SUPABASE_ANON_KEY | クライアント用 |
SUPABASE_SERVICE_ROLE_KEY | サーバー専用。src/lib/supabase/admin.ts からのみ参照 |
SUPABASE_DB_URL | supabase db push 用の direct connection |
STRIPE_SECRET_KEY / STRIPE_WEBHOOK_SECRET | 決済 |
RESEND_API_KEY / EMAIL_FROM | メール送信 |
CRON_SECRET | /api/cron/daily の保護 |
Supabase(本番プロジェクト)
supabase link --project-ref <ref> → pnpm db:pushsupabase/seed.sql のブランドマスタを投入/auth/callback を登録listing-images / avatars バケットが作成されていることを確認Google OAuth(甲名義の Google Cloud プロジェクト)
https://<supabase-ref>.supabase.co/auth/v1/callback を追加Stripe
https://<本番ドメイン>/api/webhooks/stripe を登録checkout.session.completed, checkout.session.expiredSTRIPE_WEBHOOK_SECRET に設定Resend
Vercel
vercel.json の Cron(毎日 JST 4:00)が登録されることを確認docs/requirements/)| ドキュメント | 内容 |
|---|---|
| 00_overview.md | 目的・前提・スコープ・対象外・用語定義 |
| 01_functional.md | 機能要件(FR-01〜FR-14) |
| 02_screens.md | 画面一覧・遷移・UI/UX 方針 |
| 03_data_model.md | データモデル |
| 04_tech_stack.md | 技術スタック・外部サービス |
| 05_non_functional.md | 非機能要件 |
| 06_development_plan.md | 開発計画・受入基準 |
docs/plan/)| ドキュメント | 内容 |
|---|---|
| 00_execution_guide.md | 実行ガイド・ADR・ディレクトリ構成 |
| 01_bootstrap.md 〜 08_notifications_polish.md | フェーズ別の実装計画 |
| ACCEPTANCE_RESULT.md | 受入テストの実施結果 |
| RESPONSIVE_CHECK.md | レスポンシブ点検の結果 |
| BACKLOG.md | スコープ外の改善候補 |
別紙1 第3項に基づき、以下は本 MVP に含まれません。