1このシステムは何?
学会の「演題投稿 → 査読 → 採否 → プログラム編成 → 参加登録 → 決済 → 当日運営」を一気通貫で管理するSaaS。
2全体構造(セキュリティ5層)
3ロール階層(権限の強さ)
4演題の状態遷移(ライフサイクル)
5外部サービスとの接続
6決済フロー(Stripe連携)
7Claude API 匿名化フロー
8Server Actions の分類(43ファイル)
演題管理
- abstract.ts — 投稿CRUD、下書き保存、排他制御
- coauthor-approval.ts — 共同演者トークン承認
- admin.ts — 採否判定一括、ページネーション
査読
- review.ts — 割り当て(利益相反チェック付き)、提出
- reviewer.ts — 査読者管理、CSVインポート
- reviewer-invitation.ts — トークン招待フロー
AI連携
- ai-abstract.ts — フォーマットチェック(Sonnet)
- ai-email.ts — メール文面生成(Sonnet)
- ai-analytics.ts — 統計コメント生成(Haiku)
- ai-review-criteria.ts — 査読基準生成(Sonnet)
決済・登録
- registration.ts — Stripe Checkout、クーポン
- auth.ts — login/register/logout、Google OAuth
通知・メール
- batch-email / bulk-email
- notification / push
その他
- timetable / session-qa / survey
- chatbot-inquiry / checkin / faq
- sns-post 等
9データベース主要テーブル(関係図)
コミュニケーション系: announcements / email_notifications / notifications / push_subscriptions / session_qa / batch_emails
拡張系: ads / surveys / chatbot_inquiries / researcher_profiles / research_outputs / audit_logs / access_logs
10管理画面のセクション構成(28セクション)
| カテゴリ | セクション |
| 演題管理 | abstracts, categories, export |
| 査読管理 | reviewers, review-progress, review-criteria |
| プログラム | timetable, timetable/editor |
| 登録・決済 | registrations, registration-fees, coupons |
| 問い合わせ | inquiries, chatbot-inquiries, chatbot-escalations, faqs |
| メール | email-templates, email-history, batch-emails |
| 告知 | announcements, ads, sns |
| 分析 | statistics, access-logs, audit-logs |
| その他 | surveys, checkin, conference, users |
11設計上の注意点
| 項目 | 内容 |
| 単一大会想定 |
conferences を limit(1).single() でクエリ。複数大会未対応 |
| 排他制御の限界 |
submission-queue は in-memory。Vercelインスタンス間で共有されない。DBの UNIQUE 制約が最終防衛ライン |
| service_role の限定使用 |
Stripe Webhook と Cron の2箇所のみ |
| コスト管理 |
FAQ(Haiku)+ 問い合わせ(Sonnet)で月$5上限を共有 |