mirror of
https://github.com/borbann-platform/backend-api.git
synced 2025-12-18 04:04:05 +01:00
| .. | ||
| app | ||
| components | ||
| hooks | ||
| lib | ||
| public | ||
| services | ||
| store | ||
| types | ||
| .gitignore | ||
| components.json | ||
| eslint.config.mjs | ||
| next.config.ts | ||
| package.json | ||
| pnpm-lock.yaml | ||
| postcss.config.mjs | ||
| README.md | ||
| tsconfig.json | ||
frontend/
├── features/ # <= NEW: Feature-specific modules
│ ├── map/
│ │ ├── api/ # API calls specific to the map
│ │ │ └── mapApi.ts # (Example)
│ │ ├── components/ # Map-specific UI components
│ │ │ ├── analytics-overlay.tsx
│ │ │ ├── analytics-panel.tsx
│ │ │ ├── area-chart.tsx
│ │ │ ├── chat-bot.tsx
│ │ │ ├── chat-overlay.tsx
│ │ │ ├── filters-overlay.tsx
│ │ │ ├── map-container.tsx
│ │ │ ├── map-header.tsx
│ │ │ ├── map-sidebar.tsx
│ │ │ ├── property-filters.tsx
│ │ │ └── overlay-system/ # Overlay specific components
│ │ │ ├── overlay-context.tsx
│ │ │ ├── overlay-dock.tsx
│ │ │ └── overlay.tsx
│ │ ├── hooks/ # Map-specific hooks
│ │ │ └── useMapInteractions.ts # (Example)
│ │ ├── types/ # Map-related types/interfaces
│ │ │ └── index.ts # (Example)
│ │ └── utils/ # Map-specific utilities
│ │ └── mapHelpers.ts # (Example)
│ └── model-explanation/
│ ├── components/ # Model Explanation specific components
│ │ ├── feature-importance-chart.tsx
│ │ └── price-comparison-chart.tsx
│ ├── api/
│ │ └── explanationApi.ts # (Example)
│ └── types/
│ └── index.ts # (Example)
│
├── components/
│ ├── ui/ # Shadcn UI components (KEEP AS IS)
│ │ └── ... (accordion.tsx, button.tsx, etc.)
│ └── common/ # <= NEW: Shared, app-wide components
│ ├── ThemeProvider.tsx # Moved from root components
│ ├── ThemeToggle.tsx # Moved from root components
│ ├── ThemeController.tsx # Moved from root components
│ └── PageLayout.tsx # (Example new shared layout)
│
├── lib/ # Core utilities, constants, config
│ └── utils.ts # (Keep cn function here)
│
├── hooks/ # Shared, app-wide hooks
│ ├── use-toast.ts # (Keep useToast here)
│ └── use-mobile.tsx # (Keep useIsMobile here)
│
├── services/ # <= OPTIONAL: Centralized API layer (alternative to features/\*/api)
│ └── apiClient.ts # (Example API client setup)
│
├── store/ # <= OPTIONAL: Global state management (e.g., Zustand, Jotai)
│ └── mapStore.ts # (Example store)
│
├── types/ # <= NEW: Shared, app-wide types/interfaces
│ ├── index.ts # Barrel file for types
│ └── api.ts # Example: General API response types
│
├── app/ # Next.js app router (routing, layouts, pages)
│ ├── (routes)/ # Keep actual route structure here
│ │ ├── map/
│ │ │ ├── layout.tsx # Imports common layout, feature components
│ │ │ └── page.tsx # Imports components from 'features/map/components'
│ │ ├── model-explanation/
│ │ │ └── page.tsx # Imports components from 'features/model-explanation/components'
│ │ └── page.tsx # Root page
│ ├── layout.tsx # Root layout (includes ThemeProvider)
│ ├── globals.css
│ └── favicon.ico
│
├── public/ # Static assets
│ └── ...
│
├── .gitignore
├── components.json
├── eslint.config.mjs
├── next-env.d.ts
├── next.config.ts
├── package.json
├── pnpm-lock.yaml
├── postcss.config.mjs
├── tailwind.config.ts
└── tsconfig.json