あなたのタスクは、参照実装(Next.js製のオンラインサロンプラットフォーム「Salonify」)と同じ仕様のサービスを Java / Spring Boot で構築することです。
- これはコードレビュー実演イベント用のリポジトリです。あなたが作ったサービスに対して Pull Request ベースのレビューが行われます。
- 参照実装は
refs/web-app/salon-platform/(git submodule)にあります。仕様に迷ったらここのソースを直接読んで挙動を合わせてください。 - 元の要件定義は
docs/reference/requirements.md、参照実装の README はdocs/reference/original-service-README.mdにあります。
| ファイル | 内容 |
|---|---|
| 01-tech-stack-and-setup.md | 技術スタック(固定)、プロジェクト構成、docker compose 要件 |
| 02-data-model.md | 全13テーブルの定義 |
| 03-api-spec.md | 共通基盤(認証・ガード・サニタイズ・レート制限・モック方針)と全エンドポイント仕様 |
| 04-pages-spec.md | 全画面の仕様(表示・フォーム・遷移・アクセス制御) |
| 05-seed-data.md | シードデータ |
| 06-milestones.md | 実装順序と各ステップの完了条件(この順で進める) |
- 技術選定を変えない(01 に固定事項として明記。Spring Security 本体は使わない、フロントビルドは入れない、等)。
docker compose upの一発で起動すること。ホストマシンには Docker 以外何も要求しない。- 外部サービスに接続しない。メール・決済・画像ストレージはすべて 03 に定義したモック/ローカル実装。デプロイもしない。
- 参照実装の挙動を仕様として忠実に再現する。参照実装には奇妙な仕様(例: Markdown を受け取るフォーム名が
bodyHtml、権限エラー時に404で存在を隠す、ユーザー停止は passwordHash の上書き)が含まれるが、これらは意図的にそのまま作る。勝手に「改善」しない。 - 06 のマイルストーン順に実装し、各ステップの完了条件を検証してから次へ進む。
- 作業は
app/ディレクトリと ルートのdocker-compose.yml、ルートREADME.mdに閉じる。refs/とdocs/は変更しない。
- Stripe 実連携(Checkout / Webhook)、Resend による実メール送信、Vercel Blob、デプロイ設定
- 定期課金バッチ(参照実装にも存在しない。入会後の再請求は発生しない)
- 掲示板の複数カテゴリ("all" 固定)、通報理由の入力UI、モバイルアプリ、多言語化
方針変更(2026-07 追記): Stripe 実連携のうち「Checkout 遷移 +
GET /api/join/successでの入会確定」のみ、後から実装対象に加えた。参照実装と同じくSTRIPE_SECRET_KEYの有無で分岐する二段構えで、キー未設定(デフォルト)なら従来どおりモック即入会のため、docker compose up一発起動は変わらない。Webhook・継続課金・解約同期・プラン変更時のサブスク更新は引き続きスコープ外。詳細は 03 の「決済」の追記を参照。