npx skills add yusuketsunoda/ppt-transREADME
PowerPoint Translator 🌐
AIを活用してPowerPointプレゼンテーションを自動翻訳するWebアプリケーション
✨ 機能
- 📤 PowerPointファイルアップロード - .pptx/.ppt形式対応(最大50MB)
- 🤖 AI翻訳 - Anthropic Claude APIによる高品質翻訳
- 📊 プレゼンテーション構造保持 - レイアウトを崩さず翻訳
- 👤 ユーザー認証 - Supabase Authによるセキュアな認証
- 📁 ファイル管理 - アップロード履歴と翻訳済みファイル管理
- ⚡ リアルタイム処理 - 進捗状況のリアルタイム表示
- 🔒 セキュリティ - レート制限、CORS、CSP対応
- 📈 モニタリング - Sentry、Google Analytics統合
🚀 クイックスタート
✅ テストユーザー(開発環境のみ)
- Email: test@example.com
- Password: Test123!
- Role: user
- Status: ログイン成功確認済み
- ⚠️ 注意: これらの認証情報はローカル開発環境(Supabaseローカル)でのみ有効です
✅ 管理者ユーザー(開発環境のみ)
- Email: admin@example.com
- Password: Admin123!@#
- Role: admin
- Status: ログイン成功確認済み
- ⚠️ 注意: これらの認証情報はローカル開発環境(Supabaseローカル)でのみ有効です
📝 重要: 本番環境では異なる認証情報が使用されます。本番環境でのログインには、実際に登録されたユーザーアカウントが必要です。
前提条件
- Node.js 18以上
- Docker Desktop
- Python 3.9以上(python-pptx用)
- Supabase CLI
セットアップ(約5分)
- リポジトリをクローン
git clone https://github.com/yourusername/ppt-trans.git
cd ppt-trans
- 依存関係をインストール
# Node.js依存関係
npm install
# Python依存関係(仮想環境推奨)
python3 -m venv venv
source venv/bin/activate # macOS/Linux
pip install -r requirements.txt
- Supabaseローカル環境を起動(マイグレーション自動適用)
# Docker Desktopを起動してから
npx supabase start
# データベースをリセットして統合マイグレーションを適用
npx supabase db reset
💡 ヒント:
supabase db resetは統合マイグレーションファイル(20251109_000000_unified_schema.sql)を自動的に適用します。これにより、テーブル、RLSポリシー、ストレージバケット、初期データがすべて設定されます。
- テストユーザーを作成(開発環境用)
# ローカル環境の認証情報(Supabase起動時に自動生成)
export SUPABASE_SERVICE_ROLE_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZS1kZW1vIiwicm9sZSI6InNlcnZpY2Vfcm9sZSIsImV4cCI6MTk4MzgxMjk5Nn0.EGIM96RAZx35lJzdJsyH-qQwv8Hdp7fsn3W0YpN81IU
export NEXT_PUBLIC_SUPABASE_URL=http://127.0.0.1:54321
export NEXT_PUBLIC_SUPABASE_ANON_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZS1kZW1vIiwicm9sZSI6ImFub24iLCJleHAiOjE5ODM4MTI5OTZ9.CRXP1A7WOeoJeXxjNni43kdQwgnWNReilDMblYTn_I0
# テストユーザーを作成
npx tsx scripts/setup-test-users.ts
- 開発サーバー起動
npm run dev
アプリケーションは http://localhost:3000 で利用可能です。
環境変数の設定(オプション)
環境変数ファイル(.env.local)が必要な場合のみ設定してください:
cp .env.local.example .env.local
# .env.localを編集して必要な値を設定
注意: ローカル開発環境では、Supabaseローカル環境が起動していれば、多くの環境変数は自動的に設定されます。
🔐 認証情報について
開発環境
- 上記のテストユーザー(test@example.com, admin@example.com)はローカル開発環境でのみ有効です
- Supabaseローカル環境が起動している間のみ利用可能
- 本番環境では使用できません
本番環境
- 実際のユーザー登録が必要
- 本番環境のSupabaseプロジェクトに接続
- セキュリティが強化された認証システム
🛠️ 技術スタック
フロントエンド
- Next.js 16 - React フレームワーク(App Router)
- TypeScript - 型安全な開発
- Tailwind CSS - ユーティリティファーストCSS
- shadcn/ui - 再利用可能なUIコンポーネント
バックエンド
- Supabase
- 認証(Auth)
- データベース(PostgreSQL)
- ファイルストレージ
- リアルタイム機能
- Anthropic Claude API - AI翻訳エンジン
- Python (python-pptx) - PowerPoint処理
DevOps & モニタリング
- Vercel - ホスティング、エッジ関数
- GitHub Actions - CI/CD
- Sentry - エラーモニタリング
- Google Analytics - 利用状況分析
- Docker - 開発環境の統一
📦 主要コマンド
# 開発
npm run dev # 開発サーバー起動
npm run build # プロダクションビルド
npm run start # プロダクションサーバー起動
# コード品質
npm run type-check # TypeScriptチェック
npm run lint # ESLintチェック
npm test # テスト実行
npm test:coverage # カバレッジレポート
# データベース
npm run db:setup # データベースセットアップ(Supabase起動 + マイグレーション適用)
npm run db:seed # テストユーザー作成
npm run db:init # データベースセットアップ + テストユーザー作成
npm run db:types # 型定義生成
# Schema-First 開発(OpenAPI)
npm run generate:types # OpenAPIスキーマからTypeScript型を生成
npm run validate:openapi # OpenAPIスキーマのバリデーション
# その他
npm run validate # 全チェック実行
npm run health:check # ヘルスチェック
🗄️ データベースマイグレーション
このプロジェクトは統合マイグレーション方式を採用しています。単一のマイグレーションファイル(supabase/migrations/20251109_000000_unified_schema.sql)で、すべてのテーブル、RLSポリシー、ストレージバケット、初期データを管理します。
マイグレーションの適用
# データベースをリセットして統合マイグレーションを適用(推奨)
npx supabase db reset
# または、既存データを保持したままマイグレーションを適用
npx supabase migration up
マイグレーションの確認
# 適用済みマイグレーションの確認
npx supabase migration list
# データベーススキーマの検証(オプション)
psql -h 127.0.0.1 -p 54322 -U postgres -d postgres -f supabase/migrations/validate_unified_schema.sql
💡 ヒント: 統合マイグレーションは冪等性(idempotent)を保証しているため、何度実行しても安全です。
IF NOT EXISTSやON CONFLICTを使用して、既存のオブジェクトとの衝突を回避しています。
📁 プロジェクト構造
ppt-trans/
├── src/
│ ├── app/ # Next.js App Router
│ │ ├── api/ # APIエンドポイント
│ │ ├── (auth)/ # 認証関連ページ
│ │ └── dashboard/ # ダッシュボード
│ ├── components/ # Reac
...
Publisher
Statistics
Stars0
Forks0
Open Issues4
LicenseMIT License
CreatedAug 10, 2025