diff --git a/docker/db/docker/dynamodb/shared-local-instance.db b/docker/db/docker/dynamodb/shared-local-instance.db
new file mode 100644
index 0000000000000000000000000000000000000000..d26d270ffd2ecfc6d03c96bea43216035c52cac1
Binary files /dev/null and b/docker/db/docker/dynamodb/shared-local-instance.db differ
diff --git a/src/main/kotlin/Application.kt b/src/main/kotlin/Application.kt
index d76ec2a27ec0e54b508840948893cce9c0b60222..c1e330c6feaed0963b7de6ccc22cd5a4adc7b4b0 100644
--- a/src/main/kotlin/Application.kt
+++ b/src/main/kotlin/Application.kt
@@ -8,13 +8,12 @@ fun main(args: Array<String>) {
     io.ktor.server.netty.EngineMain.main(args)
 }
 
-fun Application.configureApplication() {
-    module()
+fun Application.module() {
+    configure()
     initialize()
 }
 
-fun Application.module() {
-    configureHTTP()
+fun Application.configure() {
     configureKoin()
     configureSerialization()
     configureRouting()
diff --git a/src/main/kotlin/configuration/ApiDocumentationConfiguration.kt b/src/main/kotlin/configuration/ApiDocumentationConfiguration.kt
deleted file mode 100644
index ed88a96295cf8183dc966eccda3cbfe17fd74636..0000000000000000000000000000000000000000
--- a/src/main/kotlin/configuration/ApiDocumentationConfiguration.kt
+++ /dev/null
@@ -1,11 +0,0 @@
-package betclic.test.configuration
-
-import io.ktor.server.application.*
-import io.ktor.server.plugins.openapi.*
-import io.ktor.server.routing.*
-
-fun Application.configureHTTP() {
-    routing {
-        openAPI(path = "openapi")
-    }
-}
diff --git a/src/main/kotlin/configuration/DynamoDbConfiguration.kt b/src/main/kotlin/configuration/DynamoDbConfiguration.kt
index 59107e39056b385b36b9d69fd56982b48834e33c..2ebb6fbdda4c98e4aee823d3627e52bc2ac0afd5 100644
--- a/src/main/kotlin/configuration/DynamoDbConfiguration.kt
+++ b/src/main/kotlin/configuration/DynamoDbConfiguration.kt
@@ -4,12 +4,21 @@ import org.slf4j.LoggerFactory
 import software.amazon.awssdk.enhanced.dynamodb.DynamoDbEnhancedAsyncClient
 import software.amazon.awssdk.services.dynamodb.DynamoDbAsyncClient
 import java.net.URI
+import software.amazon.awssdk.regions.Region
+import software.amazon.awssdk.auth.credentials.AwsBasicCredentials
+import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider
 
 class DynamoDbConfiguration {
     private val logger = LoggerFactory.getLogger(DynamoDbConfiguration::class.java)
 
     fun createDynamoDbClient(): DynamoDbAsyncClient {
-        return DynamoDbAsyncClient.builder().endpointOverride(URI("http://localhost:8000")).build()
+        return DynamoDbAsyncClient.builder()
+            .endpointOverride(URI("http://localhost:8000"))
+            .region(Region.US_EAST_1)
+            .credentialsProvider(
+                StaticCredentialsProvider.create(AwsBasicCredentials.create("dummy", "dummy"))
+            )
+            .build()
     }
 
     fun createDataSource(dynamoDbAsyncClient: DynamoDbAsyncClient): DynamoDbEnhancedAsyncClient {
diff --git a/src/main/resources/application.yaml b/src/main/resources/application.yaml
index 90d8e3614bc25df51d35e8de12d8c23e0644a6e5..bd3c34ff7cc46fa7aa2c4666beaf425766210b20 100644
--- a/src/main/resources/application.yaml
+++ b/src/main/resources/application.yaml
@@ -1,7 +1,7 @@
 ktor:
   application:
-    configureApplication:
-      - betclic.test.ApplicationKt.configureApplication
+    modules:
+      - betclic.test.ApplicationKt.module
   deployment:
     port: 8080
   database:
diff --git a/src/main/resources/openapi/documentation.yaml b/src/main/resources/openapi/documentation.yaml
deleted file mode 100644
index 6f48d7b423e6b4e3f5e6075098f1c9280fab739c..0000000000000000000000000000000000000000
--- a/src/main/resources/openapi/documentation.yaml
+++ /dev/null
@@ -1,23 +0,0 @@
-openapi: "3.0.3"
-info:
-  title: "Application API"
-  description: "Application API"
-  version: "1.0.0"
-servers:
-  - url: "http://0.0.0.0:8080"
-paths:
-  /:
-    get:
-      description: "Hello World!"
-      responses:
-        "200":
-          description: "OK"
-          content:
-            text/plain:
-              schema:
-                type: "string"
-              examples:
-                Example#1:
-                  value: "Hello World!"
-components:
-  schemas: { }
\ No newline at end of file
diff --git a/src/test/kotlin/BaseIntegrationTest.kt b/src/test/kotlin/BaseIntegrationTest.kt
index 2f7218d8fda66a31de7fd33ce26c2be677cf804b..da696fa9d29b6ff712bd2414c81f7b967bbfb12c 100644
--- a/src/test/kotlin/BaseIntegrationTest.kt
+++ b/src/test/kotlin/BaseIntegrationTest.kt
@@ -1,28 +1,12 @@
-import betclic.test.configuration.testDatabaseModule
-import betclic.test.initialize
-import betclic.test.module
+import io.ktor.server.config.*
 import io.ktor.server.testing.*
-import org.koin.core.context.loadKoinModules
 import org.koin.test.KoinTest
-import kotlin.test.AfterTest
-import kotlin.test.BeforeTest
 
 abstract class BaseIntegrationTest : KoinTest {
-    protected val testApplication = TestApplication {
-        application {
-            module()
-            // override Database module with testContainers
-            loadKoinModules(testDatabaseModule)
-            initialize()
+    fun iTest(test: suspend ApplicationTestBuilder.() -> Unit) = testApplication {
+        environment {
+            config = ApplicationConfig("application-test.yaml")
         }
+        test()
     }
-
-    @BeforeTest
-    fun setup() {
-    }
-
-    @AfterTest
-    fun tearDown() {
-        TestDynamoDbConfiguration.localStack.stop()
-    }
-}
+}
\ No newline at end of file
diff --git a/src/test/kotlin/TestApplication.kt b/src/test/kotlin/TestApplication.kt
new file mode 100644
index 0000000000000000000000000000000000000000..1c5e8e707a814422a8a3dfbff5bbf0904d908b6d
--- /dev/null
+++ b/src/test/kotlin/TestApplication.kt
@@ -0,0 +1,21 @@
+package betclic.test
+
+import TestDynamoDbConfiguration
+import betclic.test.configuration.DynamoDbMigration
+import io.ktor.server.application.*
+import org.koin.core.context.loadKoinModules
+
+import org.koin.dsl.module
+
+fun Application.module() {
+    configure()
+    // override Database module with testContainers
+    loadKoinModules(testDatabaseModule)
+    initialize()
+}
+
+val testDatabaseModule = module {
+    single { TestDynamoDbConfiguration.createDynamoDbClient() }
+    single { TestDynamoDbConfiguration.createDataSource(get()) }
+    single { DynamoDbMigration() }
+}
\ No newline at end of file
diff --git a/src/test/kotlin/TestInjectionConfiguration.kt b/src/test/kotlin/TestInjectionConfiguration.kt
deleted file mode 100644
index 1cdb89b9a6c3f4ff00e9edb95f87e6e5a58f505c..0000000000000000000000000000000000000000
--- a/src/test/kotlin/TestInjectionConfiguration.kt
+++ /dev/null
@@ -1,10 +0,0 @@
-package betclic.test.configuration
-
-import TestDynamoDbConfiguration
-import org.koin.dsl.module
-
-val testDatabaseModule = module {
-    single { TestDynamoDbConfiguration.createDynamoDbClient() }
-    single { TestDynamoDbConfiguration.createDataSource(get()) }
-    single { DynamoDbMigration() }
-}
\ No newline at end of file
diff --git a/src/test/kotlin/player/PlayerIntegrationTest.kt b/src/test/kotlin/player/PlayerIntegrationTest.kt
index 6c224a0106cad53b3af2b26950f6d836d7eb682d..76f34ec59552a22977799763c66686f8b8e009fa 100644
--- a/src/test/kotlin/player/PlayerIntegrationTest.kt
+++ b/src/test/kotlin/player/PlayerIntegrationTest.kt
@@ -3,7 +3,6 @@ package betclic.test.player
 import BaseIntegrationTest
 import io.ktor.client.request.*
 import io.ktor.http.*
-import io.ktor.server.testing.*
 import org.assertj.core.api.Assertions.assertThat
 import org.junit.Test
 import org.koin.test.inject
@@ -13,16 +12,17 @@ import kotlin.test.assertEquals
 private const val PLAYER_NAME = "Clement"
 
 class PlayerIntegrationTest : BaseIntegrationTest() {
-    private val playerRepository: PlayerRepository by inject()
 
     @Test
-    fun `When calling player creation, a player should be saved in DB`() = testApplication {
-        val response = testApplication.client.post("/players") {
+    fun `When calling player creation, a player should be saved in DB`() = iTest {
+        val response = client.post("/players") {
             header(HttpHeaders.ContentType, ContentType.Text.Plain)
             setBody(PLAYER_NAME)
         }
 
         assertEquals(HttpStatusCode.Created, response.status)
+
+        val playerRepository: PlayerRepository by inject()
         val players = playerRepository.findAll()
         assertThat(players).hasSize(1)
         assertThat(players.first()).extracting("pseudo", "pointsNumber")
diff --git a/src/test/resources/application-test.yaml b/src/test/resources/application-test.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..2e745a4a2053187e0d989767ef16b3b8c977433a
--- /dev/null
+++ b/src/test/resources/application-test.yaml
@@ -0,0 +1,8 @@
+ktor:
+  application:
+    modules:
+      - betclic.test.TestApplicationKt.module
+  deployment:
+    port: 8081
+  database:
+    dynamodbUrl: "dynamic-test-url"
\ No newline at end of file