6.2 KiB
6.2 KiB
Codebase Structure
Analysis Date: 2025-03-13
Directory Layout
sample_interface/
├── src/
│ ├── app/
│ │ ├── App.tsx # Application entry point
│ │ ├── routes.ts # Route definitions
│ │ └── components/
│ │ ├── DashboardLayout.tsx # Main layout shell
│ │ ├── Header.tsx # Top status bar
│ │ ├── NavigationButtons.tsx # Scroll controls
│ │ ├── Sidebar.tsx # Navigation sidebar
│ │ ├── figma/
│ │ │ └── ImageWithFallback.tsx
│ │ ├── ui/ # 40+ shadcn/ui components
│ │ │ ├── button.tsx
│ │ │ ├── card.tsx
│ │ │ ├── input.tsx
│ │ │ ├── utils.ts
│ │ │ └── ...
│ │ └── views/ # Page/route components
│ │ ├── ADCSettingView.tsx
│ │ ├── CalibrationView.tsx
│ │ ├── DateTimeSettingView.tsx
│ │ ├── EVAPSettingView.tsx
│ │ ├── FlashMemoryView.tsx
│ │ ├── GPRSSettingView.tsx
│ │ ├── GraphView.tsx
│ │ ├── LevelSettingView.tsx
│ │ ├── LoginView.tsx
│ │ ├── MobileSettingView.tsx
│ │ ├── NetworkSetupView.tsx
│ │ ├── RainfallSettingView.tsx
│ │ ├── RainfallView.tsx
│ │ ├── SettingView.tsx
│ │ ├── SirenSettingView.tsx
│ │ └── StationInfoView.tsx
│ └── styles/
│ ├── index.css # Main stylesheet entry
│ ├── tailwind.css # Tailwind imports
│ └── theme.css # Theme variables
├── guidelines/
│ └── Guidelines.md # Design system documentation
├── package.json # Dependencies
├── postcss.config.mjs # PostCSS configuration
└── vite.config.ts # Vite build configuration
Directory Purposes
src/app/:
- Purpose: Application logic and component tree
- Contains: Entry point, routing, components
- Key files:
App.tsx,routes.ts
src/app/components/:
- Purpose: Layout and structural components
- Contains: DashboardLayout, Header, Sidebar, NavigationButtons
- Key files:
DashboardLayout.tsx,Sidebar.tsx
src/app/components/ui/:
- Purpose: shadcn/ui primitive components
- Contains: 40+ UI components (button, card, input, etc.)
- Key files:
utils.ts(cn function),button.tsx,card.tsx - Pattern: Each component in separate file with PascalCase naming
src/app/components/views/:
- Purpose: Route/page-level components
- Contains: 16 view components (one per route)
- Key files:
RainfallView.tsx(default),LoginView.tsx,GraphView.tsx - Pattern:
{Name}View.tsxnaming convention
src/app/components/figma/:
- Purpose: Figma-related utilities
- Contains:
ImageWithFallback.tsx - Usage: Image loading with error fallback
src/styles/:
- Purpose: Global styles and CSS configuration
- Contains: CSS imports and theme definitions
- Key files:
index.css(entry),tailwind.css,theme.css
guidelines/:
- Purpose: Design system documentation
- Contains:
Guidelines.md(458 lines of design specs) - Usage: Color palette, typography, spacing standards
Key File Locations
Entry Points:
sample_interface/src/app/App.tsx: React application rootsample_interface/src/app/routes.ts: Route configurationsample_interface/src/styles/index.css: Style entry
Configuration:
sample_interface/vite.config.ts: Vite build config with @ aliassample_interface/package.json: Dependencies (React 18, React Router 7, Radix, Tailwind 4)sample_interface/postcss.config.mjs: PostCSS configuration
Core Layout:
sample_interface/src/app/components/DashboardLayout.tsx: Main layout with Outletsample_interface/src/app/components/Sidebar.tsx: Navigation with 7 menu itemssample_interface/src/app/components/Header.tsx: Status bar with time, connection, battery
Core UI:
sample_interface/src/app/components/ui/utils.ts:cn()class merging utilitysample_interface/src/app/components/ui/button.tsx: Primary button componentsample_interface/src/app/components/ui/card.tsx: Card container component
Naming Conventions
Files:
- Components: PascalCase.tsx (e.g.,
RainfallView.tsx,Button.tsx) - Utilities: camelCase.ts (e.g.,
utils.ts) - Config: kebab-case.ts (e.g.,
vite.config.ts) - Styles: lowercase.css (e.g.,
index.css)
Directories:
- Lowercase:
ui/,views/,styles/,figma/
Exports:
- Components: Named exports (e.g.,
export function Button) - Utilities: Named exports (e.g.,
export function cn) - View suffix: All route components end with
View(e.g.,RainfallView,LoginView)
Where to Add New Code
New Route/View:
- Implementation:
sample_interface/src/app/components/views/{Name}View.tsx - Registration:
sample_interface/src/app/routes.ts(add to children array) - Menu item:
sample_interface/src/app/components/Sidebar.tsx(add to menuItems array)
New UI Component:
- Implementation:
sample_interface/src/app/components/ui/{component}.tsx - Pattern: Follow shadcn/ui style with
cn()utility - Re-export from other components as needed
New Layout Component:
- Implementation:
sample_interface/src/app/components/{Component}.tsx - Import in:
DashboardLayout.tsxorSidebar.tsxas needed
Styles/Theme:
- Global styles:
sample_interface/src/styles/theme.css - Tailwind config:
sample_interface/vite.config.ts(Tailwind v4 uses CSS config)
Special Directories
sample_interface/src/app/components/ui/:
- Purpose: shadcn/ui component library
- Generated: Partially (shadcn init pattern)
- Committed: Yes
- Note: 40+ components from Radix UI primitives
sample_interface/guidelines/:
- Purpose: Design documentation
- Generated: No (manually maintained)
- Committed: Yes
- Note: Contains 458 lines of design system specs
Structure analysis: 2025-03-13