見出し画像

【#kintone100日チャレンジ】Day 17: 出退勤管理の深淵に挑む。kintone出退勤打刻・タイムカードプラグインを作ってみた。

面倒解決エンジニアの森田ユウゴです。

台湾からお届けする「#kintone100日チャレンジ」の 17日目。

Claude Opus 4.7が突如現れましたね!
100日チャレンジレベルでは、Opus 4.7どころか、Sonnetでも十分動く仕組みは作れます。
もし、カスタマイズ入門者がご覧になる場合「最新AIじゃないとダメだ!」なんて思わずに、試してみてください。(どちらかというとルール付けが大事です)

👉 #kintone100日チャレンジの概要はこちら

本日は、kintoneで実現する「勤怠タイムカード(出退勤管理)プラグイン」を公開します。

正直に告白すると、エンジニアとしてこのテーマに取り組むのは少し勇気が必要でした。会社員時代に出退勤管理の仕組みに携わっていたからこそ、この領域がどれほど複雑で、一筋縄ではいかないかを知っていたからです。

今回は「100日チャレンジ」という枠組みの中で、実用性を担保しつつ、どこまでを「コア機能」として切り出すか。その葛藤の末に厳選したハックをお届けします。

kintone「勤怠タイムカード(出退勤管理)プラグイン」について

🎯 なぜ開発したか?(現場の課題とベネフィット)

  • 現場の「不」: 多くの企業が抱える「打刻と管理の分断」。kintoneの標準機能だけで運用しようとすると、毎月1レコードでテーブルでしょうか。しかしkintoneの他のアプリと簡単に繋げるという点で、テーブルは扱いづらいです。他にも複雑な計算式や、計算用の計算フィールドを駆使する必要があり、長期に使うには手間が多いです。

  • 導入後の世界(ベネフィット): 1日1レコードというシンプルなデータ構造を採用。打刻・休憩・勤務時間の自動計算までを一つの画面で完結させることで、利用者には直感的な操作を、管理者には集計しやすいクリーンなデータを提供します。

✨ これで出来ること(機能概要)

「本当に必要な機能は何か」を突き詰め、以下の機能を実装しました。


  • 1日1レコード集約型の打刻パネル: 出勤・退勤だけでなく、現場で必須となる「複数回の休憩」の打刻に対応しました。その日の状況を一つのパネルで俯瞰できます。

  • 実用的な勤務時間の自動計算: 退勤打刻時、出勤時刻と退勤時刻、そして休憩時間を差し引いた「正味の勤務時間」を自動で算出し、フィールドへ書き込みます。集計に便利です。

  • 予実管理を支える月次カレンダー表示: 専用のカスタムビューで、1ヶ月の出退勤状況を一覧表示します。打刻漏れがある平日はハイライト表示されるため、修正すべき箇所が一目で分かります。

  • 「sessionStorage」による高速な表示切り替え: APIの上限や表示速度を考慮し、一度取得した月次データはキャッシュを利用して表示する、インフラSE出身らしい「泥臭い」工夫も施しています。

課題

このプラグインが「完璧な勤怠管理システム」ではないことも明記しておきます。

  • 「バイブコーディング」で突きつけられる現実

    1. AIとの対話で骨格を作るのは一瞬ですが、必要となるべき機能はたくさんあります。「祝日の判定はどうする?」「法定休日と所定休日の区別は?」「36協定に基づく残業アラートは?」などなど…。今回は100日チャレンジという短時間勝負なので「コアな打刻体験」に特化させましたが、実運用には各社の就業規則に合わせたカスタマイズが不可欠です。

  • 権限設計 / 運用設計の重要性

    1. 今回は超簡単な実装のため不正勤怠管理がし放題です。他にもkintoneのアクセス権限設定や、月次確定のフローといった「運用設計」とセットで初めて機能するので本導入は簡単ではありません。

他にも思いつく限り打刻をベースに、有給管理や給与管理、工数管理などなど…。kintoneだけであらゆる仕組みに繋げられます。改めてkintoneは幅広い業種・業務に対応するのだと実感。使われ続ける理由が分かります。

さいごに

「AIで簡単に作れる」からこそ、考慮していくと沼で終わらないテーマでした。今回のメインはカスタムビューの打刻機能かな?

明日もお楽しみに!

下記のブログもご覧ください!

👉 【#kintone100日連続チャレンジ】AIにkintoneカスタマイズを100%任せたらどこまでいけるか?現役フリーランスの「100 Days of kintone Hacks」始動!

👉 ココナラで「kintone有資格者が導入や運用の相談にのります」サービスを開始します!


いいなと思ったら応援しよう!