# 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}}