定期授業の自動生成と手動編集の両立
定期授業の設定から月間授業と講師の仮シフトを自動生成します。管理者が手動で変更した授業やシフトは編集状態を保持し、同じ月を再生成しても上書きしません。
授業、生徒・講師、シフト、給与、振替を管理し、講師はLINEからシフトを確認できます。
アルバイト先では、授業予定や講師シフト、給与などをExcelを中心に管理していました。
最初に、Excelのシフト表を取り込み、講師へLINEで勤務前通知を送るシフト通知システムを開発しました。このシステムは現在も実際の教室で運用しています。
運用を続ける中で、毎月の授業予定をExcelで作成する負担など、他の業務についてもシステム化したいという相談を受けました。こうして、授業、生徒、講師、シフト、給与、振替を管理する現在の教室管理システムの開発に進みました。
実際の教室での長期利用を想定し、現時点でランニングコストをかけずに運用できることを条件にしました。常時稼働するサーバーを置かず、Cloudflareのサービスを組み合わせています。
定期授業の設定から月間授業と講師の仮シフトを自動生成します。管理者が手動で変更した授業やシフトは編集状態を保持し、同じ月を再生成しても上書きしません。
シフトを公開する前に、仮シフトが残っていないか、担当講師が設定されているか、出勤不可日や時間重複がないかを確認します。問題が残っている場合は、シフト画像の生成とLINEへの配信を行いません。
LINE通知は、D1にOutboxを保存してからCloudflare Queuesで処理します。Queueへの投入やLINE APIへの送信が一時的に失敗した場合は、Cronで回収して再送します。Retry Keyで重複通知も抑えています。
本番の管理画面はCloudflare AccessとMFAで保護し、アプリケーション内では管理者と講師の権限を分けています。講師は許可された自身のデータのみを操作できます。
シフト画像はPrivate R2に保管し、公開URLにはしていません。LINEからはLIFFで本人確認を行い、講師アカウントとの紐付けと管理者承認を終えたユーザーだけが、Worker経由で画像を取得できます。
シフト通知システムは現在も実際の教室で運用しています。教室管理システムは、授業自動生成、シフト・給与・振替管理、LINE連携などの主要機能を実装済みで、実際の教室への導入を進めています。