Muhammad Arslan
ご相談・ご依頼
プロジェクト一覧に戻る

VCM

オーナー、居住者、財務、予約、リクエスト、レポートなど、住宅コミュニティに必要なすべてを単一のインターフェースに集約するロールベースのWebアプリケーション。

担当役割: Lead front-end engineer開発期間: 2025-2026種別: Web app (B2B SaaS)

React 19

React Router 7

Vite

TypeScript

SCSS

Jotai

SWR

Firebase Cloud Messaging

デモコミュニティ、サンプル残高、サービスリクエストを表示したVCMオーナーダッシュボード

概要

VCMは、同一のコードベースから全く異なる2つのユーザー層に対応する物件・コミュニティ管理プラットフォームのフロントエンドです。管理者は物件、居住者、財務、インシデント、レポート、連絡通知などの業務運用に使用します。オーナーおよび居住者は、支払い、サービスリクエスト、共有設備予約、書類確認、コミュニティ情報の閲覧など、自身の用件を処理するために使用します。この製品は、散在する手作業のワークフローを一貫した1つの場所に集約します。

課題

住宅コミュニティの運営には、居住者やオーナーの記録、保守・サービスリクエスト、設備予約、苦情対応、支払い履歴、明細書、点検・事故報告書、お知らせなど、多くの要素を同時に管理することが求められます。これらがスプレッドシートやメールのやり取り、バラバラのツールに分散していると、対応の抜け漏れが発生します。課題は、ワークフローが増加しても高速性、整合性、保守性を維持しながら、運営チームと彼らが世話をする居住者の双方に役立つ1つのインターフェースを構築し、2つの全く異なる体験を提供することでした。

役割とアプローチ

私はフロントエンド開発を主導し、アプリケーションアーキテクチャ、共有データ層、再利用可能なUIパターン、全体を支えるロールベース構造を構築しました。コードベースの筆頭コントリビューターとして、その後の開発基準となる設計規約を策定しました。私が最優先したのは、この種のアプリケーションで陥りがちな「エンティティを追加するたびに同じテーブル、フィルター、フォームロジックを再構築する」という罠を避けることでした。代わりに、少数の強固なプリミティブと権限対応シェルを構築することで、新規ワークフローの追加を再発明ではなく構成で実現できるようにしました。

技術スタック

フレームワークReact 19 with React Router 7
ビルドVite
言語TypeScript
スタイリングSCSS, organised per feature
ステート管理Jotai for app-wide state (auth, sidebar, selected property, notifications)
データSWR over a shared Axios client, with automatic auth handling
通知Firebase Cloud Messaging
レポーティングRecharts for dashboards; @react-pdf/renderer and CSV utilities for exports

主な機能

2つのロールベース体験ユーザーを適切な画面へ誘導し、アクセス権限を適用する独立した管理者・オーナー向けシェル。
権限対応ナビゲーションサイドバーは各ユーザーの実際の権限に基づいて構築されるため、許可された機能のみが表示されます。
共有データ層認証ヘッダーおよびデバイスヘッダーを注入し、SWRでキャッシュし、セッション失効時にはユーザーを適切にログイン画面へ戻す単一のリクエストパイプライン。
再利用可能な機能プリミティブページネーション付きテーブル、URL連携のフィルター入力、モーダルフォーム、チャートカード、ファイルアップロード、エクスポートボタンなど、アプリ全体を構成する各種要素。
業務カバー範囲サービスリクエスト、設備予約とコミュニティカレンダー、財務画面(支払い、明細書、請求書、リマインダー)、ユーザーおよび住戸管理、レポート。
プッシュ通知アプリ内トースト通知を備えたFirebaseメッセージング。
PDFおよびCSVエクスポートオフライン参照や公的提出用のアウトプットが必要な財務・レポートフロー向け。

ギャラリー

支払い、書類、コミュニティイベントを表示したVCMサンプルオーナーワークスペース
合成レコードを使用したVCMのサービスリクエストおよび課題のチャート

課題と解決策

最大の課題は、カバーすべき機能領域の広さでした。2つのユーザーロールにわたり、数十種類に及ぶエンティティそれぞれに一覧、絞り込み、作成、編集、エクスポートが必要でした。機能ごとに毎回コードを書き直していては保守不可能なアプリになってしまいます。私は再利用可能なプリミティブと、設定可能な権限連動型ナビゲーションモデルを採用することでこれを解決しました。これにより、メニューのハードコードや重複ロジックを排除し、バックエンドから付与された権限に応じて柔軟に適応するインターフェースを実現しました。

もう一つの継続的な課題は、実際の利用環境に耐えうるステート管理でした。一覧のページネーションとフィルタリングをURLのクエリ文字列で制御することで、ビューを共有可能にし、ブラウザの「進む・戻る」操作を自然に機能させ、再読み込み時にもテーブルの状態が維持されるようにしました。また、機能コンポーネントを軽量に保つため認証を共有ステートとリクエスト層に集約し、さらにエラーバウンダリ、ローディングステート、セッション失効時の適切なリダイレクトを組み込むことで、情報密度の高いダッシュボードがエラーを隠したまま機能停止しないように設計しました。

成果

VCMは、コミュニティ管理の双方のニーズに真に応える単一のフロントエンドです。運用チームは一つの管理者ワークスペースから物件のライフサイクル全体を管理し、居住者は支払い、リクエスト、予約、書類の確認などをセルフサービスで完結できます。共有プリミティブと権限認識シェルに基づいて構築されているため、ワークフローが新たに追加されてもコードベースが肥大化・複雑化することなく、安定してスケールし続けます。

同様のプロダクト課題をお持ちですか?

現在のプロダクト状況、達成したい成果、直面している制約についてお聞かせください。それらをもとに適切な第1マイルストーンを策定します。

SaaS開発サービス
プロジェクト概要を送る
すべてのプロジェクト次のプロジェクトZED (My Islamic Reminders)
VCM:物件・コミュニティ管理プラットフォーム(Reactフロントエンド) | Muhammad Arslan