
English README
Reddit 風のスレッド・コメントシステムのサンプル実装です。自由に話題を投稿し、コメントを通じてコミュニケーションを楽しめます。
本 README を含むプロジェクト内のコードは大半が AI により生成されたものであり、必ずしも正しい内容とは限らない点にご注意ください。
✨ 機能
- 👤 ユーザー認証(JWT)
- 📝 スレッド投稿・閲覧
- 💬 木構造コメントシステム
- 👨💻 ユーザープロフィールページ(投稿したスレッド・コメント一覧表示)
- 📱 レスポンシブデザイン
🛠️ 技術スタック
バックエンド
フロントエンド
📂 プロジェクト構成
minwada/
├── backend/ # Rust (axum) バックエンドAPI
│ ├── src/ # ソースコード
│ │ ├── main.rs # エントリーポイント
│ │ ├── config.rs # アプリケーション設定
│ │ ├── models/ # データモデル
│ │ │ ├── auth.rs
│ │ │ ├── threads.rs
│ │ │ └── users.rs
│ │ └── handlers/ # APIハンドラー
│ │ ├── auth.rs
│ │ ├── threads.rs
│ │ └── comments.rs
│ ├── migrations/ # DBマイグレーション
│ ├── database/ # DB設定
│ └── Cargo.toml # 依存関係
├── frontend/ # Next.js フロントエンド
│ ├── src/ # ソースコード
│ │ ├── app/ # App Router
│ │ │ ├── layout.tsx
│ │ │ └── page.tsx # ホームページ
│ │ ├── components/ # UIコンポーネント
│ │ └── lib/ # ユーティリティ
│ ├── generated/ # API自動生成コード
│ └── package.json # 依存関係
├── justfile # タスクランナー
└── README.md # このファイル
🚀 開発環境セットアップ
必要なツール
インストール手順
1️⃣ 事前準備
$ asdf install
$ cargo install cargo-watch
2️⃣ バックエンド
$ cd backend
$ cp .env.example .env # 環境変数を設定
3️⃣ フロントエンド
$ cd frontend
$ cp .env.example .env.local # 環境変数を設定
$ npm ci # 依存関係をインストール
開発環境の立ち上げ
$ just dev # バックエンドとフロントエンドの両方が起動します
アクセス先
💻 開発ワークフロー
- バックエンドで API 仕様変更
- OpenAPI 仕様が自動更新
- フロントエンドで
npm run generate-api 実行(もしくは npm run generate-api:watch で自動生成)
- 型安全な API クライアントが再生成
🔍 実装済み API
👤 ユーザー関連
- ユーザー登録・ログイン・ログアウト
- ユーザープロフィール表示
- ユーザーが投稿したスレッド一覧取得
- ユーザーが投稿したコメント一覧取得
- プロフィール編集
📋 スレッド関連
- スレッド一覧取得
- スレッド詳細取得
- スレッド作成・削除
💬 コメント関連
- スレッドのコメント一覧取得
- コメント投稿・削除
- 返信コメント(ネスト構造)
⚠️ 注意事項
- 本プロジェクトは学習・デモ用途のサンプル実装です
- 実際の運用にはセキュリティやパフォーマンスの考慮が必要です
- 継続的に機能追加・改善を行っています
- バグ報告や機能提案は Issue からお願いします
评论