Skip to content

Project Structure

/
├─ .github - GitHub files (only used for Vutron GitHub project contributions)
│  └─ ISSUE_TEMPLATE/
│  └─ resources/ - GitHub resources used for README.md, etc.
│  └─ workflows/ - GitHub workflows definition
│  └─ FUNDING.yml
├─ .vscode - Common project configuration files used by Visual Studio Code IDE
├─ buildAssets/ - Package resource (icon, logo, etc.) file used for Electron build
│  └─ builder/
│  │  │  └─ config.js - `electron-builder` dynamic configuration file
│  └─ icons/
├─ dist/ - Output directory used to build the package
├─ docs/ - Project documents (optionally enabled)
│  └─ src/
│  │  └─ .vitepress/
│  │  │  └─ config.mts - VitePress configuration file used for document hosting
│  │  └─ public/ - Root resource directory for VitePress documentation pages
├─ node_modules/
├─ src/
│  ├─ common/ - Code shared by the main and renderer processes
│  │  └─ ipc.ts - IPC channel names and payload types
│  │  └─ locales.ts - Supported languages and language tag matching
│  ├─ main/ - Main (Electron) process source code
│  │  ├─ utils/ - Main process utilities
│  │  │  └─ Constants.ts - Main global definition
│  │  │  └─ devTools.ts - When DevTools opens in a development build
│  │  │  └─ ipc.ts - IPC registration helpers typed against the channel contracts
│  │  │  └─ security.ts - Navigation and external link guards
│  │  └─ index.ts - Main process entry point
│  │  └─ index.dev.ts - Development-only setup, stripped from packaged builds
│  │  └─ IPCs.ts - Main process ipc handlers definition
│  │  └─ MainRunner.ts - Main process main window processing
│  │  └─ tray.ts - Tray icon and tray window handling
│  │  └─ WindowManager.ts - Windows opened on top of the main window
│  ├─ preload/ - Preload (Electron-Vue communication bridge) process source code
│  │  └─ index.ts
│  ├─ public/ - Main + Renderer static resources
│  │  └─ images/
│  ├─ renderer/ - Renderer (Vue) process source code
│  │  ├─ components/ - Vue components collection
│  │  │  └─ layout/ - Layout components
│  │  ├─ locales/ - Vue i18n language resource file
│  │  ├─ plugins/ - Vue plugin definition
│  │  ├─ router/ - Vue routing definition
│  │  ├─ screens/ - Vue screen component
│  │  │  └─ ErrorScreen.vue - Screen displayed when renderer process and routing errors occur
│  │  │  └─ MainScreen.vue
│  │  │  └─ SecondScreen.vue - Sample screen
│  │  ├─ store/ - Pinia store (Global state management) definition
│  │  ├─ utils/ - Renderer process utilities
│  │  ├─ App.vue - Vue app's root component
│  │  ├─ index.html - Root static index loaded by Electron renderer process
│  │  └─ main.ts - Renderer process entry point
│  ├─ mainApi.d.ts - Type of the `window.mainApi` bridge exposed by the preload
│  └─ vue-shim.d.ts - Type declaration for `*.vue` imports
├─ tests/ - Application test configuration
│  ├─ results/ - Where to save PlayWright test result files and screenshots
│  ├─ specs/ - PlayWright test spec file
│  ├─ fixtures.mts - Test common execution API
│  └─ testUtil.mts - Test utilities
├─ .editorconfig - Editor recommended configuration file for IDE
├─ .gitignore - List of files to not upload to Git
├─ .nvmrc - Node.js version used for development
├─ .prettierignore - List of files to disable Prettier file formatting
├─ .prettierrc - Prettier rule configurations
├─ CODE_OF_CONDUCT.md - Files used only on GitHub
├─ CONTRIBUTING.md - Contribution guide, used only on GitHub
├─ eslint.config.ts - ESLint rule configurations
├─ LICENSE - Project license file
├─ package.json - Node.js package configurations
├─ package-lock.json
├─ playwright.config.ts - Playwright test rules configurations
├─ pnpm-lock.yaml - PNPM Related Files
├─ pnpm-workspace.yaml - PNPM Related Files
├─ SECURITY.md - Security policy, used only on GitHub
├─ tsconfig.json - TypeScript configurations (renderer, common)
├─ tsconfig.node.json - TypeScript configurations (main, preload, common, tests)
├─ vite.config.mts - Vite compiler build configurations
└─ README.md - Files used only on GitHub