diff --git a/Backend.Tests/Backend.Tests.csproj b/Backend.Tests/Backend.Tests.csproj
new file mode 100644
index 0000000..4a1d69a
--- /dev/null
+++ b/Backend.Tests/Backend.Tests.csproj
@@ -0,0 +1,28 @@
+
+
+
+ net8.0
+ enable
+ enable
+
+ false
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Backend/Backend.csproj b/Backend/Backend.csproj
new file mode 100644
index 0000000..7b58c45
--- /dev/null
+++ b/Backend/Backend.csproj
@@ -0,0 +1,15 @@
+
+
+
+ net8.0
+ enable
+ enable
+
+
+
+
+
+
+
+
+
diff --git a/Backend/Backend.http b/Backend/Backend.http
new file mode 100644
index 0000000..95be889
--- /dev/null
+++ b/Backend/Backend.http
@@ -0,0 +1,6 @@
+@Backend_HostAddress = http://localhost:5281
+
+GET {{Backend_HostAddress}}/weatherforecast/
+Accept: application/json
+
+###
diff --git a/Backend/Program.cs b/Backend/Program.cs
new file mode 100644
index 0000000..f0282f0
--- /dev/null
+++ b/Backend/Program.cs
@@ -0,0 +1,5 @@
+// Placeholder. Rewritten in Task 6.
+var builder = WebApplication.CreateBuilder(args);
+var app = builder.Build();
+app.MapGet("/", () => "GameCli Backend placeholder");
+app.Run();
diff --git a/Backend/Properties/launchSettings.json b/Backend/Properties/launchSettings.json
new file mode 100644
index 0000000..61f1f13
--- /dev/null
+++ b/Backend/Properties/launchSettings.json
@@ -0,0 +1,31 @@
+{
+ "$schema": "http://json.schemastore.org/launchsettings.json",
+ "iisSettings": {
+ "windowsAuthentication": false,
+ "anonymousAuthentication": true,
+ "iisExpress": {
+ "applicationUrl": "http://localhost:7830",
+ "sslPort": 0
+ }
+ },
+ "profiles": {
+ "http": {
+ "commandName": "Project",
+ "dotnetRunMessages": true,
+ "launchBrowser": true,
+ "launchUrl": "swagger",
+ "applicationUrl": "http://localhost:5281",
+ "environmentVariables": {
+ "ASPNETCORE_ENVIRONMENT": "Development"
+ }
+ },
+ "IIS Express": {
+ "commandName": "IISExpress",
+ "launchBrowser": true,
+ "launchUrl": "swagger",
+ "environmentVariables": {
+ "ASPNETCORE_ENVIRONMENT": "Development"
+ }
+ }
+ }
+}
diff --git a/Backend/appsettings.json b/Backend/appsettings.json
new file mode 100644
index 0000000..8522165
--- /dev/null
+++ b/Backend/appsettings.json
@@ -0,0 +1,13 @@
+{
+ "Logging": {
+ "LogLevel": {
+ "Default": "Information",
+ "Microsoft.AspNetCore": "Warning"
+ }
+ },
+ "AllowedHosts": "*",
+ "Lander": {
+ "CliPath": "publish/GameCli/GameCli",
+ "ModelPath": "models/ppo_lander.onnx"
+ }
+}
diff --git a/GameCli.sln b/GameCli.sln
index e08854a..bace6b6 100644
--- a/GameCli.sln
+++ b/GameCli.sln
@@ -7,6 +7,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GameCli", "GameCli\GameCli.
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GameCli.Tests", "GameCli.Tests\GameCli.Tests.csproj", "{C0C7008D-E7BE-47E2-8CBB-2630AF817CC7}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Backend", "Backend\Backend.csproj", "{69BB68BF-2864-497E-993C-CB9D67A21041}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Backend.Tests", "Backend.Tests\Backend.Tests.csproj", "{BA5C4CD7-66EC-4512-8155-D81E48A6A568}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -41,6 +45,30 @@ Global
{C0C7008D-E7BE-47E2-8CBB-2630AF817CC7}.Release|x64.Build.0 = Release|Any CPU
{C0C7008D-E7BE-47E2-8CBB-2630AF817CC7}.Release|x86.ActiveCfg = Release|Any CPU
{C0C7008D-E7BE-47E2-8CBB-2630AF817CC7}.Release|x86.Build.0 = Release|Any CPU
+ {69BB68BF-2864-497E-993C-CB9D67A21041}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {69BB68BF-2864-497E-993C-CB9D67A21041}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {69BB68BF-2864-497E-993C-CB9D67A21041}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {69BB68BF-2864-497E-993C-CB9D67A21041}.Debug|x64.Build.0 = Debug|Any CPU
+ {69BB68BF-2864-497E-993C-CB9D67A21041}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {69BB68BF-2864-497E-993C-CB9D67A21041}.Debug|x86.Build.0 = Debug|Any CPU
+ {69BB68BF-2864-497E-993C-CB9D67A21041}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {69BB68BF-2864-497E-993C-CB9D67A21041}.Release|Any CPU.Build.0 = Release|Any CPU
+ {69BB68BF-2864-497E-993C-CB9D67A21041}.Release|x64.ActiveCfg = Release|Any CPU
+ {69BB68BF-2864-497E-993C-CB9D67A21041}.Release|x64.Build.0 = Release|Any CPU
+ {69BB68BF-2864-497E-993C-CB9D67A21041}.Release|x86.ActiveCfg = Release|Any CPU
+ {69BB68BF-2864-497E-993C-CB9D67A21041}.Release|x86.Build.0 = Release|Any CPU
+ {BA5C4CD7-66EC-4512-8155-D81E48A6A568}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {BA5C4CD7-66EC-4512-8155-D81E48A6A568}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {BA5C4CD7-66EC-4512-8155-D81E48A6A568}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {BA5C4CD7-66EC-4512-8155-D81E48A6A568}.Debug|x64.Build.0 = Debug|Any CPU
+ {BA5C4CD7-66EC-4512-8155-D81E48A6A568}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {BA5C4CD7-66EC-4512-8155-D81E48A6A568}.Debug|x86.Build.0 = Debug|Any CPU
+ {BA5C4CD7-66EC-4512-8155-D81E48A6A568}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {BA5C4CD7-66EC-4512-8155-D81E48A6A568}.Release|Any CPU.Build.0 = Release|Any CPU
+ {BA5C4CD7-66EC-4512-8155-D81E48A6A568}.Release|x64.ActiveCfg = Release|Any CPU
+ {BA5C4CD7-66EC-4512-8155-D81E48A6A568}.Release|x64.Build.0 = Release|Any CPU
+ {BA5C4CD7-66EC-4512-8155-D81E48A6A568}.Release|x86.ActiveCfg = Release|Any CPU
+ {BA5C4CD7-66EC-4512-8155-D81E48A6A568}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE