プロジェクト

全般

プロフィール

バグ #592

未完了

【子チケット】WSL環境で単体機能開発

Redmine Admin さんが1日前に追加. 約11時間前に更新.

ステータス:
新規
優先度:
急いで
担当者:
-
開始日:
2025-06-18
期日:
進捗率:

0%

予定工数:

説明

目的

WSL環境でのローカル開発環境構築と単体機能の実装

作業内容

1. 開発環境構築(WSL2 + Ubuntu)

  • Node.js 18+ インストール
  • pnpm インストール・設定
  • PostgreSQL + PostGIS セットアップ
  • Redis セットアップ
  • Docker & Docker Compose セットアップ

2. プロジェクト基盤構築

  • モノレポ構成作成
    rental-matching-app/
    ├── apps/web/          # React MPA
    ├── apps/api/          # Express API
    ├── apps/line-bot/     # LINE Bot
    ├── packages/shared/   # 共通ライブラリ
    ├── packages/database/ # Prisma
    ├── packages/ui/       # UIコンポーネント
    └── packages/i18n/     # 多言語リソース
    
  • TypeScript strict 設定
  • ESLint + Prettier 設定
  • Tailwind CSS + LINE Design Language 設定

3. Phase 1 コア機能開発(16週間分)

Week 1-2: 認証システム

  • JWT認証実装(AUTH-001〜009)
  • 多要素認証(SMS/メール)
  • ユーザー登録・ログイン機能
  • 権限管理(大家/入居者)

Week 3-4: 物件管理基盤

  • 物件CRUD操作(PROP-001〜009)
  • 画像アップロード・最適化
  • 住所ジオコーディング(MAP-001〜002)
  • 多言語物件情報管理

Week 5-6: 検索機能

  • 物件検索エンジン(SEARCH-001〜008)
  • 条件検索・フィルタリング
  • 地図連動検索
  • 検索結果キャッシュ

Week 7-8: 表示機能

  • 物件詳細ページ
  • 物件一覧ページ
  • お気に入り機能
  • レスポンシブ対応

Week 9-10: コミュニケーション機能

  • 問い合わせシステム
  • メール通知機能(NOTIFY-001〜006)
  • 大家ダッシュボード
  • 多言語対応

4. 多言語対応実装

  • i18n設定(8言語対応)
  • 翻訳リソース管理(I18N-001〜007)
  • 自動翻訳API統合
  • 言語切替機能

5. データベース実装

  • Prisma スキーマ定義
  • マイグレーション作成・実行
  • シードデータ作成
  • インデックス最適化

成果物

  • 動作する開発版アプリケーション
  • ソースコード(GitHubリポジトリ)
  • 開発環境構築ドキュメント
  • 各機能の動作確認書

技術要件

  • React 18 (MPA) + TypeScript + Tailwind + Vite
  • Node.js + Express + TypeScript
  • PostgreSQL + PostGIS + Prisma
  • LINE Design Language準拠
  • テストコード同梱

前提条件

  • チケット#591(試験仕様確認)完了
  • WSL2環境の準備完了

期間

10週間(Phase 1 MVP機能)

優先度

最高

Redmine Admin さんが約11時間前に更新

🌐 WSL開発環境でのドメイン設定対応

estate.3dwork.jp ドメインでの開発に伴い、WSL環境での開発設定を追加します:

1. 開発環境ドメイン設定

ローカル開発環境設定

  • hosts ファイル設定

    # /etc/hosts (WSL)
    127.0.0.1 dev.estate.3dwork.jp
    127.0.0.1 dev-api.estate.3dwork.jp
    
  • Vite 開発サーバー設定

    // vite.config.ts
    export default defineConfig({
      server: {
        host: 'dev.estate.3dwork.jp',
        port: 3000,
        proxy: {
          '/api': 'http://dev-api.estate.3dwork.jp:8000'
        }
      }
    });
    

2. Express API開発設定

  • Express サーバー設定
    // apps/api/src/server.ts
    const app = express();
    
    // CORS設定(開発環境)
    app.use(cors({
      origin: [
        'http://dev.estate.3dwork.jp:3000',
        'https://dev.estate.3dwork.jp'
      ],
      credentials: true
    }));
    
    app.listen(8000, () => {
      console.log('API Server running on dev-api.estate.3dwork.jp:8000');
    });
    

3. 環境変数設定

  • 開発環境用環境変数
    # .env.development
    VITE_APP_DOMAIN=dev.estate.3dwork.jp
    VITE_API_BASE_URL=http://dev-api.estate.3dwork.jp:8000/api
    VITE_WEB_BASE_URL=http://dev.estate.3dwork.jp:3000
    
    # API側
    NODE_ENV=development
    CORS_ORIGINS=http://dev.estate.3dwork.jp:3000
    COOKIE_DOMAIN=.estate.3dwork.jp
    

4. 多言語リソース設定

  • i18n URL設定
    // packages/i18n/src/config.ts
    export const i18nConfig = {
      baseUrl: process.env.NODE_ENV === 'development' 
        ? 'http://dev.estate.3dwork.jp:3000'
        : 'https://estate.3dwork.jp',
      // ...
    };
    

5. 外部API開発設定

  • Google Maps API設定

    • 開発用API キー設定
    • HTTP リファラー許可: dev.estate.3dwork.jp
  • LINE Bot開発設定

6. SSL証明書(開発環境)

  • mkcert による自己署名証明書
    # WSL環境でmkcert インストール・設定
    mkcert -install
    mkcert "*.estate.3dwork.jp" localhost 127.0.0.1
    
    # Vite HTTPS設定
    server: {
      https: {
        key: fs.readFileSync('localhost+2-key.pem'),
        cert: fs.readFileSync('localhost+2.pem'),
      }
    }
    

7. 開発用Docker Compose設定

  • docker-compose.dev.yml
    version: '3.8'
    services:
      web:
        build: ./apps/web
        ports:
          - "3000:3000"
        environment:
          - VITE_APP_DOMAIN=dev.estate.3dwork.jp
        extra_hosts:
          - "dev.estate.3dwork.jp:127.0.0.1"
          
      api:
        build: ./apps/api  
        ports:
          - "8000:8000"
        environment:
          - CORS_ORIGINS=http://dev.estate.3dwork.jp:3000
        extra_hosts:
          - "dev-api.estate.3dwork.jp:127.0.0.1"
    

これらの設定により、本番環境に近い開発環境でestate.3dwork.jpドメインでの開発が可能になります。

他の形式にエクスポート: Atom PDF