操作
バグ #592
未完了【子チケット】WSL環境で単体機能開発
ステータス:
新規
優先度:
急いで
担当者:
-
開始日:
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 さんが約6時間前に更新
🌐 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開発設定
- 開発用 Webhook URL設定
- ngrok使用時の設定: https://xxxx.ngrok.io/line/webhook
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ドメインでの開発が可能になります。
操作