サンプルアプリケーション概要
SaaSus Platformを使った実際のSaaSアプリケーションの実装例です。 認証、テナント管理、課金機能など、SaaSに必要な機能を動かしながら学習できます。
主な特徴
- 実践的: 実際のSaaSで使われる機能を網羅
- React + TypeScript: フロントエンドにReactを使用
- 多言語対応: Go、Python、Java、C#の実装例
実装方式について
このサンプルアプリケーションは、APIサーバ版として実装されています。
APIサーバ版の特徴
バックエンドをAPIサーバで構成する実装方式で、以下のような特徴があります:
- SaaSus Platformの認証情報となるトークン(JWT)を、ブラウザのローカルストレージに保管
- SaaS Platform利用者はJWTを使って本人確認を行う
- フロントエンドはReactで実装
- バックエンドのAPIサーバはGo / Python / Java / C#で実装例を提供
処理フロー(ログイン〜ユーザ一覧表示)

実装されている画面・機能一覧
認証関連画面
Callback.tsx - 認証後遷移先画面
- SaaSus Platformからの認証情報を受け取り
- JWTトークンをローカルストレージに保存
- ユーザーのロールに応じて適切な画面に自動遷移
- ※リダイレクト処理のため、ユーザーには表示されません
SelfSignUp.tsx - セルフサインアップ画面

- 新規ユーザーが自分でテナント作成
- テナント名の入力
- ユーザー属性・テナント属性の設定
- 属性タイプ別の入力フィールド(文字列、数値、真偽値、日付)
ユーザー・テナント管理画面
TenantList.tsx - テナント一覧画面

- 複数テナントに所属するユーザー向け
- テナント属性の表示(設定済み/未設定の表示)
- 各テナントのユーザー一覧画面への遷移
UserPage.tsx - ユーザー一覧画面(メイン画面)

- ログインユーザー情報表示: テナント名、名前、メールアドレス、ロール、料金プラン
- ユーザー一覧テーブル: テナント内の全ユーザー表示
- ユーザー属性表示: カスタム属性の動的表示
- 管理者機能リンク: 管理者のみ表示される機能へのリンク
- ユーザー削除機能: 管理者権限でのユーザー削除
ユーザー管理機能
UserRegister.tsx - ユーザー新規登録画面

- メールアドレス・パスワード入力
- ユーザー属性の設定
- 属性タイプ別の入力フィールド対応
UserInvitation.tsx - ユーザー招待画面

- メールアドレスでの招待送信
- 招待一覧の表示(メール、招待リンク、役割、ステータス、有効期限)
- 招待ステータスの管理
DeleteUserLog.tsx - ユーザー削除ログ画面

- 削除されたユーザーの履歴表示
- テナントID、ユーザーID、メールアドレス、削除日時
課金・メータリング機能
PlanSettings.tsx - プラン設定画面

- 現在のプラン表示: プラン名、税率、変更予約 情報
- プラン変更機能: 新しいプラン選択、税率設定
- 反映日設定: 即時反映(5分後)または日時指定
- プラン解除機能: 現在のプランの解除
- 予約管理: プラン変更予約の取り消し
- 編集制限: 変更予定が近い場合の編集ロック
BillingDashboard.tsx - 課金情報ダッシュボード

- 課金サマリー: 通貨別合計金額、計測単位数
- 料金プラン情報: プラン詳細、税率情報
- 期間選択: 月次/年次の請求期間選択
- 計測単位別課金情報: 使用量と課金額の詳細表示
- リアルタイムメータ更新: インライン編集(+/-ボタン)
- メータ更新モーダル: 任意の値での増減、履歴補正