# Project Folder Structure This document provides a detailed description of the purpose of each folder in the project by root level, along with the folder hierarchy. ## Folder Hierarchy ``` πŸ“ src β”œβ”€β”€ πŸ“ assets β”œβ”€β”€ πŸ“ components β”œβ”€β”€ πŸ“ functions β”œβ”€β”€ πŸ“ hooks β”œβ”€β”€ πŸ“ modules β”‚ β”œβ”€β”€ πŸ“ builder β”‚ β”œβ”€β”€ πŸ“ simulation β”‚ └── πŸ“ visualization β”œβ”€β”€ πŸ“ services β”œβ”€β”€ πŸ“ store β”œβ”€β”€ πŸ“ styles β”œβ”€β”€ πŸ“ tests β”œβ”€β”€ πŸ“ types β”œβ”€β”€ πŸ“ utils β”œβ”€β”€ App.css β”œβ”€β”€ App.tsx β”œβ”€β”€ index.css β”œβ”€β”€ main.tsx └── vite-env.d.ts ``` --- ## Description of Each Folder ### πŸ“ `src` The root directory for all source code related to the application. #### πŸ“ `assets` - **Purpose:** Contains static assets such as images, icons, fonts, or other resources. - **Example:** - `react.svg`: A static SVG file used in the project. #### πŸ“ `components` - **Purpose:** Contains reusable React components, serving as building blocks for the user interface. - **Example:** - Buttons, modals, headers, and forms. #### πŸ“ `functions` - **Purpose:** Stores pure functions or logic that can be reused across the application. - **Example:** - Utility functions for data transformation or computation. #### πŸ“ `hooks` - **Purpose:** Holds custom React hooks for managing specific logic or behaviors. - **Example:** - Hooks for state management, API calls, or reusable effects. #### πŸ“ `modules` - **Purpose:** Organizes high-level, feature-specific code into subdirectories. - **πŸ“ builder:** Manages functionalities and components related to building or configuring features. - **πŸ“ simulation:** Handles processes or logic related to simulations or dynamic scenarios. - **πŸ“ visualization:** Focuses on displaying data visually, such as charts, graphs, or interactive UI elements. #### πŸ“ `services` - **Purpose:** Encapsulates external service interactions, such as API calls or library integrations. - **Example:** - REST API clients or authentication handlers. #### πŸ“ `store` - **Purpose:** Contains state management logic and configurations for tools like Redux or Zustand. - **Example:** - Redux slices, context providers, or global state stores. #### πŸ“ `styles` - **Purpose:** Includes global CSS, SCSS, or theming resources. - **Example:** - Global styles, theme variables, or resets. #### πŸ“ `tests` - **Purpose:** Stores test files for unit testing, integration testing, and mock data. - **Example:** - Test files (`*.test.tsx`, `*.spec.ts`) or mock utilities. #### πŸ“ `types` - **Purpose:** Contains shared TypeScript type definitions and interfaces. - **Example:** - Type declarations for props, data models, or API responses. #### πŸ“ `utils` - **Purpose:** Includes general-purpose utility files that don’t fit into other specific folders. - **Example:** - Helper functions like debouncers or date formatters. --- ## Root-Level Files ### `App.tsx` - **Purpose:** The root React component, initializing the main application layout and logic. ### `index.css` - **Purpose:** Contains global styles applied throughout the application. ### `main.tsx` - **Purpose:** The entry point of the app, rendering the React application and setting up the React DOM. ### `vite-env.d.ts` - **Purpose:** TypeScript environment configuration file for Vite.