42 lines
1.9 KiB
Markdown
42 lines
1.9 KiB
Markdown
# Workbench Deploy Tool Design
|
|
|
|
## Goal
|
|
|
|
Build a Python desktop tool that helps deploy separated Spring Boot + Vue projects. The user selects one folder, then the tool detects backend, frontend, SQL files, required local environments, configurable deployment settings, and deployment command steps.
|
|
|
|
## Interface
|
|
|
|
Use a workbench layout:
|
|
|
|
- Left navigation for Project, Environment, Database, Deployment, Logs.
|
|
- Top action bar with folder selection, scan, environment check, and deploy actions.
|
|
- Main dashboard cards for backend, frontend, SQL, and environment status.
|
|
- Configuration fields for backend port, frontend build directory, MySQL connection, and deployment output directory.
|
|
- Log panel for command output and status messages.
|
|
|
|
## Architecture
|
|
|
|
Use Python standard library only for the first version. Keep business logic outside the GUI:
|
|
|
|
- `deploy_tool/scanner.py` detects Spring Boot, Vue, and SQL files.
|
|
- `deploy_tool/environment.py` checks commands such as Java, Maven, Gradle, Node, npm, Vue CLI, and MySQL.
|
|
- `deploy_tool/deployer.py` builds deployment steps and can run shell commands with streamed output.
|
|
- `deploy_tool/gui.py` implements the tkinter/ttk workbench.
|
|
- `main.py` starts the application.
|
|
|
|
## Behavior
|
|
|
|
The scanner walks the selected folder and recognizes:
|
|
|
|
- Spring Boot backend by `pom.xml`, `build.gradle`, `src/main/java`, and Spring Boot dependency text.
|
|
- Vue frontend by `package.json` containing Vue dependencies or scripts plus common Vue config files.
|
|
- SQL files by `.sql` extension.
|
|
|
|
Environment checks run non-destructive version commands and report installed/missing states.
|
|
|
|
Deployment starts with a dry, visible command plan. The first version focuses on local build/import/start orchestration and clear logs rather than remote server provisioning.
|
|
|
|
## Testing
|
|
|
|
Use `unittest` from the standard library. Tests cover scanner detection, environment command handling with injected runners, and deployment plan generation.
|