English Card Battleは、エンジニアが楽しみながら英語を学べるカードバトルアプリケーションです。リアルタイムバトルとソロ学習の両方に対応し、効率的な英語学習をサポートします。
- リアルタイムバトル: 他のユーザーとリアルタイムで対戦し、英語力を競い合う
- ソロ学習: 自分のペースで英語学習を進められる
- カードシステム: 動物のカードを使用した楽しい学習体験
- 認証システム: 安全なユーザー管理とセッション管理
このプロジェクトはクリーンアーキテクチャとドメイン駆動設計の原則に基づいて構築されています:
- ドメイン層: ビジネスロジックとエンティティ
- ユースケース層: アプリケーションのビジネスルール
- アダプター層: 外部システムとのインターフェース
- インフラストラクチャ層: データベース、外部API、フレームワーク
(トップに戻る)
- Next.js 14: App Routerを使用した最新のReactフレームワーク
- TypeScript: 型安全性を確保した開発
- Tailwind CSS: 効率的なスタイリング
- shadcn/ui: 再利用可能なUIコンポーネント
- Node.js: サーバーサイドJavaScriptランタイム
- Express.js: Webアプリケーションフレームワーク
- MongoDB: NoSQLデータベース
- JWT: 認証トークン管理
- クリーンアーキテクチャ: 保守性とテスタビリティを重視した設計
- AWS ECS: コンテナオーケストレーション
- AWS ALB: ロードバランサー
- AWS VPC: ネットワーク分離
- Terraform: インフラストラクチャのコード化
- Docker: コンテナ化
- GitHub Actions: CI/CDパイプライン
(トップに戻る)
english-card-battle/
├── client/ # フロントエンド (Next.js)
│ ├── app/ # App Router
│ ├── components/ # UIコンポーネント
│ ├── lib/ # ユーティリティ
│ └── public/ # 静的ファイル
├── server/ # バックエンド (Node.js)
│ ├── src/
│ │ ├── adapter/ # アダプター層
│ │ ├── domain/ # ドメイン層
│ │ ├── usecase/ # ユースケース層
│ │ └── infrastructure/ # インフラ層
│ └── test/ # テストファイル
└── infra/ # インフラストラクチャ
├── aws/ # AWS Terraform設定
└── cdk/ # AWS CDK設定
- App Router: Next.js 14の新しいルーティングシステム
- shadcn/ui: 統一されたUIコンポーネント
- Tailwind CSS: ユーティリティファーストCSS
- クリーンアーキテクチャ: 依存関係の方向を制御
- ドメイン駆動設計: ビジネスロジックの明確な分離
- 依存性注入: テスタビリティの向上
- Terraform: インフラのコード化とバージョン管理
- ECS Fargate: サーバーレスコンテナ実行環境
- ALB: 高可用性ロードバランシング
(トップに戻る)
- Node.js 18以上
- npm または yarn
- Docker
- MongoDB(ローカル開発用)
-
リポジトリのクローン
git clone https://github.com/your-username/english-card-battle.git cd english-card-battle
-
フロントエンドのセットアップ
cd client npm install
-
バックエンドのセットアップ
cd ../server npm install
-
環境変数の設定
# client/.env.local NEXT_PUBLIC_API_URL=http://localhost:3001 # server/.env MONGODB_URI=mongodb://localhost:27017/english-card-battle JWT_SECRET=your-secret-key PORT=3001
# フロントエンド(ポート3000)
cd client
npm run dev
# バックエンド(ポート3001)
cd server
npm run dev
(トップに戻る)
# フロントエンドテスト
cd client
npm test
# バックエンドテスト
cd server
npm test
# ESLint
npm run lint
# TypeScript型チェック
npm run type-check
# インフラのデプロイ
cd infra/aws
terraform init
terraform plan
terraform apply
(トップに戻る)
このプロジェクトは Unlicense License の下で公開されています。
(トップに戻る)