個人用に打刻システムを制作 その工夫と感想

個人用に打刻システムを作ってみた。システムの仕様やデザインをどう工夫したかと、作ってみた感想を投稿する。

打刻フォーム

打刻フォームは、開始打刻用と終了打刻用の2種類を作った。開始時と終了時で、必要な情報が異なると考え、フォームを分けた。

開始打刻用

開始時のフォームは下記のものになった。開始時は、開始する取り組みのカテゴリーを選択する。カテゴリーには、私が取り組みたい事柄を並べた。

カテゴリーのボタンをクリックすれば、そのカテゴリーに取り組み始めた事が投稿される。このクリックにより、カテゴリーの選択と開始したという情報を、同時に伝達できる。

その際、システムの処理のための隠しフィールドとしてユーザー名と打刻開始フラグを同時に渡す。

終了打刻用

終了時の打刻フォームは下記のものになった。

開始打刻があり作業中の場合に、終了打刻をするためにこのフォームを表示するようにした。

別のことをした時間があれば、休憩時間として作業時間から控除できるように、休憩時間の入力欄を作った。作業内容は履歴として残すようにした。

終了ボタンをクリックすれば、終了情報が投稿される。その際の隠しフィールドには、開始打刻時に採番したidを同時に渡す。

集計と表示

データベースへの格納

打刻フォームからの情報は、phpで処理してMySQLデータベースに格納するようにした。

作業時間のサマリーの表示

下表のように、今日、今週、先週、先々週、合計の作業時間を、カテゴリー別に集計して表示するようにした。単位は分。

どのようなことに、どれくらいの時間取り組んだかが分かるようになった。

作業履歴の表示

下図の体裁で作業履歴も表示できるようにした。

感想

打刻とは、時間を記録するだけだと思って気軽にシステム制作を始めた。ところが実際に作ってみると、フォームの表示や開始・終了情報の取得とその処理、データベースに格納された情報の集計や表示など、割と処理する内容が多くて意外だった。

昨今では生成AIが発達していて、制作の効率は悪くなかったと思う。コードの半分くらいはBingチャットの出力を使った。

複数のユーザーに対応できるように、ユーザー名をやりとりするコードを書いたが、商用には程遠い印象だ。編集画面がなく、セキュリティにも脆弱性がある書き方をしているので、個人用に運用しようと思う。

打刻システムの出来は気に入っている。自身の取り組みを省みて、意味のある時間を過ごすための指標にしようと考えている。

コメント

タイトルとURLをコピーしました