出席管理システムの進化 v2.6→v3.3
PythonFlaskKivyアーキテクチャ
2か月で6,300行
AI駆動開発(ChatGPT + Claude Code)を活用し、6,300行の大規模システムを2か月で完成させました。従来の開発手法では6か月以上かかるプロジェクトです。
要件定義フェーズでAIと壁打ちし、構造化された仕様書を作成。実装フェーズではClaude Codeによるリアルタイム実装とトライ&エラーの高速サイクルで開発しました。
システム構成
- デスクトップアプリ(Python + Kivy): QRコード読み取りによる出席記録
- Webアプリ(Flask + Bootstrap): 月次レポートの編集・確認
- Google連携: Sheets APIでデータ管理、Drive APIでバックアップ
- レポート生成: ReportLab(PDF)、openpyxl(Excel)
- プリンター連携: Brother P-touch Editor 5.4
v2.6からv3.3への進化
v2.6: 基本機能
QRコードで出席を記録し、Google Sheetsに送信する基本的な機能を実装。
v3.2: Web版レポートエディタ追加
Flaskベースのレポートエディタを追加。ブラウザ上でレポートのプレビュー・編集ができるようになり、運用の効率が大幅に向上しました。
v3.3: スタンドアロン版
ユーザーから「インターネット接続が不安定な環境でも使いたい」というフィードバックを受け、Google API不要のスタンドアロン版を開発。ローカルCSVでデータ管理し、セットアップも簡単になりました。
アーキテクチャ変更から学んだこと
v3.3の開発で最も大きな学びは、外部サービスへの依存を最小化する設計の重要性です。
最初からGoogle連携版とスタンドアロン版の両方を想定して設計していれば、後からの移行がもっとスムーズだったはずです。この経験から、コア機能を外部依存から切り離す「ローカルファースト」の設計思想を意識するようになりました。
また、ユーザーフィードバックの重要性も実感しました。開発者の想定とユーザーの実際の環境は異なることが多く、実際に使ってもらうことで初めて見えてくる要件があります。
技術的なポイント
- Kivy によるクロスプラットフォームデスクトップアプリ開発
- ReportLab でのPDF生成(日本語フォント埋め込み、レイアウト調整)
- openpyxl でのExcel出力(セルの書式設定、条件付きフォーマット)
- Flask による軽量Webアプリケーション開発
- Google Sheets API でのリアルタイムデータ同期と権限管理