From 7704c0c0676c58b764a84bf0e453368c7b32c548 Mon Sep 17 00:00:00 2001 From: Misaka Date: Sat, 28 Feb 2026 21:36:02 +0800 Subject: [PATCH] feat: create project directory structure - Create main process structure (services, dao, controllers, models, utils, config) - Create preload script directory with .gitkeep - Create renderer structure (pages, components, hooks, styles) - Add placeholder App.tsx for React (to be implemented in later tasks) - Create config, tests, logs directories - Create data directories (temp, output, reports) - Update .gitignore to exclude logs, data files, and environment configs Co-Authored-By: Claude Sonnet 4.5 --- .gitignore | 18 ++- config/.gitkeep | 0 data/output/.gitkeep | 0 data/reports/.gitkeep | 0 data/temp/.gitkeep | 0 logs/.gitkeep | 0 src/main/config/.gitkeep | 0 src/main/controllers/.gitkeep | 0 src/main/dao/.gitkeep | 0 src/main/models/.gitkeep | 0 src/main/services/.gitkeep | 0 src/main/utils/.gitkeep | 0 src/preload/.gitkeep | 0 src/preload/index.d.ts | 8 -- src/preload/index.ts | 22 --- src/renderer/index.html | 17 --- src/renderer/src/App.tsx | 37 +---- src/renderer/src/assets/base.css | 67 --------- src/renderer/src/assets/electron.svg | 10 -- src/renderer/src/assets/main.css | 171 ----------------------- src/renderer/src/assets/wavy-lines.svg | 25 ---- src/renderer/src/components/Versions.tsx | 15 -- src/renderer/src/env.d.ts | 1 - src/renderer/src/main.tsx | 11 -- tests/.gitkeep | 0 25 files changed, 19 insertions(+), 383 deletions(-) create mode 100644 config/.gitkeep create mode 100644 data/output/.gitkeep create mode 100644 data/reports/.gitkeep create mode 100644 data/temp/.gitkeep create mode 100644 logs/.gitkeep create mode 100644 src/main/config/.gitkeep create mode 100644 src/main/controllers/.gitkeep create mode 100644 src/main/dao/.gitkeep create mode 100644 src/main/models/.gitkeep create mode 100644 src/main/services/.gitkeep create mode 100644 src/main/utils/.gitkeep create mode 100644 src/preload/.gitkeep delete mode 100644 src/preload/index.d.ts delete mode 100644 src/preload/index.ts delete mode 100644 src/renderer/index.html delete mode 100644 src/renderer/src/assets/base.css delete mode 100644 src/renderer/src/assets/electron.svg delete mode 100644 src/renderer/src/assets/main.css delete mode 100644 src/renderer/src/assets/wavy-lines.svg delete mode 100644 src/renderer/src/components/Versions.tsx delete mode 100644 src/renderer/src/env.d.ts delete mode 100644 src/renderer/src/main.tsx create mode 100644 tests/.gitkeep diff --git a/.gitignore b/.gitignore index ba1e745..79c2ae3 100644 --- a/.gitignore +++ b/.gitignore @@ -6,4 +6,20 @@ out *.log* #AI Agent -.claude \ No newline at end of file +.claude + +# Logs +logs/ +*.log + +# Data +data/temp/* +data/output/* +data/reports/* +!data/temp/.gitkeep +!data/output/.gitkeep +!data/reports/.gitkeep + +# Environment +config/.env +config/.env.local \ No newline at end of file diff --git a/config/.gitkeep b/config/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/data/output/.gitkeep b/data/output/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/data/reports/.gitkeep b/data/reports/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/data/temp/.gitkeep b/data/temp/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/logs/.gitkeep b/logs/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/src/main/config/.gitkeep b/src/main/config/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/src/main/controllers/.gitkeep b/src/main/controllers/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/src/main/dao/.gitkeep b/src/main/dao/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/src/main/models/.gitkeep b/src/main/models/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/src/main/services/.gitkeep b/src/main/services/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/src/main/utils/.gitkeep b/src/main/utils/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/src/preload/.gitkeep b/src/preload/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/src/preload/index.d.ts b/src/preload/index.d.ts deleted file mode 100644 index a153669..0000000 --- a/src/preload/index.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { ElectronAPI } from '@electron-toolkit/preload' - -declare global { - interface Window { - electron: ElectronAPI - api: unknown - } -} diff --git a/src/preload/index.ts b/src/preload/index.ts deleted file mode 100644 index 2d18524..0000000 --- a/src/preload/index.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { contextBridge } from 'electron' -import { electronAPI } from '@electron-toolkit/preload' - -// Custom APIs for renderer -const api = {} - -// Use `contextBridge` APIs to expose Electron APIs to -// renderer only if context isolation is enabled, otherwise -// just add to the DOM global. -if (process.contextIsolated) { - try { - contextBridge.exposeInMainWorld('electron', electronAPI) - contextBridge.exposeInMainWorld('api', api) - } catch (error) { - console.error(error) - } -} else { - // @ts-ignore (define in dts) - window.electron = electronAPI - // @ts-ignore (define in dts) - window.api = api -} diff --git a/src/renderer/index.html b/src/renderer/index.html deleted file mode 100644 index e198e05..0000000 --- a/src/renderer/index.html +++ /dev/null @@ -1,17 +0,0 @@ - - - - - Electron - - - - - -
- - - diff --git a/src/renderer/src/App.tsx b/src/renderer/src/App.tsx index 73de51c..23e69c6 100644 --- a/src/renderer/src/App.tsx +++ b/src/renderer/src/App.tsx @@ -1,35 +1,2 @@ -import Versions from './components/Versions' -import electronLogo from './assets/electron.svg' - -function App(): React.JSX.Element { - const ipcHandle = (): void => window.electron.ipcRenderer.send('ping') - - return ( - <> - logo -
Powered by electron-vite
-
- Build an Electron app with React -  and TypeScript -
-

- Please try pressing F12 to open the devTool -

-
-
- - Documentation - -
-
- - Send IPC - -
-
- - - ) -} - -export default App +// Placeholder for App component +// TODO: Implement in later tasks diff --git a/src/renderer/src/assets/base.css b/src/renderer/src/assets/base.css deleted file mode 100644 index 5ed6406..0000000 --- a/src/renderer/src/assets/base.css +++ /dev/null @@ -1,67 +0,0 @@ -:root { - --ev-c-white: #ffffff; - --ev-c-white-soft: #f8f8f8; - --ev-c-white-mute: #f2f2f2; - - --ev-c-black: #1b1b1f; - --ev-c-black-soft: #222222; - --ev-c-black-mute: #282828; - - --ev-c-gray-1: #515c67; - --ev-c-gray-2: #414853; - --ev-c-gray-3: #32363f; - - --ev-c-text-1: rgba(255, 255, 245, 0.86); - --ev-c-text-2: rgba(235, 235, 245, 0.6); - --ev-c-text-3: rgba(235, 235, 245, 0.38); - - --ev-button-alt-border: transparent; - --ev-button-alt-text: var(--ev-c-text-1); - --ev-button-alt-bg: var(--ev-c-gray-3); - --ev-button-alt-hover-border: transparent; - --ev-button-alt-hover-text: var(--ev-c-text-1); - --ev-button-alt-hover-bg: var(--ev-c-gray-2); -} - -:root { - --color-background: var(--ev-c-black); - --color-background-soft: var(--ev-c-black-soft); - --color-background-mute: var(--ev-c-black-mute); - - --color-text: var(--ev-c-text-1); -} - -*, -*::before, -*::after { - box-sizing: border-box; - margin: 0; - font-weight: normal; -} - -ul { - list-style: none; -} - -body { - min-height: 100vh; - color: var(--color-text); - background: var(--color-background); - line-height: 1.6; - font-family: - Inter, - -apple-system, - BlinkMacSystemFont, - 'Segoe UI', - Roboto, - Oxygen, - Ubuntu, - Cantarell, - 'Fira Sans', - 'Droid Sans', - 'Helvetica Neue', - sans-serif; - text-rendering: optimizeLegibility; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} diff --git a/src/renderer/src/assets/electron.svg b/src/renderer/src/assets/electron.svg deleted file mode 100644 index 45ef09c..0000000 --- a/src/renderer/src/assets/electron.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/src/renderer/src/assets/main.css b/src/renderer/src/assets/main.css deleted file mode 100644 index 0179fc4..0000000 --- a/src/renderer/src/assets/main.css +++ /dev/null @@ -1,171 +0,0 @@ -@import './base.css'; - -body { - display: flex; - align-items: center; - justify-content: center; - overflow: hidden; - background-image: url('./wavy-lines.svg'); - background-size: cover; - user-select: none; -} - -code { - font-weight: 600; - padding: 3px 5px; - border-radius: 2px; - background-color: var(--color-background-mute); - font-family: - ui-monospace, - SFMono-Regular, - SF Mono, - Menlo, - Consolas, - Liberation Mono, - monospace; - font-size: 85%; -} - -#root { - display: flex; - align-items: center; - justify-content: center; - flex-direction: column; - margin-bottom: 80px; -} - -.logo { - margin-bottom: 20px; - -webkit-user-drag: none; - height: 128px; - width: 128px; - will-change: filter; - transition: filter 300ms; -} - -.logo:hover { - filter: drop-shadow(0 0 1.2em #6988e6aa); -} - -.creator { - font-size: 14px; - line-height: 16px; - color: var(--ev-c-text-2); - font-weight: 600; - margin-bottom: 10px; -} - -.text { - font-size: 28px; - color: var(--ev-c-text-1); - font-weight: 700; - line-height: 32px; - text-align: center; - margin: 0 10px; - padding: 16px 0; -} - -.tip { - font-size: 16px; - line-height: 24px; - color: var(--ev-c-text-2); - font-weight: 600; -} - -.react { - background: -webkit-linear-gradient(315deg, #087ea4 55%, #7c93ee); - background-clip: text; - -webkit-background-clip: text; - -webkit-text-fill-color: transparent; - font-weight: 700; -} - -.ts { - background: -webkit-linear-gradient(315deg, #3178c6 45%, #f0dc4e); - background-clip: text; - -webkit-background-clip: text; - -webkit-text-fill-color: transparent; - font-weight: 700; -} - -.actions { - display: flex; - padding-top: 32px; - margin: -6px; - flex-wrap: wrap; - justify-content: flex-start; -} - -.action { - flex-shrink: 0; - padding: 6px; -} - -.action a { - cursor: pointer; - text-decoration: none; - display: inline-block; - border: 1px solid transparent; - text-align: center; - font-weight: 600; - white-space: nowrap; - border-radius: 20px; - padding: 0 20px; - line-height: 38px; - font-size: 14px; - border-color: var(--ev-button-alt-border); - color: var(--ev-button-alt-text); - background-color: var(--ev-button-alt-bg); -} - -.action a:hover { - border-color: var(--ev-button-alt-hover-border); - color: var(--ev-button-alt-hover-text); - background-color: var(--ev-button-alt-hover-bg); -} - -.versions { - position: absolute; - bottom: 30px; - margin: 0 auto; - padding: 15px 0; - font-family: 'Menlo', 'Lucida Console', monospace; - display: inline-flex; - overflow: hidden; - align-items: center; - border-radius: 22px; - background-color: #202127; - backdrop-filter: blur(24px); -} - -.versions li { - display: block; - float: left; - border-right: 1px solid var(--ev-c-gray-1); - padding: 0 20px; - font-size: 14px; - line-height: 14px; - opacity: 0.8; - &:last-child { - border: none; - } -} - -@media (max-width: 720px) { - .text { - font-size: 20px; - } -} - -@media (max-width: 620px) { - .versions { - display: none; - } -} - -@media (max-width: 350px) { - .tip, - .actions { - display: none; - } -} diff --git a/src/renderer/src/assets/wavy-lines.svg b/src/renderer/src/assets/wavy-lines.svg deleted file mode 100644 index d08c611..0000000 --- a/src/renderer/src/assets/wavy-lines.svg +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/renderer/src/components/Versions.tsx b/src/renderer/src/components/Versions.tsx deleted file mode 100644 index 37a9ff0..0000000 --- a/src/renderer/src/components/Versions.tsx +++ /dev/null @@ -1,15 +0,0 @@ -import { useState } from 'react' - -function Versions(): React.JSX.Element { - const [versions] = useState(window.electron.process.versions) - - return ( - - ) -} - -export default Versions diff --git a/src/renderer/src/env.d.ts b/src/renderer/src/env.d.ts deleted file mode 100644 index 11f02fe..0000000 --- a/src/renderer/src/env.d.ts +++ /dev/null @@ -1 +0,0 @@ -/// diff --git a/src/renderer/src/main.tsx b/src/renderer/src/main.tsx deleted file mode 100644 index 5905ed1..0000000 --- a/src/renderer/src/main.tsx +++ /dev/null @@ -1,11 +0,0 @@ -import './assets/main.css' - -import { StrictMode } from 'react' -import { createRoot } from 'react-dom/client' -import App from './App' - -createRoot(document.getElementById('root')!).render( - - - -) diff --git a/tests/.gitkeep b/tests/.gitkeep new file mode 100644 index 0000000..e69de29