Skip to content

Latest commit

 

History

14 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

研修・セミナー管理システム プロジェクト一式(seminar)

研修・セミナーを開催する組織(企業・団体・自治体・支援機関など)向け。 講座カタログ(静的サイト)+申込受付+受講者管理+一斉連絡+名簿・実績台帳 (xlsx)。現行の WordPress サイトの研修・セミナー部分を置き換え、段階的に 全体の静的化へ進む足がかりとする。文書中の「機関」は導入する組織を指す。

現行運用の写像(運用を変えずに移行する)

現行(WordPress+手作業) 本システム
記事ページ+チラシPDF 講座ページ(静的生成)+チラシPDF+ページQR
記事内の埋め込みフォーム(企業+受講者最大3名+参加場所: 会場/ZOOM/サテライト) 申込様式 xlsx に記入→メール添付で返送(同じ項目構成。Web 入力なし。様式と申込宛先は公開せず、受領メール・印刷物・電話で個別に渡す。印刷すれば FAX 申込書にもなる)
申込確認メールを送信 添付 xlsx を自動読み取り(openpyxl)→受領メール(申込番号つき)を自動返信。読めないものは事務局キューへ
Zoom接続情報を後日メールで手動送付 講座単位の一斉送信(参加場所別に宛先を絞れる。送信記録が残る)
名簿・実績を手作業で集計 当日名簿を xlsx で直接出力(印刷して受付で紙チェック)、年度実績台帳を xlsx 出力。Microsoft 365 不要(OnlyOffice / LibreOffice で開ける)

3つの画面と役割分担

入口 技術 役割
公開静的サイト 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万円)は 残すが、依存を作らない
  • 責任分界: サーバー・データ・メールドメインの所有と運用は機関。 当方は仕組みの提供と契約範囲の支援

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages