Skip to content

kentakki416/english-card-battle

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

English Card Battle


English Card Battle

エンジニアが楽しみながら英語を学べるカードバトルアプリケーション
詳細を見る »

バグ報告 · 機能リクエスト

目次
  1. プロジェクトについて
  2. 技術スタック
  3. プロジェクト構成
  4. セットアップ
  5. 開発
  6. ライセンス

プロジェクトについて

English Card Battleは、エンジニアが楽しみながら英語を学べるカードバトルアプリケーションです。リアルタイムバトルとソロ学習の両方に対応し、効率的な英語学習をサポートします。

主な機能

  • リアルタイムバトル: 他のユーザーとリアルタイムで対戦し、英語力を競い合う
  • ソロ学習: 自分のペースで英語学習を進められる
  • カードシステム: 動物のカードを使用した楽しい学習体験
  • 認証システム: 安全なユーザー管理とセッション管理

アーキテクチャ

このプロジェクトはクリーンアーキテクチャドメイン駆動設計の原則に基づいて構築されています:

  • ドメイン層: ビジネスロジックとエンティティ
  • ユースケース層: アプリケーションのビジネスルール
  • アダプター層: 外部システムとのインターフェース
  • インフラストラクチャ層: データベース、外部API、フレームワーク

(トップに戻る)

技術スタック

フロントエンド

Next.js 14 TypeScript Tailwind CSS React shadcn/ui
  • Next.js 14: App Routerを使用した最新のReactフレームワーク
  • TypeScript: 型安全性を確保した開発
  • Tailwind CSS: 効率的なスタイリング
  • shadcn/ui: 再利用可能なUIコンポーネント

バックエンド

Node.js TypeScript Express.js MongoDB JWT
  • Node.js: サーバーサイドJavaScriptランタイム
  • Express.js: Webアプリケーションフレームワーク
  • MongoDB: NoSQLデータベース
  • JWT: 認証トークン管理
  • クリーンアーキテクチャ: 保守性とテスタビリティを重視した設計

インフラストラクチャ

AWS Terraform Docker GitHub Actions
  • 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(ローカル開発用)

インストール手順

  1. リポジトリのクローン

    git clone https://github.com/your-username/english-card-battle.git
    cd english-card-battle
  2. フロントエンドのセットアップ

    cd client
    npm install
  3. バックエンドのセットアップ

    cd ../server
    npm install
  4. 環境変数の設定

    # 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 の下で公開されています。

(トップに戻る)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •