fullstack-project-creator
by @superchao9
Create standardized Java Spring Boot + Vue3 full-stack project structure
clawhub install fullstack-project-creatorπ About This Skill
name: fullstack-project-creator description: Create standardized Java Spring Boot + Vue3 full-stack project structure homepage: https://github.com/superchao9 metadata: {"clawdbot":{"emoji":"π","requires":{"bins":[]}}}
Fullstack Project Creator
Create standardized Java Spring Boot + Vue3 full-stack project structure for users.
> Author: @superchao9 > Version: 1.0.0 > License: MIT
Use Cases
Use this Skill when users need to create new projects or features, to generate standardized project structure and initial files.
Trigger Keywords (any one will activate)
This Skill activates when user expressions contain the following patterns:
| Pattern | Example | |---------|---------| | Create/New/Generate + Project/System/Feature | "Create a lottery project", "Generate user management system" | | Write/Build/Develop + Project/System/Feature | "Help me write a blog project", "Build an order system" | | Give me/Need + Project/System | "Give me a lottery project", "Need an image management feature" | | XX Project/System/Module | "Lottery project", "User management module" (implies creation intent) | | Simple/Complete + Project | "Simple lottery project", "Complete e-commerce system" |
Non-triggering Cases
Project Creation Process
1. Requirement Communication - Confirm project requirements with user 2. Generate Project Structure - Create standardized directories and files 3. Generate Code - Generate initial code based on requirements
Project Structure Specification
Created projects must follow this structure:
{project-name}/
βββ backend/ # Java Backend
β βββ src/
β β βββ main/
β β β βββ java/
β β β β βββ com/
β β β β βββ example/
β β β β βββ {project-name}/
β β β β βββ controller/ # REST API Controllers
β β β β βββ service/ # Business Logic Layer
β β β β βββ mapper/ # MyBatis Mapper
β β β β βββ entity/ # Entity Classes
β β β β βββ dto/ # Data Transfer Objects
β β β β βββ config/ # Configuration Classes
β β β β βββ util/ # Utility Classes
β β β βββ resources/
β β β βββ application.yml # Main Configuration
β β β βββ application-dev.yml # Dev Environment Config
β β β βββ mapper/ # MyBatis XML
β β βββ test/ # Test Code
β βββ pom.xml # Maven Config
β βββ README.md # Backend Documentation
β
βββ frontend/ # Vue3 Frontend
β βββ src/
β β βββ api/ # API Interfaces
β β βββ assets/ # Static Resources
β β βββ components/ # Common Components
β β βββ views/ # Page Views
β β βββ router/ # Route Config
β β βββ stores/ # Pinia State Management
β β βββ utils/ # Utility Functions
β β βββ App.vue
β β βββ main.js
β βββ public/
β βββ package.json
β βββ vite.config.js
β βββ README.md
β
βββ database/ # Database Scripts
β βββ init.sql # Initialization Script
β βββ migration/ # Migration Scripts
β
βββ docs/ # Project Documentation
β βββ api.md # API Documentation
β βββ design.md # Design Documentation
β
βββ docker/ # Docker Config
β βββ Dockerfile-backend
β βββ Dockerfile-frontend
β βββ docker-compose.yml
β
βββ .gitignore
βββ README.md # Project Overview
βββ PROJECT.md # Project Specification
Tech Stack Specification
Backend (Java)
Frontend (Vue3)
Code Specification
Java Backend
1. Package Name:com.example.{project-name}
2. Class Name: PascalCase
3. Method Name: camelCase
4. Database Fields: snake_case
5. Must Include: Lombok, unified return format, global exception handlingVue3 Frontend
1. Component Name: PascalCase 2. Composition API: Use syntax
3. Styles: Use scoped CSS
4. API Encapsulation: Unified encapsulation in api/ directoryCreation Steps
When recognizing user intent to create a project:
Step 1: Confirm Project Information
lottery)Step 2: Ask for Generation Path
Must ask user: "Where should the project be generated? For example:"d:\AIWorks\fast_java_coding\generated-projects\{project-name}d:\my-projects\{project-name}~/projects/{project-name}Step 3: Handle Permission Issues
When trying to write to user-specified path:If insufficient permissions (cannot write):
β οΈ Cannot write to specified path [path], insufficient permissions.Please choose:
1. [Grant folder permissions] - I will guide you on how to set permissions
2. [Generate in working directory] - Project will be generated in my workspace/generated-projects/ directory
Please enter 1 or 2:
If option 1 (Grant permissions): Provide permission setting guidance for corresponding system (see "Permission Setting Guide" below)
If option 2 (Working directory):
~/.openclaw/workspace/generated-projects/ directory existsStep 4: Generate Project Content
Step 5: Output Project Information
After generation is complete, must output: 1. Project Path: Complete absolute path 2. Project Structure: Directory tree display 3. Startup Steps: How to start the project 4. Main Files Description: Purpose of key filesTrigger Examples
The following user expressions should trigger this Skill:
| User Input | Recognized Project Name | Complexity | |-----------|------------------------|------------| | "Help me create a lottery project" | lottery | Standard | | "Generate a simple image management system" | image-manager | Simple | | "Build a user management project" | user-management | Standard | | "Give me an order system" | order-system | Standard | | "Help me write a blog project" | blog | Standard | | "Need a content publishing feature" | content-publisher | Simple | | "Create a new e-commerce project" | ecommerce | Complete |
Complete Example Dialog
#### Scenario 1: User specifies path (normal case)
User: "Help me create a lottery project"
Assistant: "Okay! I'll help you create a lottery project.
Confirmation:
Where should the project be generated? For example:
d:\my-projects\lotteryd:\workspace\projects\lotteryPlease enter path:"
User: "d:\my-projects\lottery"
Assistant: "β Project generation complete!
π Project Path: d:\my-projects\lottery
π Project Structure:
lottery/
βββ backend/ # Java Spring Boot
βββ frontend/ # Vue3 Frontend
βββ database/ # Database Scripts
βββ README.md # Startup Instructions
π Startup Steps:
1. Import database: mysql -u root -p < database/init.sql
2. Start backend: cd backend && mvn spring-boot:run
3. Open frontend: Browser access frontend/index.html
π Main Files:
backend/pom.xml - Maven Configbackend/src/.../LotteryController.java - Lottery APIfrontend/index.html - Lottery Pagedatabase/init.sql - Database Initialization"#### Scenario 2: Insufficient permissions
User: "d:\projects\lottery"
Assistant: "β οΈ Cannot write to specified path d:\projects\lottery, insufficient permissions.
Please choose: 1. [Grant folder permissions] - I will guide you on how to set permissions 2. [Generate in working directory] - Project will be generated in default working directory
Please enter 1 or 2:"
User: "2"
Assistant: "β Project has been generated in working directory:
π Project Path: C:\Users\liuchao25\.openclaw\workspace\generated-projects\lottery\
[Subsequent output of project structure, startup steps...]"
Path Specification and Permission Handling
Path Inquiry Principle
Never use hardcoded paths. Must ask user for desired generation path before each project creation.Example inquiry:
> Where should the project be generated?
> - Enter absolute path, e.g.: d:\my-projects\lottery
> - Or press Enter for default: ~/.openclaw/workspace/generated-projects/lottery/
Permission Setting Guide
When user chooses "Grant folder permissions", provide the following guidance:
Windows (PowerShell):
# Method 1: Modify folder permissions
icacls "D:\YourFolder" /grant Users:FMethod 2: Run OpenClaw as administrator
Right-click PowerShell β Run as administrator
Windows (GUI): 1. Right-click target folder β Properties 2. Security β Edit 3. Add β Enter your username β Check Names 4. Check "Full control" β OK
macOS/Linux:
# Modify folder permissions
chmod 755 /path/to/folderOr change owner
sudo chown $USER:$USER /path/to/folder
Working Directory Fallback
If user chooses to generate in working directory:
~/.openclaw/workspace/generated-projects/{project-name}/generated-projects directory (if not exists)Path Examples
| User Choice | Generation Path Example |
|-------------|------------------------|
| Custom path | d:\my-projects\lottery\ |
| macOS/Linux | ~/projects/lottery/ or /home/user/projects/lottery/ |
| Default working directory | ~/.openclaw/workspace/generated-projects/lottery/ |
Database Audit Fields Specification
All database tables must include the following audit fields:
| Field Name | Description | Data Type | Nullable | Default | Constraints | |------------|-------------|-----------|----------|---------|-------------| | creator | Creator | varchar(64) | Yes | '' | DEFAULT '' | | create_time | Creation Time | datetime | No | CURRENT_TIMESTAMP | NOT NULL | | updater | Updater | varchar(64) | Yes | '' | DEFAULT '' | | update_time | Update Time | datetime | No | CURRENT_TIMESTAMP | NOT NULL, ON UPDATE CURRENT_TIMESTAMP | | deleted | Deleted Flag | bit | No | b'0' | DEFAULT b'0', NOT NULL | | tenant_id | Tenant ID | bigint | No | 0 | DEFAULT 0, NOT NULL |
SQL Example
CREATE TABLE example_table (
id bigint NOT NULL AUTO_INCREMENT COMMENT 'Primary Key ID',
name varchar(128) NOT NULL COMMENT 'Name',
-- Business fields... -- Audit fields (must include)
creator varchar(64) DEFAULT '' COMMENT 'Creator',
create_time datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'Creation Time',
updater varchar(64) DEFAULT '' COMMENT 'Updater',
update_time datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'Update Time',
deleted bit(1) NOT NULL DEFAULT b'0' COMMENT 'Deleted Flag',
tenant_id bigint NOT NULL DEFAULT '0' COMMENT 'Tenant ID',
PRIMARY KEY (id),
KEY idx_tenant_id (tenant_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='Example Table';
Java Entity Example
@Data
public class ExampleEntity {
private Long id;
private String name;
// Business fields... // Audit fields (must include)
private String creator;
private LocalDateTime createTime;
private String updater;
private LocalDateTime updateTime;
private Boolean deleted;
private Long tenantId;
}
Notes
1. Must ask for path first: Don't assume any fixed path, ask user every time 2. Handle permission issues: When encountering insufficient permissions, provide clear two-option choice 3. All generated code must include English comments 4. Must include basic CRUD examples 5. Code style should be unified and standardized 6. Provide clear README instructions 7. All tables must include creator, create_time, updater, update_time, deleted, tenant_id six audit fields 8. On completion output: Project path, structure tree, startup steps, main files description
β‘ When to Use
π Tips & Best Practices
1. Must ask for path first: Don't assume any fixed path, ask user every time 2. Handle permission issues: When encountering insufficient permissions, provide clear two-option choice 3. All generated code must include English comments 4. Must include basic CRUD examples 5. Code style should be unified and standardized 6. Provide clear README instructions 7. All tables must include creator, create_time, updater, update_time, deleted, tenant_id six audit fields 8. On completion output: Project path, structure tree, startup steps, main files description