「子どもが教室に着いたかどうか、毎回気になるんです」
ある習い事教室の先生から相談を受けたのは2026年の春だった。「気になる」という言葉が引っかかった。気になるというのは、心が落ち着かないということだ。そしてその不安を感じているのは先生ではなく、送り出した保護者の方だと気づくまでに少し時間がかかった。
子どもが一人で歩いて通う。先生はレッスンに集中したい。保護者は仕事中でも、子どもが無事に着いたかどうかをどこかで気にしている。この小さな不安を、テクノロジーで消せるかもしれない。
何を作るか、を考える前に
「何かシステムを作りたい」という依頼は、実はいちばん難しい。作ることが目的になると、本当に解決すべき問題を見失う。
このケースで解決すべき問題は2つあった。
入室した事実を保護者に伝えること。退室したタイミングを保護者に知らせること。
この2点だけだ。シンプルに保つことを最初に決めた。カメラを設置して顔認識する案も頭をよぎったが、「タブレットで生徒コードを入力する」という方法に落ち着いた。子どもが自分でボタンを押す。その行為自体が、習い事の始まりと終わりの「けじめ」になる。技術的な正確さより、使う人間の体験を優先した。
道具選びは、実績から選ぶ
技術スタックは迷わなかった。GAS(Google Apps Script)とLINE Messaging APIの組み合わせは、焼き菓子店や洋菓子店で動作実績があった。新しい技術を試す必要はない。動くことが分かっているものを、また動かす。
データはGoogleスプレッドシートで管理する。EC2(Amazonのサーバー)は既に動いているものをそのまま使う。費用という観点では、LINE公式アカウントは月200通まで無料で使える。習い事教室の規模なら無料枠の中に収まる。EC2は複数のサービスが同居しているから追加費用はほぼゼロだ。
月額数千円のSaaS型入退室管理システムを導入すれば、設定15分で動くかもしれない。しかし5年間使えば30万円以上になる。教室の先生がそのコストを価値として感じ続けられるか。私にはそうは思えなかった。
通知文面を決めるのに、一番時間をかけた
システムの心臓部は、ターン計算エンジンでも認証ロジックでもない。保護者のスマートフォンに届く、一行のメッセージだ。
入室通知:「✏️ [名前]さんが習い事教室に来ました。⏰ HH:MM」
退室通知:「🚗 [名前]さんのレッスンが終わりましたのでお迎えをお願いします。⏰ HH:MM」
絵文字は迷った末に残した。LINEのタイムラインに流れる他のメッセージに埋もれないように、という判断だ。習い事の鉛筆と、迎えに来る車。時刻を入れたのは「今まさに終わった」という事実を伝えるためだ。退室通知には「お迎えをお願いします」という動詞を入れた。情報を伝えるだけでなく、行動を促す。
受け取った保護者が、このメッセージを見て車のキーを手に取る。そのシーンを想像しながら文面を書いた。
登録フローは2ステップで終わらせる
保護者が通知を受け取るまでの手順を設計した。
- 教室の公式LINEをQRコードで友だち追加する
- 生徒コード(例:J001)を送信する
それだけだ。GASが受信した生徒コードを照合し、そのLINEユーザーIDを通知先として登録する。ITの知識がなくても、LINEを使える人なら誰でもできる。
解除も同じくシンプルだ。「配信停止」と送るだけでよい。
将来の自分への贈り物
最初から「1教室だけ」のシステムとして設計しなかった。生徒コードのプレフィックス(アルファベット)で教室を識別するマルチテナント構造にした。「J001」なら「JNK(入退室管理システム)」、別の教室が増えれば「K001」という具合に。URLパラメータで切り替えるだけで、同じシステムが別の教室にも使える。
この判断は「将来きっと他でも使う」という予感からではなく、「後から変えるのは面倒」という経験則からだ。最初からきれいに作っておく方が、長い目で見てコストが低い。
実装で詰まったことは別の話として
設計はシンプルでも、実装には2つの落とし穴があった。GASへのPOSTリクエストの問題と、スプレッドシートのDate型の問題だ。
どちらも初見では原因が見えにくい。次の記事でそれぞれ書く。
*次回は「GASはPOSTリクエストに302を返す——LINE Webhookの罠とEC2プロキシで解決した話」*
*シンプルシステム株式会社 代表 伊藤勝彦*