プロジェクト概要
美容クリニックの在庫管理において多くの課題があり、大阪から東京へ赴き現地でのヒアリングを実施しました。抽出した課題に対しては、エンジニアとしての視点から解決策を提示。保守性や可読性を維持しつつも、スピード感のある開発を実現しました。結果的に高評価をもらい、連携する他のクリニックにも導入することになりました。
担当役割
- プロジェクトリーダー(PL)
- 担当業務:要件定義から実装、テスト、保守運用まで一貫して担当
解決した課題と対策
1. 発注ミス・確認ミスの多発
課題:エクセルやスプレッドシートでの管理では人為的ミスが頻発
解決策:
- SPAやモダンなライブラリを活用し、直感的なUIを実現
- 発注確認画面に品目写真を表示し、視覚的な確認を可能に
- 重要項目を必須入力に設定してミスを防止
2. 情報の散在による作業の非効率化
課題:情報が分散しており、棚卸しや発注に時間がかかる。
解決策:
- すべての情報をシステムに一元化(タブレット1つで棚卸し可能)
- リスト作成機能により、日次・月次の棚卸し品目を事前にリスト化
3. 高額商品の盗難・不正転売リスク
課題:高価な商品を扱うため、セキュリティ対策が必要
解決策:
- ユーザーの重要操作をログに記録する機能を実装(不正の予防と、問題発生時の原因特定を可能に)
4. 短納期での開発要求
課題:新サービス開始に向けて早急な納品が必要
解決策:
- モックを使用したプロトタイプを早期に提示し、完成イメージを共有(要件定義が大幅に短縮)
- 学習コストの低い技術(Supabase.authなど)を採用
- MCP(Model Context Protocol)ツールの活用し作業時間を大幅に短縮
- Supabase MCP
- Playwright MCP
5. 職種別のアクセス制御
課題:看護師・カウンセラーなど、職種によって閲覧可能な情報を制限する必要
解決策:
- ユーザー登録時に権限を設定できる機能を実装(RBAC)
- 権限に応じて表示内容を動的に変更
開発における工夫点
1. 仕様書駆動開発の導入
AIの記憶範囲は限られているため、会話履歴が残っていなくても仕様書を参照すればAIが正しく理解できるようにしました。これにより、記憶に依存せず安定して開発を進められる体制を整えました。
2. 表示の体感速度を上げる
SSR(Server Side Rendering)で初期データを取得し、クライアント側のSWR(Stale While Revalidate)にシードとして渡す仕組みを導入しました。これにより、ユーザーはページを開いた瞬間からサーバーで描画された内容を確認でき、待たされる感覚が無くなりました。その後、SWRがバックグラウンドで最新データを再取得し、差分があればUIを自動的に更新します。結果として「即時表示の速さ」と「データの鮮度」を両立でき、快適な操作体験を実現しました。