DebateMatchは、オンラインディベートを通じて、議論力、論理的思考力、表現力を向上させることを目的としたWebアプリケーションです。ユーザーはリアルタイムで他のユーザーやAIとディベートを行い、終了後にはAIによる評価とフィードバックを受け取ることができます。
- ルーム管理: ディベートルームの作成、参加、管理。
- ディベート進行: 設定された形式に基づいた進行。
- テキストチャット: ディベート中のリアルタイムテキストチャット機能。
- AIディベート: AIを対戦相手としてディベート練習が可能。
- AIによる評価とフィードバック: ディベート終了後、AIが議論内容を分析し、評価とフィードバックを行う。
- 多言語サポート: 英語と日本語に対応。
- ディベート履歴: 過去のディベートとその結果を記録。
- ユーザー管理: ユーザー登録、ログイン、Googleアカウントでのログイン、プロフィール編集。
- バックエンド: Laravel 11, PHP 8.3
- フロントエンド: Livewire 3, Alpine.js, JavaScript, Tailwind CSS, Vite
- データベース: MySQL
- キャッシング & キュー: Redis, Laravel Horizon
- リアルタイム通信: Pusher, Laravel Echo
- 認証: Laravel Breeze, Laravel Socialite
- コンテナ: Docker (Laravel Sail)
- AI連携: OpenRouter API
- PHP 8.2以上
- Composer
- Docker & Docker Compose (推奨)
- Node.js & npm
リポジトリをクローンします:
git clone https://github.com/rytkhs/debatematch.git cd debatematchPHPの依存関係をインストールします:
composer install
環境ファイルをコピーします:
cp .env.example .env
Dockerコンテナを起動します:
./vendor/bin/sail up -d
アプリケーションキーを生成します:
./vendor/bin/sail artisan key:generate
マイグレーションを実行します:
./vendor/bin/sail artisan migrate --seed # AIユーザーを含む初期データを作成NPMの依存関係をインストールし、アセットをビルドします:
./vendor/bin/sail npm install ./vendor/bin/sail npm run dev
.envファイルで以下を設定します:
- データベース設定
- リアルタイムコミュニケーションのためのPusherの認証情報
- AI機能のためのOpenRouter APIキー
- AWSサービスを使用する場合のAWS認証情報
- AIユーザーのID
Pusher設定:
- Pusher ダッシュボードでアプリを作成し、クレデンシャルを
.envに設定します。 - Webhook を設定し、
member_addedおよびmember_removedイベントを有効にします。Webhook URL は/webhook/pusherです。
- アプリケーションにアクセスします:
http://localhost(または設定されたポート) - アカウントを登録またはログインします
- 利用可能なディベートルームを閲覧するか、独自のルームを作成します。
- ルームに参加し、ディベートの立場を選択します
- ルームの形式とルールに従ってディベートに参加します
- ディベートの履歴と結果を表示します。
詳細な設計ドキュメントはdocs/architectureを参照してください。
バックグラウンド処理のためにLaravel Horizonキューワーカーを実行します:
./vendor/bin/sail artisan horizonアプリケーションは多言語をサポートしています。翻訳ファイルはlangディレクトリにあり、Markdownコンテンツはresources/markdown/{locale}/にあります。
