diff --git a/data/db/install.sql b/data/db/install.sql
index 9f8bb23..e65981e 100644
--- a/data/db/install.sql
+++ b/data/db/install.sql
@@ -198,7 +198,7 @@ ENGINE=InnoDB
 ;
 
 CREATE TABLE `exercise_tree` (
-	`item_id` INT(11) NOT NULL AUTO_INCREMENT,
+	`tree_id` INT(11) NOT NULL AUTO_INCREMENT,
 	`parent_id` INT(11) NOT NULL DEFAULT '0',
 	`name` CHAR(50) NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
 	`image_url` CHAR(200) NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
diff --git a/data/db/update_1_0_5.sql b/data/db/update_1_0_5.sql
index 442bb85..c3cf434 100644
--- a/data/db/update_1_0_5.sql
+++ b/data/db/update_1_0_5.sql
@@ -1,5 +1,6 @@
 ALTER TABLE `exercise_type`
 	ADD COLUMN `tree_id` INT(12) DEFAULT 0 AFTER `exercise_type_id`;
+ALTER TABLE `exercise_type`
 	ADD COLUMN `active` TINYINT(1) NULL DEFAULT NULL AFTER `unit_quantity_unit`;
 ALTER TABLE `exercise_type`
 	DROP COLUMN `video`;
diff --git a/src/main/kotlin/com/aitrainer/api/controller/ExerciseTreeController.kt b/src/main/kotlin/com/aitrainer/api/controller/ExerciseTreeController.kt
new file mode 100644
index 0000000..3dc4d79
--- /dev/null
+++ b/src/main/kotlin/com/aitrainer/api/controller/ExerciseTreeController.kt
@@ -0,0 +1,21 @@
+package com.aitrainer.api.controller
+
+import com.aitrainer.api.model.ExerciseTree
+import com.aitrainer.api.repository.ExerciseTreeRepository
+import org.slf4j.LoggerFactory
+import org.springframework.web.bind.annotation.GetMapping
+import org.springframework.web.bind.annotation.RequestMapping
+import org.springframework.web.bind.annotation.RestController
+
+@RestController
+@RequestMapping("/api")
+class ExerciseTreeController (private val exerciseTreeRepository: ExerciseTreeRepository) {
+    private val logger = LoggerFactory.getLogger(javaClass)
+
+    @GetMapping("/exercise_tree")
+    fun getAllActiveMenu(): List<ExerciseTree> {
+        val list: List<ExerciseTree> = exerciseTreeRepository.getActiveMenu()
+        logger.info(" -- Get All active Exercise Tree menu.. $list")
+        return list
+    }
+}
\ No newline at end of file
diff --git a/src/main/kotlin/com/aitrainer/api/controller/ExerciseTreeControllerAspect.kt b/src/main/kotlin/com/aitrainer/api/controller/ExerciseTreeControllerAspect.kt
new file mode 100644
index 0000000..fa2ee4d
--- /dev/null
+++ b/src/main/kotlin/com/aitrainer/api/controller/ExerciseTreeControllerAspect.kt
@@ -0,0 +1,33 @@
+package com.aitrainer.api.controller
+
+import com.aitrainer.api.ApiApplication
+import com.aitrainer.api.repository.ConfigurationRepository
+import org.aspectj.lang.annotation.Aspect
+import org.aspectj.lang.annotation.Before
+import org.aspectj.lang.annotation.Pointcut
+import org.slf4j.LoggerFactory
+import org.springframework.beans.factory.annotation.Autowired
+import org.springframework.stereotype.Component
+
+@Suppress("unused")
+@Aspect
+@Component
+class ExerciseTreeControllerAspect {
+    private val logger = LoggerFactory.getLogger(ApiApplication::class.simpleName)
+
+    @Autowired
+    private lateinit var configurationRepository: ConfigurationRepository
+    @Autowired
+    private lateinit var properties: ApplicationProperties
+
+    @Suppress("unused")
+    @Pointcut("execution(* com.aitrainer.api.controller.ExerciseTreeController.*())")
+    fun exerciseTreeControllerAspect() {
+    }
+
+    @Before("exerciseTreeControllerAspect()")
+    fun loggingAop() {
+        Singleton.checkDBUpdate(configurationRepository, properties)
+    }
+
+}
\ No newline at end of file
diff --git a/src/main/kotlin/com/aitrainer/api/model/ExerciseTree.kt b/src/main/kotlin/com/aitrainer/api/model/ExerciseTree.kt
new file mode 100644
index 0000000..d9fc3b5
--- /dev/null
+++ b/src/main/kotlin/com/aitrainer/api/model/ExerciseTree.kt
@@ -0,0 +1,23 @@
+package com.aitrainer.api.model
+
+import org.hibernate.annotations.Fetch
+import org.hibernate.annotations.FetchMode
+import org.springframework.lang.NonNull
+import javax.persistence.*
+import javax.validation.constraints.NotBlank
+
+@Entity
+data class ExerciseTree (
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    val treeId: Long = 0,
+
+    @get: NonNull  var parentId: Int,
+    @get: NotBlank var name: String = "",
+    @get: NotBlank var imageUrl: String = "",
+    @get: NonNull  var active: Boolean?,
+
+    @OneToMany(cascade = [(CascadeType.ALL)], fetch = FetchType.EAGER, mappedBy = "exerciseTree")
+    @Fetch(value = FetchMode.SUBSELECT)
+    val translations: List<ExerciseTreeTranslation> = mutableListOf<ExerciseTreeTranslation>().toList()
+)
\ No newline at end of file
diff --git a/src/main/kotlin/com/aitrainer/api/model/ExerciseTreeTranslation.kt b/src/main/kotlin/com/aitrainer/api/model/ExerciseTreeTranslation.kt
new file mode 100644
index 0000000..2a9c613
--- /dev/null
+++ b/src/main/kotlin/com/aitrainer/api/model/ExerciseTreeTranslation.kt
@@ -0,0 +1,21 @@
+package com.aitrainer.api.model
+
+import javax.persistence.*
+import javax.validation.constraints.NotBlank
+
+@Entity
+data class ExerciseTreeTranslation (
+        @Id
+        @GeneratedValue(strategy = GenerationType.IDENTITY)
+        val translationId: Long = 0,
+
+        @get: NotBlank var languageCode: String?,
+        @get: NotBlank var name: String = ""
+
+
+) {
+        @ManyToOne(fetch = FetchType.EAGER, optional = false)
+        @JoinColumn(name = "treeId", nullable = false)
+        val exerciseTree: ExerciseTree? = null
+
+}
diff --git a/src/main/kotlin/com/aitrainer/api/repository/ExerciseTreeRepository.kt b/src/main/kotlin/com/aitrainer/api/repository/ExerciseTreeRepository.kt
new file mode 100644
index 0000000..a4d2b9b
--- /dev/null
+++ b/src/main/kotlin/com/aitrainer/api/repository/ExerciseTreeRepository.kt
@@ -0,0 +1,16 @@
+package com.aitrainer.api.repository
+
+import com.aitrainer.api.model.ExerciseTree
+import org.springframework.data.jpa.repository.JpaRepository
+import org.springframework.data.jpa.repository.Query
+import org.springframework.stereotype.Repository
+
+@Repository
+interface ExerciseTreeRepository : JpaRepository<ExerciseTree, Long> {
+
+    @Query("FROM ExerciseTree as e "  +
+            "LEFT JOIN ExerciseTreeTranslation as t ON e.treeId = t.exerciseTree AND t.languageCode = 'hu' " +
+            "WHERE e.active = 1 " +
+            "ORDER BY e.treeId ")
+    fun getActiveMenu(): List<ExerciseTree>
+}
\ No newline at end of file
diff --git a/src/main/resources/application-prod.properties b/src/main/resources/application-prod.properties
index a52ad08..c328b10 100644
--- a/src/main/resources/application-prod.properties
+++ b/src/main/resources/application-prod.properties
@@ -1,6 +1,6 @@
 spring.profiles.active=prod
 ## Spring DATASOURCE (DataSourceAutoConfiguration & DataSourceProperties)
-spring.datasource.url = jdbc:mysql://localhost:3306/aitrainer2?serverTimezone=CET&useSSL=false&characterEncoding=UTF-8&allowPublicKeyRetrieval=true&allowMultiQueries=true
+spring.datasource.url = jdbc:mysql://localhost:3306/aitrainer?serverTimezone=CET&useSSL=false&characterEncoding=UTF-8&allowPublicKeyRetrieval=true&allowMultiQueries=true
 spring.datasource.username = aitrainer
 spring.datasource.password = andio2009
 
@@ -9,4 +9,13 @@ spring.datasource.password = andio2009
 
 
 # The SQL dialect makes Hibernate generate better SQL for the chosen database
-spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5InnoDBDialect
\ No newline at end of file
+spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5InnoDBDialect
+
+
+logging.config=classpath:logback-spring.xml
+logging.file=logs
+
+# if the database structure has been changed, increment this version number
+application.version=1.0.5
+
+jwt.secret=aitrainer
\ No newline at end of file
diff --git a/src/test/kotlin/com/aitrainer/api/test/ExerciseTreeTest.kt b/src/test/kotlin/com/aitrainer/api/test/ExerciseTreeTest.kt
new file mode 100644
index 0000000..7d34baf
--- /dev/null
+++ b/src/test/kotlin/com/aitrainer/api/test/ExerciseTreeTest.kt
@@ -0,0 +1,30 @@
+package com.aitrainer.api.test
+
+
+import com.aitrainer.api.controller.ExerciseTreeController
+import com.aitrainer.api.repository.ExerciseTreeRepository
+import org.junit.jupiter.api.Test
+import org.slf4j.LoggerFactory
+import org.springframework.beans.factory.annotation.Autowired
+import org.springframework.boot.test.context.SpringBootTest
+import kotlin.test.assertEquals
+
+@SpringBootTest
+class ExerciseTreeTest {
+    private val logger = LoggerFactory.getLogger(javaClass)
+
+    @Autowired
+    private lateinit var exerciseTreeRepository: ExerciseTreeRepository
+
+    @Test
+    fun testActiveExercises() {
+        val exerciseTreeController = ExerciseTreeController(exerciseTreeRepository)
+        val exerciseTree = exerciseTreeController.getAllActiveMenu()
+        logger.info("Tree $exerciseTree")
+
+        val exerciseTreeItem = exerciseTree[0]
+        assertEquals(exerciseTreeItem.name, "Cardio")
+        assertEquals(exerciseTree[1].translations[0].name, "Erő")
+
+    }
+}
\ No newline at end of file