yusuketsunoda/ppt-trans

No description

0 stars0 forksUpdated Jan 26, 2026
npx skills add yusuketsunoda/ppt-trans

README

PowerPoint Translator 🌐

AIを活用してPowerPointプレゼンテーションを自動翻訳するWebアプリケーション

CI Deploy

✨ 機能

  • 📤 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分)

  1. リポジトリをクローン
git clone https://github.com/yourusername/ppt-trans.git
cd ppt-trans
  1. 依存関係をインストール
# Node.js依存関係
npm install

# Python依存関係(仮想環境推奨)
python3 -m venv venv
source venv/bin/activate  # macOS/Linux
pip install -r requirements.txt
  1. Supabaseローカル環境を起動(マイグレーション自動適用)
# Docker Desktopを起動してから
npx supabase start

# データベースをリセットして統合マイグレーションを適用
npx supabase db reset

💡 ヒント: supabase db reset は統合マイグレーションファイル(20251109_000000_unified_schema.sql)を自動的に適用します。これにより、テーブル、RLSポリシー、ストレージバケット、初期データがすべて設定されます。

  1. テストユーザーを作成(開発環境用)
# ローカル環境の認証情報(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
  1. 開発サーバー起動
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 EXISTSON CONFLICT を使用して、既存のオブジェクトとの衝突を回避しています。

📁 プロジェクト構造

ppt-trans/
├── src/
│   ├── app/              # Next.js App Router
│   │   ├── api/          # APIエンドポイント
│   │   ├── (auth)/       # 認証関連ページ
│   │   └── dashboard/    # ダッシュボード
│   ├── components/       # Reac

...
Read full README

Publisher

yusuketsunodayusuketsunoda

Statistics

Stars0
Forks0
Open Issues4
LicenseMIT License
CreatedAug 10, 2025