ブログアプリ設計編
中級編の集大成として、認証付きブログアプリを作成します。まずは設計からスタート!
Claude Codeでプロジェクトを始める
まずはプロジェクト用のフォルダを作成し、Claude Codeを起動しましょう。
Claude Codeへの指示
ターミナルで以下のコマンドを実行して、プロジェクトフォルダを作成し、Claude Codeを起動します。
# プロジェクトフォルダを作成 mkdir blog-app cd blog-app # Claude Codeを起動 claude
Claude Codeが起動したら、プロジェクトの設計について対話的に相談できます。以下のセクションで紹介するプロンプトを使って、設計を進めていきましょう。
プロジェクト概要
認証付きブログアプリ
機能
- ・ユーザー登録・ログイン
- ・記事の作成・編集・削除
- ・記事一覧・詳細表示
- ・自分の記事のみ編集可能
技術スタック
- ・Docker + Docker Compose
- ・MySQL + SQLAlchemy
- ・FastAPI + JWT認証
- ・Next.js + Tailwind CSS
プロジェクト構成
blog-app/
├── compose.yaml
├── .env
├── backend/
│ ├── Dockerfile
│ ├── requirements.txt
│ ├── main.py
│ ├── config.py
│ ├── database.py
│ ├── models.py
│ ├── schemas.py
│ ├── auth.py
│ ├── routers/
│ │ ├── auth.py
│ │ └── posts.py
│ └── alembic/
└── frontend/
├── Dockerfile
├── package.json
├── .env.local
├── src/
│ ├── app/
│ │ ├── layout.tsx
│ │ ├── page.tsx
│ │ ├── login/
│ │ ├── register/
│ │ └── posts/
│ ├── components/
│ ├── contexts/
│ ├── hooks/
│ └── lib/
└── tailwind.config.js
AIに設計を依頼
Claude Codeへの指示
認証付きブログアプリを作成したいです。 【技術スタック】 - フロントエンド: Next.js 14 (App Router), TypeScript, Tailwind CSS - バックエンド: FastAPI, SQLAlchemy - データベース: MySQL 8.0 - 認証: JWT - 環境: Docker Compose 【機能要件】 - ユーザー登録(メール、パスワード、名前) - ログイン/ログアウト - 記事のCRUD(作成・読取・更新・削除) - 記事一覧表示(新しい順、ページネーション) - 記事詳細表示 - 自分の記事のみ編集・削除可能 【質問】 1. データベースのテーブル設計を教えてください 2. APIエンドポイントの一覧を教えてください 3. フロントエンドのページ構成を教えてください 4. compose.yamlの設定を教えてください
Claude Codeが行うこと
- 1 要件を分析し、最適なデータベーススキーマを提案します
- 2 RESTful APIのエンドポイント設計を一覧で出力します
- 3 フロントエンドのページ構成とルーティングを設計します
- 4 Docker Composeの構成を含む、プロジェクト全体の構造を提案します
Claude Codeが提案した設計を以下に示します。あなたのプロジェクトでも同様の設計になるはずです。
データベース設計
users テーブル
id- INT, PKemail- VARCHAR(255), UNIQUEname- VARCHAR(100)password_hash- VARCHAR(255)created_at- DATETIMEupdated_at- DATETIME
posts テーブル
id- INT, PKtitle- VARCHAR(255)content- TEXTauthor_id- INT, FK → users.idcreated_at- DATETIMEupdated_at- DATETIME
API設計
| メソッド | エンドポイント | 説明 | 認証 |
|---|---|---|---|
| 認証 | |||
| POST | /auth/register | ユーザー登録 | - |
| POST | /auth/login | ログイン | - |
| GET | /auth/me | 自分の情報 | 必要 |
| 記事 | |||
| GET | /posts | 記事一覧 | - |
| GET | /posts/:id | 記事詳細 | - |
| POST | /posts | 記事作成 | 必要 |
| PUT | /posts/:id | 記事更新 | 必要(本人) |
| DELETE | /posts/:id | 記事削除 | 必要(本人) |
Claude Codeに設計ドキュメントを作成させる
設計内容が固まったら、Claude Codeに設計ドキュメントを生成してもらいましょう。実装中のリファレンスとして役立ちます。
Claude Codeへの指示
# Claude Codeに以下のように依頼します
今までの設計内容をもとに、DESIGN.md ファイルを作成してください。
以下の内容を含めてください:
1. プロジェクト概要と技術スタック
2. データベーススキーマ(usersテーブル、postsテーブル)
3. APIエンドポイント一覧(メソッド、パス、説明、認証要否)
4. フロントエンドのページ構成とルーティング
5. Docker Composeのサービス構成
設計ドキュメントのメリット
- ■ 実装中にAPIのパスやテーブル構造をすぐに確認できる
- ■ Claude Codeが DESIGN.md を参照して、設計に沿ったコードを生成してくれる
- ■ チーム開発時に設計意図を共有するドキュメントとして活用できる
画面設計
公開ページ
/- 記事一覧(トップ)/posts/[id]- 記事詳細/login- ログイン/register- 新規登録
認証必要ページ
/posts/new- 記事作成/posts/[id]/edit- 記事編集/mypage- マイページ
次のステップ
設計が完了したら、次は実装編に進みましょう。
- 1 Docker環境のセットアップ
- 2 バックエンドAPI実装
- 3 フロントエンド実装
- 4 テストとデバッグ