Pages Overview
96 page components in frontend/src/pages/, organized by functional area. All pages use lazy loading via React.lazy() + Suspense with a shared LoadingFallback.
Page Areas
Auth (11 pages)
| Page | Path | Purpose |
|---|---|---|
| Login | /login | Email/password + SSO login |
| Signup | /signup | New user registration |
| ForgotPassword | /forgot-password | Password reset request |
| ResetPassword | /reset-password | Password reset form |
| MagicLinkRequest | /magic-link | Passwordless login request |
| MagicLinkVerify | /magic-link/verify | Magic link verification |
| MagicLinkSuccess | /magic-link/success | Magic link confirmation |
| PhoneNumberVerify | /phone/verify | Phone 2FA verification |
| PhoneNumberSuccess | /phone/success | Phone verification success |
| AuthCallback | /auth/callback | OAuth redirect handler |
| TwoFactorVerify | /2fa | TOTP verification |
Core Business (5 pages)
| Page | Route | Related Entity |
|---|---|---|
| Buildings | /buildings | Buildings |
| BuildingDetail | /buildings/:id | Buildings, Building Components |
| ProjectDetail | /buildings/:buildingId/projects/:projectId | Projects, Scenarios |
| ScenarioDetail | .../scenarios/:scenarioId | Scenarios, Measures |
| FundingApplications | /funding-applications | Funding Applications |
CRM (6 pages)
| Page | Entity |
|---|---|
| ContactsPage / ContactDetailPage | Contacts |
| CompaniesPage / CompanyDetailPage | Companies |
| LeadsPage / LeadDetailPage | Leads |
Admin (16+ pages)
UsersAdmin, TeamDepartments, FundingProgramsAdmin, FundingProgramDetail, FormBuilder, FormsAdmin, FormFieldsAdmin, DocumentTemplatesAdmin, PdfTemplatesList, TypologyUValuesAdmin, TypologyUValueDetail, AdminProducts, AdminProductDetail, HubSpotAdmin, Admin Dashboard, RejectionReasonsSettings.
See RBAC Authorization for admin route protection.
Internal (10+ pages)
DocumentObtaining suite (dashboard, sets, documents, collections, detail), DocumentReviewDetail, WorkflowPage, TeamPage, Changelog, EmailTemplatesSettings, RejectionReasonsSettings.
See Document Obtaining, Document Review, Workflows.
Portal (4 pages)
| Page | Auth Method |
|---|---|
| PortalDashboard | Token-based |
| PortalFormPage | Token-based |
| PortalAppointmentView | Appointment token |
| PortalTokenErrorPage | Public |
See Portal for token-based authentication flow.
Profile (6 sections)
Profile page with tabbed sections: PersonalInfo, Password, TwoFactor, Responsibility, DeleteAccount, plus a parent Profile shell.
Utility Pages
Dashboard (landing), FilesDemo, PdfExport, FloorPlanDataCapture/.
Code Splitting
All pages are lazy-loaded in frontend/src/App.tsx:
const BuildingDetail = lazy(() => import('./pages/BuildingDetail'));Wrapped in <Suspense fallback={<LoadingFallback />}> at the router level.
Related
- Routing — Route definitions and hierarchy
- Frontend Architecture — Overall frontend structure
- Component Library — Shared UI components used by pages
- Authentication — Auth flow and protected routes
- Query Modules — Data fetching per page