こんにちは。mint73です。

概要

現在、私と物理部の部長で翠巒祭の会計で利用するアプリケーションの開発を進めています。 本文ではその内容や進捗について記述しています。

経緯

  1. 物理部の部長が、今年(2023年)の模擬店班で会計で利用する電卓のソフトウェアを作成する。
  2. 物理部のほうでソフトウェアの共同開発をしていたので、その流れで自分が部長が作ったソフトウェアのUIなどの調整をした。
  3. そもそも部長が2023年に作ろうとしていたのが会計での合計金額をサーバーに保管するものだとわかった。 →今の電卓プログラムをベースにするとUIもプログラムもかなり改善しないといけないし、どうせなら作り直さない??
  4. 新型の会計システムを開発することに。
  5. 様々な話し合いによって以下の仕様で開発を開始した。
  6. また、元々は模擬店班のみが使うアプリケーションだったが、自分の交渉により食堂喫茶店班も採用。今後はグッズ課の勧誘を予定している。

仕様

  • アプリケーションはセキュリティー的な観点でユーザー側と店側の2つを作成。(詳しくは後述) (ちなみに現時点でユーザー側はほとんど完成している。)

  • ユーザー側

    • 技術: Blazor wasm
    • 公開: Webベース (一応PWA対応)
    • QRコード生成側
    • 静的サイト
    • アクセス権限: 誰でも利用可能
  • 店側

    • 技術: Flutter
    • DB: Firebase (来年からは物理部に独自サーバーが建つので、それでもいいかもしれませんが、他校がこのシステムを使う可能性もあるので、汎用性は残しておきます。)
    • QRコード読み込み側
    • 動的サイト(DBを使ったりするので)
    • アクセス権限: パスワード必要(店員&開発者のみ利用可能)
  • セキュリティー DBなどの会計情報に関係するデータ(のちのち会計課がお金の過不足を確認する際に必要なデータ)は店側のアプリケーションからしか操作できません。 店側のアプリケーションを操作可能なのは店員のみなので客などにいじられる可能性は0%となっており、信頼性が高いです。(内部犯がいた場合は別問題) 客側のアプリケーションはそれ単独で成立している(つまり会計データの読み込みや書き込みはまったく行っていない)ため、QRコードの表示以外何もできないです。 この体制によって、セキュリティーの問題を限りなく0に近づけています。 つまり $$ \lim_{n\to \infty} “security\ issues” = 0 $$ ですね。(???)

ロードマップ

開発以外の交渉なども含んでいます。

現在

  • ユーザー側アプリケーションの作成(ほぼ完成)
  • ユーザー側アプリケーションのバグ修正や使い方の説明資料の用意
  • 店側のアプリケーションの作成
  • 模擬店班と仕様の確認(特に問題無し)

将来

  • ユーザー側アプリケーションのQRコードをパンフレットやサイトに載せてもらう 現時点ではそもそもパンフレットやサイトの作成の段階に至っていません。 が、実行委員長にすでに伝えているので大丈夫だと思います。 自分ができることは特になさそうです。 簡単な使い方も記載してくれると嬉しいですね。

  • Web課からサブドメインのshop.suiranfes.blueを利用させてもらえないかの交渉 Web課のチーフが誰かわからないんですよね… できるならCI/CDも準備したいです。

  • 教師に利用許諾をもらう 店側のアプリケーションが全くできていなくて口頭での説明が難しいため、それがある程度完成したころに相談します。 長い期間かけて作ってきたものなので利用を禁止される可能性は低いと思っています。 (先述のとおり、セキュリティーに関しても細心の注意を払っていますし。) 許可をとるのは、翠巒祭担当の教師を考えていましたが、校長先生の可能性の可能性が高そうですね。 (Web課のサイト公開に関する資料ではWeb課は校長許可をとっていると明記されているので。)

  • グッズ課に売り込み 模擬店と食堂喫茶がこのシステムを採用すると決定しているので、グッズ課も採用してくれると客側が楽になるかと思います。 また、このシステムを採用すると購入の時間を短く済ませられる(=購入の待ち時間が減る)というメリットがあるので、ぜひ採用してほしいですね。 (まあ、模擬店以外はあんまり列できてなかった気がするので、グッズ課にとってはそこまでメリットはないかもしれませんが。)

  • ユーザーテスト 各班課の店員が店側のアプリケーションを使う練習と、客に客側のアプリケーションの使い方を説明できるか、またアプリケーション自体に不備や改善点がないかを調査するための小規模のデモンストレーションを実施予定です。 上記の項目がほとんど終わった最終段階にて行う予定です。(2024年4月中期が目安)

  • 利用班課チーフどうしで情報共有 アプリケーションの使い方などに関して簡単にレクチャーします。 また、アプリケーションへの要望や、問題が発生していたらその解決に向けた情報交換や相談を行う予定です。 どちらかというと後者の方が本題です。

  • 障害に対する対策 サーバーダウンやアプリケーションの障害によってアプリケーションが利用不可能生になった場合は、アナログの環境を利用して対応する予定です。 もちろん、そのような事態にならないような対策はするつもりですが、一番最悪なパターンでも問題なく動けるようにマニュアルの作成などを行う予定です。 当日になってアプリケーションが動かなくなったらごめんなさい…。 しかし、動かなくなっても現場が混乱しないように最善の努力を尽くします。 (マニュアル作成や不測の事態の対応指導、円滑な情報交換や早期復興に向けた現地対策など)

  • 引き継ぎ 来年3年生なので、引き継ぎの資料を作る暇があるかどうかわかりませんが、できれば残します。 もし資料がなかったら、コードから何とか読み取ってください。(ゴリ押し)

関係班課

開発

  • 部長(模擬店班)
  • 自分(食堂喫茶店班)

使用

  • 模擬店班
  • 食堂喫茶店班
  • グッズ課(勧誘予定)

許諾 / 広報関係

  • 翠巒祭実行委員会(本部)
  • Web課(ドメイン関係で協力要請予定)
  • 広報課?

個人的に思うこと

この開発は、交渉とかユーザーが利用しやすいか考えるなどのコーディング以外の要素がかなり重なっていて楽しいです。 多くの人が関係しているアプリケーションということで、文化祭にふさわしいものになったのではないでしょうか?