Files
rocketry/DETAILED_PROJECT_STRUCTURE_OUTLINE.md
2026-03-03 16:43:30 +00:00

4.4 KiB

Detailed Project Structure Outline

I. Root Directory Structure

A. Configuration Files 1. package.json - Project dependencies and scripts 2. vite.config.js - Vite build configuration 3. eslint.config.js - ESLint configuration 4. .gitignore - Git ignore patterns

B. Documentation Files 1. README.md - Project introduction and setup 2. PROJECT_OVERVIEW.md - Detailed project description 3. PROJECT_STRUCTURE.md - Technical architecture 4. Various other documentation files (.md)

C. Directories 1. src/ - Main source code 2. public/ - Static assets 3. dist/ - Build output (generated) 4. node_modules/ - Dependencies (generated)

II. Source Code Directory (src/)

A. Entry Points 1. main.jsx - Application entry point 2. App.jsx - Main application component with routing 3. index.css - Global styles

B. Components Directory (src/components/) 1. General UI Components a. VariablePalette.jsx - Sidebar with draggable variables b. Workspace.jsx - Main area for variable manipulation c. ResultsPanel.jsx - Display area for calculation results d. VariableCard.jsx - Draggable elements representing variables e. PropellantModal.jsx - Modal for propellant selection f. EquationBrowser.jsx - Interface for browsing equations

  2. Specialized Component Subdirectories
     a. engine/ - Engine-specific 3D visualization components
     b. rocket/ - Rocket-specific components (currently minimal)

C. Pages Directory (src/pages/) 1. Home.jsx - Landing page showcasing available tools 2. Solver.jsx - Main equation solving interface 3. EnginePage.jsx - Engine design tool with 3D visualization 4. RocketPage.jsx - Rocket design interface (placeholder) 5. KnowledgebaseFuelsPage.jsx - Reference information about fuels

D. Engine Directory (src/engine/) 1. Core Calculation Modules a. equations.js - Mathematical formulas for rocket propulsion b. solver.js - Constraint propagation algorithm implementation c. engineDesignCalcs.js - Engine design calculations d. rocketDesignCalcs.js - Rocket design calculations e. numerics.js - Numerical methods and algorithms f. units.js - Unit conversion utilities g. variables.js - Variable definitions and management h. format.js - Formatting utilities for display

  2. Data Handling Modules
     a. exportImport.js - General workspace save/load functionality
     b. engineExportImport.js - Engine-specific import/export
     c. rocketExportImport.js - Rocket-specific import/export
     d. exportOdt.js - ODT document generation
     e. knowledgebaseData.js - Knowledgebase reference data
  
  3. Field Information
     a. engineFieldInfo.js - Metadata about engine parameters

E. Hooks Directory (src/hooks/) 1. useSolver.js - State management for equation solver 2. useEngineDesign.js - State management for engine design 3. useRocketDesign.js - State management for rocket design

F. Assets Directory (src/assets/) 1. Images and icons 2. Other static media

III. External Dependencies Analysis

A. Core Framework 1. react/react-dom - UI framework 2. vite - Build tool and development server

B. Specialized Libraries 1. @dnd-kit/* - Drag-and-drop functionality 2. @react-three/fiber/@react-three/drei - 3D rendering 3. three.js - 3D graphics library 4. react-router-dom - Client-side routing

C. Utilities 1. jszip - File compression for exports 2. tailwindcss - Styling framework

IV. Data Flow Architecture

A. Component to Hook Communication 1. Pages utilize custom hooks for state management 2. Hooks interface with engine modules for business logic

B. State Management Patterns 1. Custom hooks encapsulate complex state logic 2. Context API potential for cross-component state (if needed)

C. Data Persistence 1. Export/import functionality for workspace saving 2. ODT generation for report creation

V. Build and Deployment Structure

A. Development Server 1. Vite HMR for rapid development 2. Hot module replacement configuration

B. Production Build 1. Optimized bundle generation 2. Asset optimization and minification