Sweden
Loading...
India
Loading...

Application Architecture

Folder Structure

The application’s folder structure is modeled, prioritizing streamlined code organization, reduced redundancy, and a clearly defined, easily navigable project architecture.

Folder Structure

src/
β”œβ”€β”€ application/
β”‚   └── services/
β”‚       β”œβ”€β”€ metrics.service.ts
β”‚       └── space.service.ts
β”œβ”€β”€ auth/
β”‚   β”œβ”€β”€ AuthContext.tsx
β”‚   β”œβ”€β”€ permissions.ts
β”‚   β”œβ”€β”€ ProtectedFeature.tsx
β”‚   └── usePermissions.ts
β”œβ”€β”€ domain/
β”‚   β”œβ”€β”€ entities/
β”‚   β”‚   β”œβ”€β”€ alert.entity.ts
β”‚   β”‚   β”œβ”€β”€ analytics.entity.ts
β”‚   β”‚   β”œβ”€β”€ equipment.entity.ts
β”‚   β”‚   β”œβ”€β”€ hierarchy.entity.ts
β”‚   β”‚   β”œβ”€β”€ metrics.entity.ts
β”‚   β”‚   β”œβ”€β”€ space.entity.ts
β”‚   β”‚   β”œβ”€β”€ time-series.entity.ts
β”‚   β”‚   └── weather.entity.ts
β”‚   └── interfaces/
β”‚       └── repositories.interface.ts
β”œβ”€β”€ infrastructure/
β”‚   β”œβ”€β”€ api/
β”‚   β”‚   β”œβ”€β”€ metrics.repository.ts
β”‚   β”‚   └── space.repository.ts
β”‚   β”œβ”€β”€ ems/
β”‚   β”‚   β”œβ”€β”€ ems-engine.ts
β”‚   β”‚   └── ems-state.ts
β”‚   β”œβ”€β”€ mock/
β”‚   β”‚   β”œβ”€β”€ alerts.mock.ts
β”‚   β”‚   β”œβ”€β”€ analytics.mock.ts
β”‚   β”‚   β”œβ”€β”€ equipment.mock.ts
β”‚   β”‚   β”œβ”€β”€ hierarchy-data.ts
β”‚   β”‚   β”œβ”€β”€ metrics.mock.ts
β”‚   β”‚   β”œβ”€β”€ metrics.mocks.old
β”‚   β”‚   β”œβ”€β”€ multi-site-hierarchy.ts
β”‚   β”‚   β”œβ”€β”€ space.mock.ts
β”‚   β”‚   └── weather.mock.ts
β”‚   β”œβ”€β”€ simulation/
β”‚   β”‚   β”œβ”€β”€ aggregation-engine.ts
β”‚   β”‚   β”œβ”€β”€ battery-controller.ts
β”‚   β”‚   β”œβ”€β”€ hierarchy-manager.ts
β”‚   β”‚   β”œβ”€β”€ load-simulator.ts
β”‚   β”‚   β”œβ”€β”€ simulation-config.ts
β”‚   β”‚   β”œβ”€β”€ solar-simulator.ts
β”‚   β”‚   β”œβ”€β”€ space-simulator.ts
β”‚   β”‚   └── weather-simulator.ts
β”‚   └── time/
β”‚       β”œβ”€β”€ time-engine.ts
β”‚       └── time-series-store.ts
β”œβ”€β”€ presentation/
β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”œβ”€β”€ features/
β”‚   β”‚   β”‚   β”œβ”€β”€ map/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ utils/
β”‚   β”‚   β”‚   β”‚   β”‚   └── markerUtils.ts
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ index.ts
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ MapLegend.tsx
β”‚   β”‚   β”‚   β”‚   └── SiteDetailPanel.tsx
β”‚   β”‚   β”‚   β”œβ”€β”€ AlertsPanel.tsx
β”‚   β”‚   β”‚   β”œβ”€β”€ BackendConnectionError.tsx
β”‚   β”‚   β”‚   β”œβ”€β”€ DashboardFooter.tsx
β”‚   β”‚   β”‚   β”œβ”€β”€ DashboardHeader.tsx
β”‚   β”‚   β”‚   β”œβ”€β”€ EnergyAnalyticsPanel.tsx
β”‚   β”‚   β”‚   β”œβ”€β”€ EnergyFlowDiagram.tsx
β”‚   β”‚   β”‚   β”œβ”€β”€ RealtimeChart.tsx
β”‚   β”‚   β”‚   β”œβ”€β”€ SiteComparisonCard.tsx
β”‚   β”‚   β”‚   β”œβ”€β”€ SitesMap.tsx
β”‚   β”‚   β”‚   β”œβ”€β”€ SiteWiseEnergyFlow.tsx
β”‚   β”‚   β”‚   β”œβ”€β”€ SummaryCard.tsx
β”‚   β”‚   β”‚   β”œβ”€β”€ TariffAnalysisPanel.tsx
β”‚   β”‚   β”‚   β”œβ”€β”€ TimeControlPanel.tsx
β”‚   β”‚   β”‚   └── WeatherWidget.tsx
β”‚   β”‚   └── ui/
β”‚   β”‚       └── SparklineChart.tsx
β”‚   └── hooks/
β”‚       β”œβ”€β”€ useAggregatedMetrics.ts
β”‚       β”œβ”€β”€ useAlerts.api.ts
β”‚       β”œβ”€β”€ useAnalytics.api.ts
β”‚       β”œβ”€β”€ useBackendHealth.ts
β”‚       β”œβ”€β”€ useBusinessMetrics.api.ts
β”‚       β”œβ”€β”€ useBusinessMetrics.ts
β”‚       β”œβ”€β”€ useEnergyMetrics.api.ts
β”‚       β”œβ”€β”€ useEnergyMetrics.ts
β”‚       β”œβ”€β”€ useLiveTelemetry.api.ts
β”‚       β”œβ”€β”€ useLiveTelemetry.ts
β”‚       β”œβ”€β”€ useRealtimeMetrics.ts
β”‚       β”œβ”€β”€ useRealtimeSiteChartData.api.ts
β”‚       β”œβ”€β”€ useRealtimeSiteChartData.ts
β”‚       β”œβ”€β”€ useRealtimeSiteMetrics.api.ts
β”‚       β”œβ”€β”€ useRealtimeSiteMetrics.ts
β”‚       β”œβ”€β”€ useTariff.api.ts
β”‚       β”œβ”€β”€ useTimeEngine.ts
β”‚       β”œβ”€β”€ useVisualThrottle.ts
β”‚       └── useWeather.api.ts
β”œβ”€β”€ shared/
β”‚   β”œβ”€β”€ config/
β”‚   β”‚   └── api.config.ts
β”‚   β”œβ”€β”€ constants/
β”‚   β”‚   └── colors.ts
β”‚   └── utils/
β”‚       β”œβ”€β”€ chart-config.ts
β”‚       β”œβ”€β”€ cn.ts
β”‚       β”œβ”€β”€ formatting.ts
β”‚       β”œβ”€β”€ physics.ts
β”‚       └── site-metrics.ts
└── middleware.ts