Project Structure
---
title: Overview
---
graph LR
A{share codebase} -->|copy to| B[Program]
A -->|copy to| C[Compute Node]
A -->|copy to| D[Web]
A -->|copy to| E[Electron]
A -->|copy to| F[Express]
B -->|build| G((EXE))
G -.->|needs| C
G -.->|needs| E
G -.->|needs| F
D -->|build| H((HTML))
E -->|build| I((msi, deb Files))
F -->|build| J((NodeJS Files))
style G fill:#f7d899
style H fill:#f7d899
style I fill:#f7d899
style J fill:#f7d899
style A fill:#eccafc
Share
It's a codebase which share in different application
Source code path location
It's locate at src/share
Modify Notice
So if you want to modify the core logic
You should modify the content in the src/share
Example:
If you edit the code in src/main/client/....
After share command, your modify action will be gone
Worker
The executable program which run the task logic on it.
This program is called by runner. In order to implement multithread logic in NodeJS environment
Source code path location
It's locate at src/program The program entry point is src/program/worker.ts
Clean build application warning
If you have multiple executable in the bin folder
And you build the electron application or express application
They will copy the entire bin folder, which means it will copy the unnecessary files to output
Make sure delete bin folder before build any runner application
Runner
Static Web
Simple task management host by browser, which it close when user close browser
It's unreliable you could said, But easy deploy
Notices:
- Backend
- Playground
- Authentication
Source code path location
It's locate at src/renderer
Electron Application
Notices:
- Backend
- Playground
- Authentication
Source code path location
Frontend locate at src/renderer Backend locate at src/main
Express Server
Notices:
- Backend
- Playground
- Authentication
It's nodejs express server which hosting the backend
Source code path location
Frontend locate at src/renderer Backend locate at src/server
Compute Node
It's the client side application, it recevied server signal and do the calculation then return the info etc...
It runs without user interface
Source code path location
It's locate at src/node