開発者ガイド

技術情報
ヘルプセンター

🏗️ システム概要

スム住む(INSPECT-X)

退去立会い・修繕管理システム(マルチテナントSaaS)

住まいのバトンタッチ、もっとスマートに。

Admin(プライマリ)

退去立会い代行業者

  • • 全機能アクセス
  • • 他テナント管理
  • • 業務統括

Customer(セカンダリ)

不動産管理会社

  • • 依頼・承認機能
  • • 進捗確認
  • • 支払処理

Contractor(セカンダリ)

施工業者

  • • 受注管理
  • • 進捗報告
  • • 請求処理

⚙️ 技術スタック

フロントエンド

  • • Nuxt 3: Vue.js フレームワーク(SSR対応)
  • • Tailwind CSS: ユーティリティファーストCSS
  • • TypeScript: 型安全性
  • • Composables: 再利用可能なロジック

バックエンド

  • • Node.js: サーバーサイドランタイム
  • • MySQL: リレーショナルデータベース
  • • Universal API: 動的CRUD操作
  • • SSH接続: リモートDB接続

インフラ

  • • Ubuntu 22: サーバーOS
  • • Nginx: Webサーバー・リバースプロキシ
  • • PM2: プロセス管理
  • • SSL/TLS: セキュア通信

開発・デプロイ

  • • Git: バージョン管理
  • • SSH: セキュアデプロイ
  • • lodash: ユーティリティライブラリ
  • • mysql2: MySQL接続ライブラリ

🗄️ データベース設計

主要テーブル

コアテーブル

  • • projects: 案件管理(中心テーブル)
  • • companies: 会社管理
  • • users: ユーザー管理
  • • quotations: 見積書
  • • invoices: 請求書

業務テーブル

  • • inspection_results: 立会い結果
  • • project_completion_reports: 完了報告
  • • notifications: 通知管理
  • • tasks: タスク管理

マルチテナント設計

全テーブルにtenant_idカラムを配置

  • • データの完全分離
  • • テナント間のデータ漏洩防止
  • • 自動フィルタリング
  • • スケーラブルな設計

🔌 Universal API

⚠️ 重要な注意事項

server/api/universal/index.ts のUniversal APIは完全に動的な設計で構築されており、絶対に変更してはいけません。

主要機能

  • • 自動テーブル構造検出
  • • 自動テナントフィルタリング
  • • 統一CRUD操作
  • • 動的クエリ生成

使用方法

GET /api/universal/[table]?tenantId=xxx
POST /api/universal/[table]
PUT /api/universal/[table]/[id]
DELETE /api/universal/[table]/[id]

🔐 認証システム

Cookie + LocalStorageハイブリッド認証

Cookie認証

  • • sumu-sumu-sessionクッキー
  • • 7日間の有効期限
  • • HttpOnly, Secure設定
  • • サーバーサイド検証

LocalStorage

  • • クライアントサイドフォールバック
  • • ユーザー情報キャッシュ
  • • 高速アクセス
  • • falseチェック必須

useAuthSSRコンポーザブル

const { initialize, login, logout, isAuthenticated } = useAuthSSR()
// SSR対応の認証処理
// サーバーサイド: NuxtAppコンテキスト
// クライアントサイド: Cookie優先、LocalStorageフォールバック

⚠️ 開発制約・重要事項

🚫 禁止事項

  • • primary-*クラス使用禁止: 白い文字が見えないため、blue-*を使用
  • • Universal API担当者の確認なしに変更しないこと: 動的設計のため絶対に変更しない
  • • 直接DB接続禁止: 必ずSSH経由でアクセス(ssh ryu2@resw.jp)

📋 必須要件

  • • customerフォルダ: 必ずlayout: 'customer'設定
  • • SSRでのlocalStorage: falseチェック必須
  • • 共通ページ: 統一されたグラデーション背景とレスポンシブ対応
  • • デプロイ時: lodashとmysql2をexternalsに設定

🎨 UI/UXガイドライン

  • • カラー: blue-*系統を使用(primary-*禁止)
  • • レスポンシブ: モバイルファーストデザイン
  • • グラデーション: 共通ページでは統一背景
  • • アニメーション: 適度なトランジション効果

🚀 デプロイメント

本番環境

  • • URL: https://app.resw.jp
  • • サーバー: Ubuntu 22.04
  • • Webサーバー: Nginx
  • • プロセス管理: PM2

データベース

  • • 接続: SSH経由(ryu2@resw.jp)
  • • MySQL: リモートサーバー
  • • バックアップ: 自動バックアップ
  • • セキュリティ: SSL/TLS暗号化

デプロイ手順

  1. ローカル開発・テスト
  2. Gitコミット・プッシュ
  3. SSH接続(ryu2@resw.jp)
  4. ソースコード更新
  5. 依存関係更新(npm install)
  6. ビルド実行(npm run build)
  7. PM2プロセス再起動
  8. 動作確認

📚 追加リソース

技術サポート

dev@resw.jp

システム管理

admin@resw.jp

緊急対応

info@ryu2-w.com