Muhammad Arslan
Assumimi
Torna ai progetti

VCM

Una web app basata su ruoli che riunisce in un'unica interfaccia tutto ciò di cui una comunità residenziale ha bisogno: proprietari, residenti, finanza, prenotazioni, richieste e reportistica.

Ruolo: Lead front-end engineerTempistiche: 2025-2026Tipo: Web app (B2B SaaS)

React 19

React Router 7

Vite

TypeScript

SCSS

Jotai

SWR

Firebase Cloud Messaging

Dashboard proprietario VCM con comunità demo, saldo di esempio e richieste di assistenza

Panoramica

VCM è il front end per una piattaforma di gestione immobiliare e di comunità che serve due tipologie di utenti molto diverse a partire dallo stesso codebase. Gli amministratori lo usano per gestire le operazioni: immobili, residenti, finanza, incidenti, reportistica e comunicazioni. I proprietari e i residenti lo usano per gestire le proprie esigenze, tra cui pagamenti, richieste di assistenza, prenotazioni di servizi, documenti e informazioni sulla comunità. Il prodotto riunisce una serie di flussi di lavoro manuali e frammentati in un unico ambiente coerente.

Il problema

Gestire una comunità residenziale significa coordinare molti elementi contemporaneamente: registri di residenti e proprietari, richieste di manutenzione e assistenza, prenotazioni di servizi, reclami, cronologia dei pagamenti, estratti conto, verbali di ispezione e incidenti, e avvisi. Quando queste informazioni sono distribuite tra fogli di calcolo, thread di email e strumenti disconnessi, qualcosa finisce inevitabilmente per perdersi. La sfida consisteva nel realizzare un'unica interfaccia utile sia per il team operativo sia per i residenti seguiti, offrendo due esperienze realmente distinte e mantenendo il prodotto rapido, coerente e manutenibile con l'aggiunta di ulteriori flussi di lavoro.

Il mio ruolo e approccio

Ho guidato lo sviluppo del front end: l'architettura dell'applicazione, il data layer condiviso, i pattern UI riutilizzabili e la struttura basata sui ruoli che tiene insieme il tutto. In qualità di contributor principale del codebase, ho definito le convenzioni che hanno guidato il resto dello sviluppo. La mia priorità era evitare l'errore tipico di queste applicazioni, ossia riscrivere la stessa logica di tabelle, filtri e moduli per ogni nuova entità. Ho invece realizzato un set ridotto di solide primitive e una shell basata sui permessi, rendendo l'aggiunta di un nuovo flusso di lavoro una questione di composizione anziché di reinventare da zero.

Stack tecnologico

FrameworkReact 19 with React Router 7
BuildVite
LinguaTypeScript
StileSCSS, organised per feature
StatoJotai for app-wide state (auth, sidebar, selected property, notifications)
DatiSWR over a shared Axios client, with automatic auth handling
NotificheFirebase Cloud Messaging
ReportisticaRecharts for dashboards; @react-pdf/renderer and CSV utilities for exports

Funzionalità chiave

Due esperienze basate su ruolishell separate per amministratori e proprietari che instradano gli utenti nella sezione corretta e applicano i controlli di accesso.
Navigazione basata sui permessila barra laterale viene generata a partire dai permessi effettivi di ciascun utente, così le persone vedono solo ciò che sono autorizzate a utilizzare.
Un data layer condivisoun'unica pipeline di richieste inserisce gli header di autenticazione e del dispositivo, gestisce la cache con SWR e gestisce le sessioni scadute riportando l'utente al login in modo pulito.
Primitive di funzionalità riutilizzabilitabelle di elenco con paginazione, input di filtro collegati all'URL, form modali, schede grafiche, caricamento file e pulsanti di esportazione con cui è assemblata l'intera app.
Copertura operativarichieste di assistenza, prenotazione di servizi e calendario della comunità, schermate finanziarie (pagamenti, estratti conto, fatture, solleciti), gestione utenti e unità immobiliari, e reportistica.
Notifiche pushMessaggistica Firebase con notifiche toast in-app.
Esportazioni in PDF e CSVper i flussi finanziari e di reportistica che richiedono output offline o pronti per l'invio.

Galleria

Workspace proprietario di esempio VCM con pagamenti, documenti ed eventi della comunità
Grafici VCM di richieste di assistenza e segnalazioni con dati sintetici

Sfide e soluzioni

La sfida principale è stata l'ampiezza della superficie applicativa: decine di tipi di entità, ciascuna con necessità di elenco, filtro, creazione, modifica ed esportazione, distribuite su due ruoli utente. Riscrivere tutto ciò per ogni singola funzionalità avrebbe generato un'applicazione non manutenibile. Ho risolto il problema con primitive riutilizzabili e un modello di navigazione configurabile guidato dai permessi, in modo che l'interfaccia si adatti a ciò che il backend autorizza senza menu hardcoded né logiche duplicate.

L'altra esigenza ricorrente era uno stato capace di reggere l'uso reale. Ho gestito la paginazione e i filtri delle liste tramite la query string dell'URL, rendendo le viste condivisibili, preservando la normale navigazione avanti/indietro del browser e mantenendo lo stato delle tabelle anche dopo il ricaricamento. Ho centralizzato l'autenticazione nello stato condiviso e nel layer delle richieste per mantenere leggeri i componenti delle funzionalità, e ho introdotto un error boundary, stati di caricamento e un reindirizzamento fluido alla scadenza della sessione, evitando che una dashboard complessa fallisca silenziosamente.

Risultato

VCM è un unico front end che serve realmente entrambi i lati della gestione di comunità. I team operativi gestiscono l'intero ciclo di vita degli immobili da un unico workspace di amministrazione, mentre i residenti operano in autonomia per pagamenti, richieste, prenotazioni e documenti. Poiché è basato su primitive condivise e su una shell orientata ai permessi, il codebase continua a scalare con l'aggiunta di nuovi flussi di lavoro invece di appesantirsi a ogni nuova funzionalità.

Hai un problema di prodotto simile?

Condividi il prodotto attuale, il risultato di cui hai bisogno e i vincoli già presenti. Li utilizzerò per definire un primo milestone sensato.

Servizi di sviluppo SaaS
Inizia il tuo project brief
Tutti i progettiProgetto successivoZED (My Islamic Reminders)
VCM: Piattaforma di gestione immobiliare e di comunità (Front End React) | Muhammad Arslan