BMAD-METHOD/expansion-packs/bmad-java/templates/java-web-project-tmpl.yaml

160 lines
5.8 KiB
YAML

# <!-- Powered by BMAD™ Core -->
name: java-web-project-tmpl
version: 1.0.0
title: Java Web Project Template
description: >-
Comprehensive template for Java web application projects using Java 21,
Spring Boot MVC, Maven, and AWS cloud platform. Includes project structure,
configuration, and deployment templates.
sections:
- name: Project Overview
description: Basic project information and configuration
fields:
- project-name: "Java Web Application"
- project-description: "Modern Java web application with Spring Boot MVC"
- java-version: "21"
- spring-boot-version: "3.2.x"
- maven-version: "3.9.x"
- aws-region: "us-east-1"
- aws-environment: "dev"
- name: Project Structure
description: Maven project structure and organization
fields:
- group-id: "com.company.project"
- artifact-id: "java-web-app"
- version: "1.0.0"
- packaging: "jar"
- source-directory: "src/main/java"
- resources-directory: "src/main/resources"
- test-directory: "src/test/java"
- test-resources-directory: "src/test/resources"
- name: Dependencies
description: Maven dependencies and Spring Boot starters
fields:
- spring-boot-starter-web: "Spring Boot Web Starter"
- spring-boot-starter-data-jpa: "Spring Boot Data JPA Starter"
- spring-boot-starter-security: "Spring Boot Security Starter"
- spring-boot-starter-thymeleaf: "Spring Boot Thymeleaf Starter"
- spring-boot-starter-test: "Spring Boot Test Starter"
- spring-boot-starter-actuator: "Spring Boot Actuator Starter"
- mysql-connector-java: "MySQL Connector"
- h2-database: "H2 Database (for testing)"
- name: Database Configuration
description: Database setup and configuration
fields:
- database-type: "MySQL"
- database-host: "localhost"
- database-port: "3306"
- database-name: "java_web_app"
- database-username: "app_user"
- database-password: "app_password"
- jpa-hibernate-ddl-auto: "update"
- jpa-show-sql: "true"
- name: Security Configuration
description: Spring Security setup and configuration
fields:
- security-strategy: "Form-based authentication"
- password-encoding: "BCrypt"
- session-management: "Stateless"
- csrf-protection: "Enabled"
- cors-configuration: "Configured"
- security-headers: "Configured"
- name: AWS Configuration
description: AWS cloud platform configuration
fields:
- aws-region: "us-east-1"
- aws-vpc-id: "vpc-xxxxxxxxx"
- aws-subnet-ids: "subnet-xxxxxxxxx,subnet-yyyyyyyyy"
- aws-security-group: "sg-xxxxxxxxx"
- aws-rds-instance: "java-web-app-db"
- aws-s3-bucket: "java-web-app-assets"
- aws-cloudwatch-log-group: "java-web-app-logs"
output-format: markdown
template-structure: |
# Java Web Project: {{project-name}}
## Project Overview
- **Project Name**: {{project-name}}
- **Description**: {{project-description}}
- **Java Version**: {{java-version}}
- **Spring Boot Version**: {{spring-boot-version}}
- **Maven Version**: {{maven-version}}
- **AWS Region**: {{aws-region}}
- **AWS Environment**: {{aws-environment}}
## Project Structure
```
{{artifact-id}}/
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── {{group-id}}/
│ │ │ ├── {{artifact-id}}/
│ │ │ │ ├── Application.java
│ │ │ │ ├── config/
│ │ │ │ ├── controller/
│ │ │ │ ├── service/
│ │ │ │ ├── repository/
│ │ │ │ ├── entity/
│ │ │ │ └── security/
│ │ │ └── resources/
│ │ │ ├── application.yml
│ │ │ ├── application-dev.yml
│ │ │ ├── application-prod.yml
│ │ │ └── static/
│ │ └── resources/
│ │ ├── templates/
│ │ ├── static/
│ │ └── application.yml
│ └── test/
│ ├── java/
│ └── resources/
├── pom.xml
├── Dockerfile
├── docker-compose.yml
└── README.md
```
## Dependencies
- **Spring Boot Web Starter**: {{spring-boot-starter-web}}
- **Spring Boot Data JPA Starter**: {{spring-boot-starter-data-jpa}}
- **Spring Boot Security Starter**: {{spring-boot-starter-security}}
- **Spring Boot Thymeleaf Starter**: {{spring-boot-starter-thymeleaf}}
- **Spring Boot Test Starter**: {{spring-boot-starter-test}}
- **Spring Boot Actuator Starter**: {{spring-boot-starter-actuator}}
- **MySQL Connector**: {{mysql-connector-java}}
- **H2 Database**: {{h2-database}}
## Database Configuration
- **Database Type**: {{database-type}}
- **Host**: {{database-host}}
- **Port**: {{database-port}}
- **Database Name**: {{database-name}}
- **Username**: {{database-username}}
- **Password**: {{database-password}}
- **JPA Hibernate DDL Auto**: {{jpa-hibernate-ddl-auto}}
- **JPA Show SQL**: {{jpa-show-sql}}
## Security Configuration
- **Security Strategy**: {{security-strategy}}
- **Password Encoding**: {{password-encoding}}
- **Session Management**: {{session-management}}
- **CSRF Protection**: {{csrf-protection}}
- **CORS Configuration**: {{cors-configuration}}
- **Security Headers**: {{security-headers}}
## AWS Configuration
- **AWS Region**: {{aws-region}}
- **VPC ID**: {{aws-vpc-id}}
- **Subnet IDs**: {{aws-subnet-ids}}
- **Security Group**: {{aws-security-group}}
- **RDS Instance**: {{aws-rds-instance}}
- **S3 Bucket**: {{aws-s3-bucket}}
- **CloudWatch Log Group**: {{aws-cloudwatch-log-group}}