shuto@enknot — zsh

/projects/crm-realestate
projects

personal project

みらい不動産 顧客管理システム

空き家管理・売買仲介を1人で営む不動産事業者を想定した、LINE連携の顧客管理システム。売主・買主等のタグ別配信、契約日を基準にした業務報告・更新リマインドの自動通知、現場写真からのAI報告書草案生成までを1つの管理画面にまとめました。

tech stack

Next.jsTypeScriptNeonDrizzle ORMLINE Messaging APICloudflare R2Cloudflare WorkersVercel AI SDKGemini

story

架空の不動産会社「みらい不動産」を舞台に、契約後の顧客対応を担うシステムとして設計。不動産業を1人で営む事業者が抱える「タグ別配信」「報告・更新期限のリマインド」「現場写真からの報告書作成」という3つの課題に向き合いました。ドメイン層をLINE SDKやDBの実装から切り離し、本番実装とデモ用Fake実装を1箇所で差し替えられるアーキテクチャにこだわりました。

物件案内AIエージェントを見る

highlights

  • —Server Actionの直接POST到達によるガード迂回を防ぐため、DB操作関数群にopaque tokenの認証permitを要求させ、呼び忘れを型エラーとして検出
  • —Branded Types・opaque token(QuotaGuard)でID取り違えや送信上限超過をコンパイル時に防止
  • —Webhookは処理後に記録する順序と冪等なupsertで、LINE再送時の取りこぼし・二重処理を防止
  • —リマインド発火日は契約日から都度計算する純粋関数で実装し、月末クランプ・うるう年・JST境界をテストで担保

デモ用アカウント

roleemailpassword
管理者不要test0123

ポートフォリオ公開用のデモ。LINE送信・メール送信は行われず、AI清書もテンプレート文言に置き換わります(実際には送信・生成されません)。