研修・セミナー管理システム プロジェクト一式(seminar)
研修・セミナーを開催する組織(企業・団体・自治体・支援機関など)向け。
講座カタログ(静的サイト)+申込受付+受講者管理+一斉連絡+名簿・実績台帳
(xlsx)。現行の WordPress サイトの研修・セミナー部分を置き換え、段階的に
全体の静的化へ進む足がかりとする。文書中の「機関」は導入する組織を指す。
現行(WordPress+手作業)
本システム
記事ページ+チラシPDF
講座ページ(静的生成)+チラシPDF+ページQR
記事内の埋め込みフォーム(企業+受講者最大3名+参加場所: 会場/ZOOM/サテライト)
申込様式 xlsx に記入→メール添付で返送 (同じ項目構成。Web 入力なし。様式と申込宛先は公開せず、受領メール・印刷物・電話で個別に渡す。印刷すれば FAX 申込書にもなる)
申込確認メールを送信
添付 xlsx を自動読み取り(openpyxl)→受領メール(申込番号つき)を自動返信。読めないものは事務局キューへ
Zoom接続情報を後日メールで手動送付
講座単位の一斉送信(参加場所別に宛先を絞れる。送信記録が残る)
名簿・実績を手作業で集計
当日名簿を xlsx で直接出力(印刷して受付で紙チェック)、年度実績台帳を xlsx 出力。Microsoft 365 不要 (OnlyOffice / LibreOffice で開ける)
入口
技術
役割
公開静的サイト
Python 生成の静的 HTML(Cloudflare Pages)
講座一覧・講座ページ・チラシ(様式 xlsx と申込宛先は公開しない ——ボット収集・スパム対策)
ブラウザ記入(経路1)
OnlyOffice Docs(自営)
何もインストールせずブラウザ内で様式に記入→送信。様式が唯一のフォーム定義
申込メール(経路2・3)
IMAP 監視+openpyxl
様式 xlsx の自動読み取り(経路2)/ 事前登録済みなら受講者名だけの簡易メール (経路3)
事務局アプリ
Flet / Python(DB 直結・内部のみ)
講座管理・申込一覧・未処理受信・企業マスタ・一斉メール・名簿/台帳 xlsx
事前登録 : 初回申込(経路を問わず)で企業情報が自動登録され、
二回目からは住所・電話を書かずに済む(送信者アドレスで引き当て)。
単発・小規模のイベントは本システムを使わず軽量キット
(AI 生成の案内ページ+神Excel+集計スクリプト。DB 不要。docs/06)。
パス
内容
CLAUDE.md
Claude Code への実装指示(規約・構成・禁止事項)
db/schema.sql
PostgreSQL スキーマ
docs/01_requirements.md
機能要件
docs/02_api.md
API 仕様(公開・申込のみ。事務局はAPIなし)
docs/03_apps.md
画面仕様
docs/04_infra.md
インフラ・デプロイ(並行稼働・段階移行)
docs/05_ai.md
AI 活用環境(Claude 非営利プラン+ローカルLLM)
docs/06_light.md
軽量キット(小規模イベント向け・システム外・DB不要)
docs/07_m365.md
なぜ Microsoft 365 を採用しないか(VBA とクラウドの二択の構造的欠陥)
docs/08_giteki.md
参考: 無線機器の認証制度とセキュリティ更新の両立に関する論点整理(ローカル運用の機器調達の制度的背景。単独配布可)
すべて機関内のローカルサーバーで自営する。外部サブスクを段階的に不要にする。
役割
ツール
置き換える外部依存
API・業務ロジック
FastAPI(Python)
外注CMS改修
データ
PostgreSQL
—
スタッフ認証
PocketBase
—
事務局アプリ
Flet(Python)
—
公開サイト
Python生成の静的HTML
WordPress
オンライン配信
Jitsi Meet(自営)
Zoom
メール
Stalwart(段階導入。当面は既存SMTPリレー)
外部メール
文書・台帳・ブラウザ記入
OnlyOffice(Desktop / Docs)+xlsx直接生成
Microsoft 365
コード・設定管理
Forgejo(引き継ぎの受け皿)
—
小規模の自動化(集計等の生成)
North Mini Code(ローカルコーディングAI)+OpenCode
VBA(Excelマクロ)
入口
Caddy+Cloudflare(公開静的のみ)
—
申込は xlsx 様式のメール送付 (Web 入力なし。Excel に記入して
メールに添付という、企業の担当者に一番慣れた動作)。様式は機械可読に
設計(名前付きセル・入力規則・保護)し openpyxl で自動読み取り。
読めないものは必ず事務局の未処理キューに落ちる。
様式は募集中の講座ページからダウンロードできる (受領メール・印刷物・
電話での個別送付も可)。申込宛先はページに書かず、様式の中にだけ
(ボット収集対策。様式由来でないメールに自動返信しないので逆流もない)。
様式には発行キー(HMAC)を埋め込み、返送時に発行物であることを検証する
(捏造・版ずれの検出)。
事務局スタッフのみ PocketBase でログイン(誰が操作したかの記録)
申込番号は DB 全体の通し番号 (年+連番)。名簿・実績台帳・問い合わせ
照合のキー
帳票はファイル直接生成 : 当日名簿は xlsx(openpyxl)、台帳は xlsx
(openpyxl)を直接書き出す。Office 連携 API・帳票製品・追加ライセンス・
Microsoft 365 は不要。帳票の追加は関数1本
決済なし : 受講料は無料が基本。有料講座は請求書等アプリ外(fee_note に表示)
段階移行 : まず研修・セミナーの申込と講座ページだけ新システムへ。
既存 WordPress は並行稼働のまま残し、カテゴリ単位で静的化を進め、
最終的に WordPress を退役させる(更新・脆弱性対応の保守負担の解消)
機関内のローカルサーバーに導入 (1機関1式。VPS・外部クラウドに
個人情報を置かない。公開講座情報の静的配信のみ Cloudflare)。
当方は構築と引き継ぎ研修 (時給1万円)を提供する
運用は機関の IT 人材(ITコーディネーター等)へ移管する前提 で設計・
文書化する(操作手順書を成果物に含める)。DX を教える立場の専門人材が
自組織のシステムを自走運用できる水準に作る。任意の運用支援(月1万円)は
残すが、依存を作らない
責任分界: サーバー・データ・メールドメインの所有と運用は機関。
当方は仕組みの提供と契約範囲の支援