飲食店DX開発日記⑥ マイナンバー収集機能の開発
こんにちは。
ミエルカシステムの中の人です。
飲食店の生産性向上のため開発した内容を発信しています。
飲食店のDX推進についてできることやポイントなどお伝えできればと思います。
第6回目 マイナンバー収集機能の開発
みんなが持ち歩いているスマホを活用し、低コストでDXを推進しよう!という事で、下記のような機能を持ったアプリを開発しています。
希望シフト作成
シフト確認
給与明細確認
雇用契約書サイン
マイナンバー提出 ← 今回はココ
KPI確認
今回は、マイナンバー提出機能の開発について書いていきます。
「うちは紙とか大丈夫なあれだから。」
源泉徴収や健康保険の管理を行う上で、従業員のマイナンバーの管理は必須事項となっています。
重要な個人情報ですので、その取り扱いには注意が必要ですね。「めんどくさいな〜」と思われている方も正直多いのではないでしょうか。
ということで、マイナンバーの管理を効率的に、かつ安全に行うための機能を開発していきます。
管理が必要なデータは何か?
企業側で管理が必要なデータは下記となります。
マイナンバー(12桁の数値)
番号確認書類(番号が記載された書類)
本人確認書類(顔写真付の本人確認書類)
マイナンバーを提供しない場合は、その理由
これらのデータをスマホで入力、撮影しサーバーへ送信して保管したいと思います。
早速プログラムを書いていく
今回もアプリ開発にはmonacaを利用。カメラ機能を利用するプラグインを設定しjavascriptとhtmlで書いていきます。
1.画面デザイン作成
この段階では、ダミーのデータを表示させ、画面デザインと画面遷移を作成します。
デザインなので、センスが必要なのですが、monacaはある程度ユーザーインターフェースを用意してくれているので助かります。
2.マイナンバー検証プログラム
マイナンバーは、末尾の一桁が検証用の数値となっています。これを利用して入力した12桁の数値が本当にマイナンバーか検証するプログラムを書いていきます。
3.写真撮影、トリミング
最近のスマホカメラは高性能なので、画像サイズがめちゃくちゃ大きいです。これを適切なサイズに変更するプログラムを書きます。
4.サーバーへデータを送信
ajaxという機能を使い送信します。サーバー側ではPHPを使用してデータを受信するプログラムを書きます。
データは暗号化して保存し、別途設定した暗号化鍵がわからなければ、復号できない仕様とします。
サーバーへの登録が完了した時点で、スマホ側で入力した情報は削除します。
バグとの戦い
中の人は普段サーバー側で動作するPHPという言語を使用する事が多いのですが、今回は端末側で動作するjavascriptという言語を主に使用しています。
PHPは、書いたコードが上から順番に実行されるのでバグの発生箇所がわかりやすいです。
一方javascriptは、ボタンを押したり、画面を移動したり、撮影をしたりする様々な動作をイベントとして取得し、その順番でプログラムを実行します。予期せぬ動作となった時、どこに問題があるかわかりにくく、デバッグに時間がかかってしまいました。
完成しました!
スマホの画面に合わせて作ると情報量が少なくなって、操作方法がわかりやすくなりますね。
皆さんスマホの方がパソコンよりも使い慣れているので、スタッフ側はアプリで開発した方が良さそうです。
次は、雇用契約書機能か、給与明細機能を進めていこうと思います。