入退室管理システム Monban を支える技術

この記事は、SYSKEN Advent Calendar 2021 3日目の記事です。

あらたです。 後期中間試験が終わり、最近は寒い日が続くようになってきました。

今回はシステム研究部で開発・運用を行っている入退室管理システムについて書いていきます。

目次

  • 背景
  • 作ったもの
  • 使用した技術
  • 感想

背景

昨年度から本校では感染症対策のため、課外活動に参加した学生を記録するようになりました。これを受けてシステム研究部では、Google Formsを使用して課外活動に参加した部員を記録していました。しかしこの方法は、正直に言ってかなり面倒です。記録を取るためだけに以下の行程が必要になります。

  1. QRコードをスマホで読み取る
  2. 必要な情報を記入する
  3. 送信する

1回の記録に1分かかると考えれば、5年間ある高専生活のうち30時間を無駄にすることになります。貴重な青春時代をそんなことで失うわけにはいきません。そこで、学生証だけで記録を取ることができる本システムのアイデアを思いつきました。

作ったもの

部室の入室時と退出時に学生証をかざすと、氏名と時刻が自動で記録されます。同時にSlackのチャンネルにも投稿され、誰が部室にいるのかを観測できます。

初期バージョンの開発期間は1日で、部費で購入してもらった機器が届いたその日のうちに動くものをつくりました。高専プロコンで忙しい時期に他のことをしたくなるのはよくあることだと思います。

使用した技術

構成図は以下のようになっています。

クライアントサイド

ハードウェアとして、鯖室にあったRaspberry Pi Model B+ v1.2と購入したSony PaSoRi RC-S380を使用しています。ここらへんの機材を発掘できるのは鯖室のよいところだと思います。

こちら側でしている処理は非常に単純で、学生証から読み取った学籍番号をサーバーに投げるだけです。インターネットへの接続や重複を防ぐ処理など面倒な部分がいくつかありましたが、それだけでした。

サーバーサイド

GolangとEchoでAPIサーバーを実装して、それをHerokuにデプロイしています。クライアントから受け取った情報は適切な加工を施したあとにGoogle Sheetsへ保存します。

最初はDBに保存しようと考えていましたが、データの取り出しやすさや安定性を考え最終的にGoogle Sheetsを選択しました。スマホからもデータを確認することができるため、よい選択だったのではと考えています。

「記録されたデータの可視化を行うサイトを構築する」というアイデアもありましたが、氏名や学籍番号、活動時間といった個人情報がインターネットに公開されるのはまずいと考え断念しました。ただ、かなりの量のデータが収集されるため、部内ハッカソンでなにかに活かせればと思っています。

感想

今のところは元気に動いてくれていてとても楽しいです。アイデア段階ではまったく想定していなかった活用方法もあり、なかなか便利なシステムになりました。特に、誰が部室にいるのかを把握できるようになったのは一つの革命だと思っています。

一方で、以前までシス研で使用されていた鍵管理ツールのように製作者依存の運用になっていることは大きな課題です。部として運用するための仕組みを整えつつ、今後もシステムを改善していきたいです。

明後日はTomookiの投稿です。お楽しみに!


コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください