月謝袋アプリ v1.11.4 のリリースで、先生側から生徒さんを「退会扱い」にしたり、後から「復帰」させたりできる機能を追加しました。実は今朝、ユーザーさんから「生徒を削除したいのですが操作方法を教えてください」というお問い合わせをいただいたことがきっかけで、この機能を実装することにしました。
なぜ「削除」ではなく「退会扱い」なのか
最初に考えたのは、生徒のデータを完全に削除する機能を作ることでした。ただ、月謝袋アプリには月謝の受領履歴やCSVエクスポートといった大切なデータが連動しています。生徒のデータを物理的に消してしまうと、過去のお金の履歴との整合性が取れなくなってしまうので、これは避けたい。
そこで採用したのが、業界では「ソフトデリート(論理削除)」と呼ばれるパターンです。データ自体は残したまま、「この生徒さんは現在お休み中ですよ」というフラグを立てる方式です。これなら、過去のデータを失うことなく、現役の生徒さんだけをスッキリ表示できます。
実装したこと
[生徒管理画面のスクショ]

新しく追加された「生徒管理画面」は、設定タブの一番下、「生徒の管理」セクションから開けるようになっています。「アクティブな生徒」タブと「退会済みの生徒」タブの2つに分かれていて、それぞれワンタップで状態を切り替えられます。
[退会確認ダイアログのスクショ]

「退会」ボタンを押すと、誤操作を防ぐための確認ダイアログが出ます。データは保持されたまま、退会扱いになりますよ、ということがしっかり書かれているので、安心して操作できます。
[ここに復帰機能のスクショ]

「退会済みの生徒」タブには、「復帰」ボタンが付いています。
これがけっこう大事で、
大学受験などで一時的にお休みしていた生徒さんが、数年経ってから戻ってこられるケースがあります。
そういうときに、ワンタップで現役生徒として復帰させられて、しかも過去のレッスン記録もそのまま引き継がれる。これは長くアプリを使ってくださっているユーザーさんにとって、地味だけど大切な機能だと思います。

何が変わるか
退会扱いにした生徒さんは:
- レッスン登録画面の生徒選択ドロップダウンから非表示になります
- 月謝スタンプ画面の生徒選択からも非表示になります
- 定期一括追加の生徒選択からも非表示になります
つまり、現役の生徒さんだけが一覧に残るので、操作がぐっと楽になります。これは、私自身も先生として月謝袋アプリを使っていて、「退会した生徒さんがずっと一覧に残ってるな、邪魔だな」と感じていた問題そのものでした。質問者さんに教えていただいて、はじめて「自分も同じ悩みを持っていたんだ」と気づきました。
多言語対応
月謝袋アプリは日本語のほか、英語・スペイン語・フランス語・韓国語・中国語(簡体字・繁体字)に対応しています。今回追加した生徒管理機能も、すべての言語で表示されます。
設計の裏側のお話
技術的な話になりますが、実装にあたって users コレクションに isActive(アクティブかどうか)と quitDate(退会した日)の2つのフィールドを追加しました。Firestore のセキュリティルールも一部修正し、「先生は自分の教室の生徒だけ更新できる」という条件を加えました。他の先生の教室の生徒さんに勝手にフラグを立てられたら大変なので、ここは慎重に。
復帰時には isActive を true に戻すだけで、過去の月謝データやレッスン記録はすべて自動的に引き継がれます。データ設計の段階で「数年後の復帰」も想定して作ったので、これがちゃんと動くのは気持ちいいですね。
App Store / Google Play
現在、App Store と Google Play の両ストアで審査中です。承認後、最新バージョンとしてご利用いただけるようになります。
「退会した生徒さんが一覧に残って邪魔だな」と感じていた先生方、ぜひお試しいただけると嬉しいです。今後とも月謝袋アプリをよろしくお願いいたします。
