Loading projects...

The Strata Reserve Planning (SRP) Depreciation Portal is a comprehensive platform built for a British Columbia property management company specializing in strata reserve fund planning and depreciation reporting. The goal was to replace fragmented, manual processes with a centralized digital workflow covering inspections, appointments, surveys, and client documentation.
The platform serves four distinct user roles — Admin, Client, Inspector, and Assistant — each with tailored dashboards, permissions, and workflows. Given the sensitivity of the financial and property data involved, the system was designed from the ground up as a secure internal business tool rather than a public-facing application.
Several interconnected challenges shaped the direction of the project:
Domain-Specific Filtering Logic — Rather than hard-coding business rules that would quickly become outdated, a flexible question CRUD system was built with configurable settings, empowering the company to tailor survey questions and document filtering based on their own domain expertise.
Legacy System Integration — The company had an established Dropbox workflow for storing client documents. Rather than forcing a migration, the Dropbox API was integrated directly into the platform, enabling seamless upload, preview, download, and archival. Documents were organized by strata ID, and upon survey completion, automatically moved to a designated "completed" folder alongside the file ID — preserving compliance records while keeping active workflows clean.
Multi-Role Complexity — Four user roles with overlapping but distinct permissions needed to coexist within a single platform, each requiring its own views, route protections, and data access patterns.
Security & Compliance — Strict security measures were required to handle sensitive client data, including Canadian data residency compliance, role-based access control, and restricted account creation tied to verified business onboarding.
The project began with detailed user personas representing each primary user type, capturing demographics, daily workflows, and the specific value the platform would deliver. These informed the creation of user flow diagrams for all four roles, mapping every interaction from login through to task completion — establishing clear navigation structures, permission boundaries, and feature priorities early on.
Admin User Flow
Mapped the full Admin journey from login through to task completion, covering appointment management, inspection oversight, survey configuration, and document handling.
Client User Flow
Defined the Client experience from onboarding through to reviewing depreciation reports, including document access and appointment scheduling.
Inspector User Flow
Outlined the Inspector workflow for receiving assignments, conducting on-site inspections, and submitting findings through the portal.
Assistant User Flow
Designed the Assistant role to support administrative tasks with restricted access, balancing operational utility with data security.
Admin Prototype — Desktop
High-fidelity desktop prototype of the Admin dashboard, showcasing the full navigation structure, data tables, and management tools before development began.
Admin Prototype — Mobile
Mobile prototype of the Admin interface, used to validate collapsible navigation and responsive layout decisions ahead of implementation.
Client Prototype — Desktop
Desktop prototype of the Client-facing portal, illustrating document access, appointment views, and the tailored dashboard experience.
Client Prototype — Mobile
Mobile prototype for the Client role, confirming that key workflows remained accessible and intuitive on smaller screens.
An Agile methodology was adopted using Jira to manage sprints, track progress, and maintain the product backlog. Weekly sponsor meetings provided consistent alignment, followed by team syncs to assign tasks and conduct sprint reviews. Work was distributed to play to individual strengths, and a structured pull request process with mandatory code reviews ensured quality across the shared codebase.
Jira Sprint Board
Active sprint board used to track in-progress work, assign tasks by role, and maintain visibility across the team during weekly development cycles.
Jira Backlog
Product backlog managed throughout the project, organized by priority and sprint, keeping the team aligned with sponsor requirements and evolving feature requests.
Clear naming conventions and a three-repository architecture were established early to maintain consistency throughout development — covering everything from Git branch naming to database column formatting. No inline styles were permitted, and reusable helper functions were enforced to keep the codebase clean and maintainable.
The platform was built as a three-tier architecture across three repositories:
Frontend — React, TypeScript, Vite: Role-based routing with separate admin and client route trees, a shared component library, custom data-fetching hooks, and modular SCSS styling.
Backend — Hono, TypeScript, Prisma: A RESTful API with type-safe database access, role-based middleware, and a shared service layer for business logic.
Supabase Edge Functions — Deno-based serverless functions handling all document operations — upload, download, preview, archive, and sync — via Dropbox API integration.
Strategic Build Order: The Admin and Client platforms were built first, as these roles encompassed the full feature set of the application. This allowed for thorough testing and iteration on the most complex interfaces before the Inspector and Assistant platforms were developed — both of which share the same underlying architecture with restricted, role-specific access.
Weekly client meetings drove continuous refinement throughout development. Key improvements included a configurable question management system to handle edge cases without code changes, a Dropbox sync tool to reconcile database records with manually modified files, collapsible navigation for tablet and mobile views, and location grouping for appointments to keep same-day bookings within the same region.
Question Management System
Configurable CRUD interface allowing the company to manage survey questions without code changes — addressing domain-specific filtering logic and edge cases directly through the platform.
Dropbox Sync Tool
Built to reconcile the platform's database records with files manually modified in Dropbox, ensuring consistency between the portal and the company's existing document workflow.
Tablet View — Collapsible Navigation
Iterative UI improvement introduced after client feedback: collapsible sidebar navigation for tablet and mobile viewports, keeping the interface clean without sacrificing access to key features.
Before expanding to the Inspector and Assistant roles, in-person testing was conducted with the sponsor on the completed Admin and Client platforms. This hands-on session validated core workflows, surfaced usability issues, and confirmed the foundation was stable enough to build upon. Supporting documentation was delivered in both video and PDF formats, providing practical guidance for day-to-day use.
Security was a foundational design principle, not an afterthought:
Canadian Data Residency — All data is hosted on Canadian servers in compliance with regulations governing client financial and property documentation.
Route Security — Supabase authentication enforces role-based access control across all API endpoints.
No Public Registration — Account creation is restricted to verified clients onboarded through existing business processes, with no public-facing registration.
The completed SRP Depreciation Portal delivers a unified, role-based platform that modernizes the company's core operations. The result is a scalable, secure system with tailored workflows for each user role, flexible configuration without code changes, seamless Dropbox integration, and full compliance with Canadian data residency requirements — built to support the business today and scale with it going forward.