参加者の回答をもとに、AIを利用してグループ分けや会話スターターの生成を行うWebアプリケーションです。
- React
- TypeScript
- Vite
- React Router
- Chakra UI
- Firebase Authentication
- Node.js
- Express
- TypeScript
- Firebase Admin SDK
- Firebase Authentication
- Cloud Firestore
- Cloud Run
- Gemini API
- Secret Manager
- Artifact Registry
- Cloud Logging
group-matching-app/
├── frontend/ # Reactフロントエンド
├── backend/ # Express API
├── .gitignore
├── package.json
└── README.md
- Node.js 24
- npm
- Google Cloud CLI
- Firebaseプロジェクト
リポジトリをクローンします。
git clone <リポジトリのURL>
cd group-matching-appルート、フロントエンド、バックエンドの依存関係をインストールします。
npm install
npm install --prefix frontend
npm install --prefix backendフロントエンド用の環境変数を作成します。
cp frontend/.env.example frontend/.envfrontend/.env にFirebase Webアプリの設定値を入力します。
VITE_FIREBASE_API_KEY=
VITE_FIREBASE_AUTH_DOMAIN=
VITE_FIREBASE_PROJECT_ID=
VITE_FIREBASE_STORAGE_BUCKET=
VITE_FIREBASE_MESSAGING_SENDER_ID=
VITE_FIREBASE_APP_ID=バックエンド用の環境変数を作成します。
cp backend/.env.example backend/.envbackend/.env にGoogle Cloudプロジェクト情報を入力します。
PORT=8080
GOOGLE_CLOUD_PROJECT=ローカル環境でFirebase Admin SDKを使用するため、Application Default Credentialsを設定します。
gcloud auth login
gcloud auth application-default login
gcloud config set project <Google CloudプロジェクトID>同じFirebaseプロジェクトを利用する場合は、Google Cloud側で適切なIAM権限が必要です。
フロントエンドとバックエンドを同時に起動します。
npm run dev起動先は次のとおりです。
フロントエンド: http://localhost:5173
バックエンド: http://localhost:8080
APIの動作確認:
http://localhost:8080/api/health
- ReactとExpressの同時起動
- React Routerによる画面遷移
- Chakra UIの表示
- Firebase AuthenticationによるGoogleログイン
- Firebase IDトークンのExpress側での検証
- Firestoreプロジェクトの準備
以下のファイルや情報はGitHubへコミットしないでください。
.env- Gemini APIキー
- Firebase Admin SDKの秘密鍵
- サービスアカウントJSON
- Application Default Credentials
実際の環境変数は各自で設定し、共有用には .env.example を使用してください。