Register Dashboards UI Guide

For AI Agents: This guide explains how to build and deploy Register interfaces that work BOTH locally and on the public website, with appropriate privacy controls.


Architecture: Local โ†” Website

Core Principle

The UI must be IDENTICAL between the local development version and the public website version.

Local registers (React apps in Registers/):

Registers/
โ”œโ”€โ”€ financial_register/frontend/   โ†’ React app (Vite + TypeScript)
โ”œโ”€โ”€ candidate_register/frontend/   โ†’ React app (Vite + TypeScript)
โ””โ”€โ”€ resident_register/frontend/    โ†’ React app (Vite + TypeScript)

Public website (Quartz static site):

Quartz_CL/content/
โ”œโ”€โ”€ Financials/Financial-Register-Dashboard   โ†’ Embedded version
โ””โ”€โ”€ (Candidate Dashboard if public)

Why? Consistency, maintainability, and user familiarity. Whether Simone views data locally or a partner views it on the website, the experience should feel the same.


Privacy Rules (CRITICAL)

Financial Register

SectionLocalWebsiteReason
Assetsโœ… Fullโœ… PublicTransparency about property holdings
Expensesโœ… Fullโœ… PublicShow where money goes
Fiscal Summaryโœ… Fullโœ… PublicTax compliance, grants
Balance Sheetโœ… Fullโœ… PublicOverall financial health
Incomeโœ… FullโŒ PROTECTEDPrivacy - revenue sources sensitive
Cashflowโœ… FullโŒ PROTECTEDPrivacy - liquidity info sensitive
Bank Accountsโœ… FullโŒ PROTECTEDSecurity - account details

CAUTION

NEVER expose Income, Cashflow, or Bank Account data on the public website. These pages should either not exist on the website, or show a โ€œProtected Dataโ€ placeholder.

Candidate Register

SectionLocalWebsiteReason
Dashboard (Aggregated)โœ… Fullโœ… PublicShow community stats (nationalities, timeline)
Individual Candidatesโœ… FullโŒ PROTECTEDPrivacy - personal data (GDPR)
Call Logsโœ… FullโŒ PROTECTEDPrivacy - interview notes
Contact Infoโœ… FullโŒ PROTECTEDPrivacy - emails, phones

CAUTION

The public website should ONLY show aggregated statistics, NEVER individual person data. Names, emails, phone numbers, and interview notes are strictly private.

Resident Register

SectionLocalWebsiteReason
Occupancy Overviewโœ… Fullโœ… PublicShow availability
Room Assignmentsโœ… FullโŒ PROTECTEDPrivacy - who lives where
Contract Detailsโœ… FullโŒ PROTECTEDLegal - contract terms

Visual Style Guidelines

DARK MODE ONLY

IMPORTANT

Register dashboards are DARK MODE ONLY. Do NOT implement light mode variants.

Rationale:

  1. Technical/Nerd Aesthetic: These are data-heavy, technical interfaces. Dark mode conveys a โ€œserious toolsโ€ feel.
  2. Simplified Development: No need to maintain two color schemes โ€“ faster to build and maintain.
  3. Visual Distinction: Dark dashboards stand out as โ€œspecial toolsโ€ vs the warm, inviting main website.
  4. Readability: Data visualizations and charts are often more readable on dark backgrounds.

The main ColivingLiguria website uses warm earth tones (see Color-Palette). Registers intentionally break this pattern to signal โ€œyou are now in a technical tool.โ€

Color Palette (Dark Only)

All dashboards follow the aesthetic defined in Dashboard_Chart_Style_Guide.

Key Points

  1. Dark Theme: Background #0a0a0a, cards #111111
  2. Gold Palette: Primary accent #D4A373, gradient for bars
  3. Glassmorphism: backdrop-filter: blur(10px), subtle borders
  4. Typography: Inter font, uppercase labels, 600 weight for values
  5. Animations: Fade-in on load, subtle hover effects

Required Components

ComponentPurposeColors
StatCardSingle KPI metricGold icon, large value
DonutChartProportional distributionMulti-color segments
BarChartRanked comparisonsGold gradient
TimelineChartTrend over timeGold bars, month labels

Implementation Checklist

When building or modifying a Register dashboard:

  • Same Interface: Ensure local and website versions look identical
  • Privacy Filter: Add conditional rendering to hide protected sections on website
  • Style Compliance: Follow Dashboard_Chart_Style_Guide colors exactly
  • Responsive: Works on mobile (stacked layout)
  • Animations: Include fade-in on load
  • Accessibility: Color contrast > 4.5:1

Privacy Filter Example

// In the public website version
const isPublicSite = window.location.hostname.includes('colivingliguria');
 
return (
  <>
    <AssetsSection />
    <ExpensesSection />
    {!isPublicSite && <IncomeSection />}     {/* Hidden on public */}
    {!isPublicSite && <CashflowSection />}   {/* Hidden on public */}
  </>
);

  • Style Guide: Registers/System/Aesthetics/Dashboard_Chart_Style_Guide.md
  • Color Palette: Registers/System/Aesthetics/palette.ts
  • Theme CSS: Registers/System/Aesthetics/theme.css
  • Financial Frontend: Registers/financial_register/frontend/
  • Candidate Frontend: Registers/candidate_register/frontend/