正在載入完整 README。 以下為已儲存的摘錄。
このプロジェクトは Turborepo を使用したモノレポ構成です。 • web: Next.js メインアプリケーション • LP(ランディングページ)、アプリ本体、API(Hono)、APIドキュメント(Scalar)、MCPサーバーを1つのアプリに統合 • admin: 管理画面 • Next.js + Refine + Ant Design で構築 • e2e: Playwright E2Eテスト(アプリではないが apps/ 配下で管理) • Webアプリ: WEB_PORT (デフォルト: 3000) • 管理画面: ADMIN_PORT (デフォルト: 3001) • Storybook: UIコンポーネント開発環境 • packages/uiのコンポーネントをStorybookで開発・確認できます すべてのパッケージとアプリは TypeScript で書かれています。檢視完整 README ↗
バイクユーザー向けの記録・管理アプリケーション
このプロジェクトは Turborepo を使用したモノレポ構成です。
web: Next.js メインアプリケーション (http://localhost:3000)
admin: 管理画面 (http://localhost:3001)
e2e: Playwright E2Eテスト(アプリではないが apps/ 配下で管理)WEB_PORT (デフォルト: 3000)ADMIN_PORT (デフォルト: 3001)packages/uiのコンポーネントをStorybookで開発・確認できます@repo/ui: React コンポーネントライブラリ@repo/theme: テーマ管理パッケージ(カラー・フォントサイズ・曲線・シャドウ等のデザイントークン)@repo/database: Prisma データベースパッケージ@repo/shared-types: 共有型定義@repo/shared-utils: 共有ユーティリティ@repo/email: メール送信パッケージ(Resend連携、ウェルカムメール・通知メール等のテンプレート)@repo/firebase-auth-server: Firebase 認証サーバー@repo/eslint-config: ESLint 設定@repo/typescript-config: TypeScript 設定すべてのパッケージとアプリは TypeScript で書かれています。
motoreco-web)を使用したコンテナデプロイを実施しているasia-northeast1(東京)development/docs/02_design/infrastructure.md を参照).env.local ファイルをプロジェクトルートに作成し、必要な環境変数を設定してください。
# データベース
DATABASE_URL=postgresql://user:password@localhost:5432/dbname
DATABASE_USER=user
DATABASE_PASSWORD=password
DATABASE_NAME=dbname
# Firebase
NEXT_PUBLIC_USE_FIREBASE_EMULATOR=true
FIREBASE_PROJECT_ID=your-project-id
FIREBASE_CLIENT_EMAIL=your-client-email
FIREBASE_PRIVATE_KEY=your-private-key
NEXT_PUBLIC_FIREBASE_API_KEY=your-api-key
NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=your-auth-domain
NEXT_PUBLIC_FIREBASE_PROJECT_ID=your-project-id
NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=your-storage-bucket
NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=your-sender-id
NEXT_PUBLIC_FIREBASE_APP_ID=your-app-id
NEXT_PUBLIC_FIREBASE_MEASUREMENT_ID=your-measurement-id
# Webアプリケーション
NEXT_PUBLIC_WEB_URL=http://localhost:3000 # Webアプリの公開URL(本番環境では本番URLを設定)
NEXT_PUBLIC_APP_VERSION=dev # アプリのバージョン表示用
# メール (Resend)
RESEND_API_KEY=your-resend-api-key
RESEND_FROM_EMAIL="MotoReco <[email protected]>"
写真アップロード機能をローカルで検証する場合の注意点は development/README.md の「写真アップロード機能(署名付きURL)のローカル検証」セクションを参照してください。
Docker Compose でローカル開発環境を起動します:
docker compose up -d
起動されるサービス:
# スキーマをデータベースに適用
pnpm turbo db:deploy
# Prisma Client の型生成
pnpm turbo db:generate
pnpm install
pnpm dev
# Webアプリのみ
pnpm dev:web
# 管理画面のみ
pnpm --filter admin dev
# UIコンポーネント開発用
pnpm storybook
# マイグレーションファイルの生成
pnpm turbo db:migrate
# Prisma Client の型生成
pnpm turbo db:generate
# スキーマをデータベースに適用
pnpm turbo db:deploy
# シードデータの投入
pnpm turbo db:seed
# Prisma Studio の起動 (packages/database 内で実行)
cd packages/database
pnpm prisma studio
# すべてのアプリとパッケージをビルド
pnpm build
# 特定のアプリをビルド
pnpm turbo build --filter=web
# すべてのユニットテストを実行
pnpm test
# テストをウォッチモードで実行
pnpm turbo test:watch
# カバレッジレポート付きでテスト(apps/web)
pnpm --filter web test -- --coverage
E2E テストを実行するには、事前に開発サーバーを起動してください。
# 事前準備: インフラ起動 + 開発サーバー起動
docker compose up -d
pnpm dev:web
# E2E テストを実行(Chromium)
pnpm test:e2e
# UI モードで実行(ブラウザで操作確認しながらデバッグ)
pnpm --filter @apps/e2e test:e2e:ui
# テスト結果レポートを表示
pnpm --filter @apps/e2e test:e2e:report
# リント実行
pnpm lint
# コードフォーマット
pnpm format
# 型チェック
pnpm check-types
詳細な開発ルールと設計ドキュメントは development/ ディレクトリを参照してください:
development/docs/00_overview/: 開発全体の概要development/docs/01_domain/: ドメイン設計development/docs/02_design/: システム設計development/docs/03_development/: 開発ルール
coding.md: コーディング規約git.md: Git運用ルールまた、docs/er-diagram.md にDBスキーマのER図(Mermaid)があります。
このプロジェクトでは Turborepo を使用してモノレポを管理しています。
# 特定のパッケージのみビルド
pnpm turbo build --filter=web
# 特定のパッケージと依存関係をビルド
pnpm turbo build --filter=web...
# 並列実行の制御
pnpm turbo build --concurrency=2
# キャッシュをクリア
pnpm turbo clean