@totkeek (totkeek)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

QRコードと個別認証を活用した出欠確認フローについて

出欠確認システムについて意見交換をしたい

Qiitaに書き込みを行なうのは初めてです。お手柔らかに...

専門学校や大学などのスマートフォンの利用制限が緩い環境における生徒の出欠確認において、構想中のフローとシステムについてご意見を伺いたいです。

条件

  • 教員は業務用のタブレットないし、PCを所持している。
  • 教室内にはプロジェクターなどの投影施設がある。
  • 生徒はスマートフォンを所持している。
  • 生徒はメールアドレスとポータルサイトのアカウントを必ず登録している。
  • 構内にWIFIは無い。
  • 生徒は学生証を所持してるが、バーコードやICなどは無い。
  • オンライン授業については考慮しない。
  • 各授業は一意性のあるコードで管理されている

要件

おおまかな要件は以下の通りです。

  • 教員・生徒双方で出欠確認を行なう。
  • スマートフォンを所持していない。あるいは利用できない状態の生徒は教員が手作業で出欠情報を登録する。
  • 生徒側の不正(出席者と欠席者が欠席者を出席扱いにする工作行為など)を防ぐが、生徒の欠席抑止は行わない(毎回ランダムで点呼を取るなど)
  • 出欠情報はDBに格納する。

私の構想

概要

  1. 教員が出欠確認をとる
  2. 出席者毎に学籍番号と授業コード、日付などを元にハッシュ値を生成
  3. ハッシュ値をDBにセットしつつ、ハッシュ値を認証IDとして出席者にメールを送信
  4. 教員が授業・時間割毎のユニークなQRコードを表示
  5. 生徒がQRコードを読み取り
  6. 受け取った認証コード入力をQRコードから表示させた出欠入力サイトで入力

ところどころテキトーですがmermaidでシーケンスを描いてみました。

遅刻早退などの処理は考慮してません。

他の構想など

  • 認証コードではなく、ハッシュ値をゲットパラメーターに付加したQRコードリーダーWEBアプリのURLを送信する
    • ブラウザでQRコードを読み取るWEBアプリの開発が必要となるが、認証コードを入力する手間が省ける

この出欠確認フローに対しての懸念点や改善点、批評などがあればご意見頂きたいです。

2025/04/06
回答に対してコメントを付ける方法が分からず、このまま回答で返信すると、コミュニティの趣旨に反する可能性があると判断し、クローズとさせていただきました。
多くのご回答をいただき、本当にありがとうございました!

0 likes

批判中心になってしまい申し訳ないです。

  1. 画面を出すために教員が待機しておくという感じになると思うのですが、そうなると負担が増えてしまう。教員が来てからだと授業時間が減ってしまう。
  2. 目視で確認とあるが、確認できているなら複雑なシステムは必要か?
  3. QRコードのハッシュ値などは生徒側の不正の防止のためだと思うが、例えば認証コードをラインで送れば入力できてしまう。スマホ固有の番号を使えないか?
1Like

回答いただきありがとうございます!

1.について
画面にQRコードを表示するタイミングは授業中であればいつでも良いと思っています。例えば授業が終わる前など。

2について
(私自身、目視で確認するだけで済むと薄々思っていますが...)
生徒側から"出席していたのに、欠席扱いにされた"などと言われる可能性があるため、教員・生徒双方での出欠確認が必要になるので、やや複雑なシステムが必要になると考えています。

3について
出席者Aさん専用の認証コードを欠席者Bさんにラインで共有し、BさんがAさん専用コードを入力した場合、BさんがAさんの出席情報を登録したことになる。
AさんがBの変装をして教員の目を騙し代理出席を行う不正は防げませんが、例外的だと考えています。
スマホ固有の番号を利用する手段は良いとアイデアだと思いました!Cookieなどでしょうか?

0Like
  1. 出欠確認
  2. システムから出席者へメール
    1. 「もしメールが来ていないなら授業時間内に教員に報告すること」というルールを周知
  3. メールに返信してもらい、システムで機械的に処理
    1. 生徒には「返信が出席のカウントになる」と通知

出欠確認で本人がその場にいることの確認が出来る、メールの受信ができることで本人確認ができる、ぐらいのシステムでいいと思うけどな。

要件に対して、個別のコード発行やQRコードhogehogeの仕様は過剰に思える。

  1. 教員が出欠確認をとる

これの具体的な方法がちょっと気になる。
教員が生徒の顔を覚えている、席がきまっている等の方法であれば問題ないけど、点呼等の自己申告制だと不正が出来る余地がある。

仮に点呼とする。
生徒Aと生徒Bがいて、Aは出席してBが欠席しているとする。
点呼の時にAの名前が呼ばれた時はスルー、Bの名前が呼ばれた時にAが返事する。
Bは出席していると教員は認識し、Bにメールが届くので、Bは家から出席の処理をする。
Aは次のタイミングでメールが来ていないことを教員に報告する。Aは本人なので出席処理をせざる得なくなる。
もちろん何度も同じ手は使えない(何度もAが報告しに来たら不信)し、場合によっては点呼の返事した人を正確に覚えていて指摘できる場合はあるけど、ここぞという数回や複数人で回すことである程度の不正はできてしまうと考える。

1Like

教員の出欠確認にミスがあってトークンが送信されなかった場合、出席者が出席扱いになる方法は(システム上では)存在しないことから、このシステムのモチベーションは「欠席者を出席にさせない(ただしうっかりミスに限る。不正によるものは除く)」と理解したのですが、合っていますか?

0Like

回答いただきありがとうございます!

QRコードを利用せずにメールに対して返信を送る方法は灯台下暗しでした。シンプルで凄く良いと思いました!

教員による出欠確認の方法 について

教員による出欠確認の方法を定義していませんでした。申し訳ないです。
授業別に座席表が決まってあるケースであれば、教員は座席表と照らし合わせるだけで済みますが、
自由席の場合、midoribiさんのおっしゃる通り確かに不正が出来る余地がありますね…

教員に負担がかかりますが、やはり
出席者分のみの、物理的な小テストか一意な出席チケット?を配布して授業後に回収して確認する方法が無難な気がしますね。

0Like

ずれて回答してしまいました。申し訳ないです。

lhankor_mhyさん
その認識でおおよそ問題ないです。

0Like

厳格に出席を問うなら国家資格試験等と同様に顔写真と本人の比較が必要なので、
そこまでしないなら電子アンケートor電子テストの1問目にその講義のキーワードを入力させるほうが楽かなと思います。アンケートシステムはGoogleやMicrosoftも出しているので構築自体の費用も削減が期待できます。理解度の集計やテストの集計も自動で出来ます。
ただ、ユーザ側のインフラ(通信料)を使う前提なので
その点が課題だと考えますが、現行の構想でもそこは同一なので気にしていません。

1Like

認証IDはDBに保存するなら、ハッシュ値を使わずにワンタイムパスワードの方がいいと思います。わざわざ手間をかけて類推されやすくする必要はないかと。

ただ、単に学生と教員の両方で出欠確認がしたいだけなら個別にQRコード付きの出席チケットを渡し、授業が終わったら名前を書いて返させるとかの方が楽だと思いますけどね。
出席を確定したい学生には「スマホでチケットの写真を撮って保存しておけ」って言っておけばいいのでは?

1Like

「講義時間中にTAが全ての席を巡回し,学籍番号を聞いて回る」

「何なら教員は(TAが不正に加担していないかをチェックする目的で)出席者の人数くらいは確認しておくとか,全体風景を撮影しておくとか」

くらいじゃダメなのだろうか?
「アナログなのがダメ」って話でないならば.

1Like

既にクローズ済みですが、面白そうな話題なので私の意見を書いておきます。

時間・場所・人も決まっているので、教室にカメラ(天井カメラなど全体が写せるもの)を設置して自動的に顔認証して出欠を取れば良いのではないかと思います。

  1. 授業中に教室内にいる人を出席者と見なす。
    授業の始めに一括撮影したり、授業中にカメラが自動追尾するでもいいですし・・・
  2. 授業が終わるまで出席者と見なされた生徒に出席を確認した旨の通知を出す(メール、SMS、SNSなど)。
    同時に教師のタブレットにも出席者の情報が連携する。
  3. 授業が終了した際に出席通知が来ていない生徒は教師に申告して教師が手動で出席登録する。
    スマホを持ってない生徒は教師のタブレットから出席確認する。
    または授業終わりにプロジェクターで出席者一覧を映して「認識されてない奴出てこい」でもいいかも。

生徒側に何かアクションを要求すること自体が手間になりトラブルの元になりますし、不正の余地も残すことになりますので、できるだけ人手を介さない方が良いと思います。
最近のカメラの性能や顔認識の精度などを考えても実現は可能ではないかと思います。

2Like

クローズ済みなのに恐縮ですが、厳密さより教員生徒双方の負担軽減を重視した案です。

  1. プロジェクターなどでQRコードを表示
  2. 生徒がQRコードを読み取るとメール送信画面になるので、送信ボタンを押す
  3. 教員は受信したメールのFromに紐づいた生徒名のリストを見て目視確認または点呼(リスト内の確認できた生徒名をタップすると色が変わるようにすると人数が多くても楽になる)
  4. 教員はメールが送信できなかった者や点呼で呼ばれなかった者がいれば挙手するよう呼びかけ、いれば手動でリストに追加

肝になるのは授業ごとに固有のQRコードを生成し、出席者全員がその同じコードを読み取ってメール送信することです。
QRコードの内容はmailto:で、

  • 宛先:このシステムの受信専用メールアドレス
  • 件名:「出席確認メール」「授業名」「日時」など内容が理解できるもの
  • 本文:授業ごとに固有のハッシュ文字列

を指定したものにします。
メールのfromは「各生徒の登録済みメールアドレス」なので、システムがこのメールを受信した時点で認証作業は実質完了しています。
それ以降は「QRコードを非出席者に転送するといった不正がないか」「メール送信する機器がない」「メール送信に失敗」といったケースをカバーするための作業です。

教員は「教室を見渡して誰がいるのか確認してリストを作成する」より「リストに載っている生徒が教室内にいるのか確認する」方が対象人数を絞れるため点呼を含めても格段に負担が少なく、
生徒側のオペレーションは「QRコードを読み取ってメール送信、その後点呼があれば応えるだけ」と最小限です。

このようなシステムには詳しくなさそうな人も多く関わることを想定しないといけないので、ユーザーにやらせる操作は極端なほど単純でわかりやすいものにする必要があります。

1Like

Your answer might help someone💌