This project focuses on managing an employee database through a user-friendly interface. It includes functionalities to:
- Display a list of employees.
- Add new employees to the database.
- Update existing employee information.
- Delete employees from the database. 
The project also incorporates cloud deployment using Alibaba Cloud. Infrastructure is provisioned and managed using Terraform, enabling scalable and efficient deployment of the application.
- SpringBoot
- SpringJPA
- Thymeleaf
- MySQL
- Terraform
- Dockerfile
- Docekr Compose
- provider.tf
- vpc.tf
- key.tf
- bastion-sg.t
- bastion.tf
- employee-sg.tf
- employee.tf
- employee.tpl
- mysql-sg.tf
- mysql.tf
- mysql.tpl
- load-balancer.tf
- Controllers folder
- Entities folder
- DAO folder
- Services folder
- employee-form.html
- list-employees.html
 <dependencies>
        <!-- thymeleaf engin for html -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
        <!-- spring mvc includs RES support -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!-- dev tool for reload server automatic when change code -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
        <!-- mysql deriver -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <!-- Hibernate -->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>${hibernate.version}</version>
        </dependency>
</dependencies>
spring.datasource.url=jdbc:mysql://mydb:3306/demo
spring.datasource.username=demouser
spring.datasource.password=demopass
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQLDialect
spring.jpa.hibernate.ddl-auto=update  
FROM  openjdk:17
WORKDIR /
ADD target/spring-boot-thymeleaf-crud-db-project-0.0.1-SNAPSHOT.jar /
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "/spring-boot-thymeleaf-crud-db-project-0.0.1-SNAPSHOT.jar"]
version: "3"
services:
  server:
    container_name: app-container
    image: app-image
    build: .
    restart: always
    ports:
      - 9091:8080
    depends_on: 
      - mydb
  mydb:
    container_name: mydb
    platform: linux/arm64/v8
    image: mysql:latest
    restart: always
    ports:
      - 3313:3306
    environment:
      MYSQL_DATABASE: demo
      MYSQL_USER: demouser
      MYSQL_PASSWORD: demopass
      MYSQL_ROOT_PASSWORD: demopass







