不動産業務管理API
Hono + Drizzle ORM + Neon PostgreSQL で構築した不動産業務向け REST API。物件・問い合わせ・内見予約の CRUD と状態遷移を JWT 認証で保護し、Vitest でユニットテストを整備しました。
Tech Stack
HonoTypeScriptDrizzle ORMNeonVitestVercel
Story
前職でハウスメーカーの営業を6年経験し、物件公開・問い合わせ・内見調整という業務フローや、そこで起こりがちな状態管理の問題を実務として理解しています。この経験を、実際に手を動かして学んだTypeScript/Hono/Drizzleで設計・実装し直しました。
Highlights
- —状態遷移テーブルによるガード(ALLOWED_TRANSITIONSで許可された遷移のみ表現、それ以外は409で一律拒否)
- —トランザクションのロールバック検証(2番目の処理を強制失敗させ、DBの実値でロールバックをテスト)
- —所有権・可視性の認可設計(assertOwnershipの共通化+未認証/エージェント/管理者で異なるWHERE句を動的構築)
- —ドキュメントと実装の乖離防止(zodスキーマからOpenAPI仕様を自動生成、ルート定義は書き換えない)
- —JWT認証(アクセストークン15分+リフレッシュトークンのローテーション、httpOnly Cookie)
- —空き枠をテーブルで持たない設計(営業時間枠と予約中の内見の重複計算で導出、整合性維持コストを回避)