diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index f6e519b..dd0566f 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -21,8 +21,8 @@ jobs:
with:
dotnet-version: 8.0.x
- name: Restore dependencies
- run: dotnet restore dfe.data.SearchPrototype.web/DfE.Data.SearchPrototype.web.sln
+ run: dotnet restore
- name: Build
- run: dotnet build dfe.data.SearchPrototype.web/DfE.Data.SearchPrototype.web.sln --no-restore
+ run: dotnet --no-restore
- name: Test
- run: dotnet test dfe.data.SearchPrototype.web/DfE.Data.SearchPrototype.web.sln --no-build --verbosity normal
+ run: dotnet --no-build --verbosity normal
\ No newline at end of file
diff --git a/DfE.Data.SearchPrototype.Test/DfE.Data.SearchPrototype.Test.csproj b/DfE.Data.SearchPrototype.Test/DfE.Data.SearchPrototype.Test.csproj
deleted file mode 100644
index 3bad411..0000000
--- a/DfE.Data.SearchPrototype.Test/DfE.Data.SearchPrototype.Test.csproj
+++ /dev/null
@@ -1,36 +0,0 @@
-
-
-
- net8.0
- enable
- enable
- false
- true
- true
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Always
-
-
-
-
diff --git a/Dfe.Data.SearchPrototype.sln b/Dfe.Data.SearchPrototype.sln
new file mode 100644
index 0000000..e447fcd
--- /dev/null
+++ b/Dfe.Data.SearchPrototype.sln
@@ -0,0 +1,43 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.10.35004.147
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Dfe.Data.SearchPrototype", "Dfe.Data.SearchPrototype\Dfe.Data.SearchPrototype.csproj", "{18B64406-F4DC-4A8D-9934-6A09F9151A18}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Dfe.Data.SearchPrototype.Web", "Dfe.Data.SearchPrototype\Web\Dfe.Data.SearchPrototype.Web.csproj", "{DCFCFF67-DB1A-44C0-8174-799EB05194BD}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Dfe.Data.SearchPrototype.Tests", "Dfe.Data.SearchPrototype\Tests\Dfe.Data.SearchPrototype.Tests.csproj", "{011C329A-A195-439A-ACED-F20AFF560FE7}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Dfe.Data.SearchPrototype.Web.Tests", "Dfe.Data.SearchPrototype\Web\Tests\Dfe.Data.SearchPrototype.Web.Tests.csproj", "{650783D2-FCBB-473B-BCBE-5B3E007540FE}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {18B64406-F4DC-4A8D-9934-6A09F9151A18}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {18B64406-F4DC-4A8D-9934-6A09F9151A18}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {18B64406-F4DC-4A8D-9934-6A09F9151A18}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {18B64406-F4DC-4A8D-9934-6A09F9151A18}.Release|Any CPU.Build.0 = Release|Any CPU
+ {DCFCFF67-DB1A-44C0-8174-799EB05194BD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {DCFCFF67-DB1A-44C0-8174-799EB05194BD}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {DCFCFF67-DB1A-44C0-8174-799EB05194BD}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {DCFCFF67-DB1A-44C0-8174-799EB05194BD}.Release|Any CPU.Build.0 = Release|Any CPU
+ {011C329A-A195-439A-ACED-F20AFF560FE7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {011C329A-A195-439A-ACED-F20AFF560FE7}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {011C329A-A195-439A-ACED-F20AFF560FE7}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {011C329A-A195-439A-ACED-F20AFF560FE7}.Release|Any CPU.Build.0 = Release|Any CPU
+ {650783D2-FCBB-473B-BCBE-5B3E007540FE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {650783D2-FCBB-473B-BCBE-5B3E007540FE}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {650783D2-FCBB-473B-BCBE-5B3E007540FE}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {650783D2-FCBB-473B-BCBE-5B3E007540FE}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {9A4942D1-651F-41CB-8813-7201597A71C6}
+ EndGlobalSection
+EndGlobal
diff --git a/Dfe.Data.SearchPrototype/Dfe.Data.SearchPrototype.csproj b/Dfe.Data.SearchPrototype/Dfe.Data.SearchPrototype.csproj
new file mode 100644
index 0000000..9cd8e31
--- /dev/null
+++ b/Dfe.Data.SearchPrototype/Dfe.Data.SearchPrototype.csproj
@@ -0,0 +1,29 @@
+
+
+
+ net8.0
+ enable
+ enable
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Dfe.Data.SearchPrototype/Search/Application/Services/ISearchService.cs b/Dfe.Data.SearchPrototype/Search/Application/Services/ISearchService.cs
new file mode 100644
index 0000000..7bb8929
--- /dev/null
+++ b/Dfe.Data.SearchPrototype/Search/Application/Services/ISearchService.cs
@@ -0,0 +1,9 @@
+using Dfe.Data.SearchPrototype.Search.Domain;
+
+namespace Dfe.Data.SearchPrototype.Search.Application.Services
+{
+ public interface ISearchService
+ {
+ Task SearchByKeyword(string keyword);
+ }
+}
\ No newline at end of file
diff --git a/Dfe.Data.SearchPrototype/Search/Application/UseCases/SearchByKeyword/SearchByKeywordRequest.cs b/Dfe.Data.SearchPrototype/Search/Application/UseCases/SearchByKeyword/SearchByKeywordRequest.cs
new file mode 100644
index 0000000..fd1fcdf
--- /dev/null
+++ b/Dfe.Data.SearchPrototype/Search/Application/UseCases/SearchByKeyword/SearchByKeywordRequest.cs
@@ -0,0 +1,6 @@
+namespace Dfe.Data.SearchPrototype.Search.Application.UseCases.SearchByKeyword
+{
+ public sealed class SearchByKeywordRequest
+ {
+ }
+}
diff --git a/Dfe.Data.SearchPrototype/Search/Application/UseCases/SearchByKeyword/SearchByKeywordResponse.cs b/Dfe.Data.SearchPrototype/Search/Application/UseCases/SearchByKeyword/SearchByKeywordResponse.cs
new file mode 100644
index 0000000..5a9e709
--- /dev/null
+++ b/Dfe.Data.SearchPrototype/Search/Application/UseCases/SearchByKeyword/SearchByKeywordResponse.cs
@@ -0,0 +1,6 @@
+namespace Dfe.Data.SearchPrototype.Search.Application.UseCases.SearchByKeyword
+{
+ public class SearchByKeywordResponse
+ {
+ }
+}
diff --git a/Dfe.Data.SearchPrototype/Search/Application/UseCases/SearchByKeyword/SearchByKeywordUseCase.cs b/Dfe.Data.SearchPrototype/Search/Application/UseCases/SearchByKeyword/SearchByKeywordUseCase.cs
new file mode 100644
index 0000000..233c590
--- /dev/null
+++ b/Dfe.Data.SearchPrototype/Search/Application/UseCases/SearchByKeyword/SearchByKeywordUseCase.cs
@@ -0,0 +1,20 @@
+using Dfe.Data.SearchPrototype.Search.Application.Services;
+using DfE.Data.ComponentLibrary.CleanArchitecture.CleanArchitecture.Application.UseCase;
+
+namespace Dfe.Data.SearchPrototype.Search.Application.UseCases.SearchByKeyword
+{
+ public sealed class SearchByKeywordUseCase : IUseCase
+ {
+ private readonly ISearchService _searchService;
+
+ public SearchByKeywordUseCase(ISearchService searchService)
+ {
+ _searchService = searchService;
+ }
+
+ public Task HandleRequest(SearchByKeywordRequest request)
+ {
+ throw new NotImplementedException();
+ }
+ }
+}
diff --git a/Dfe.Data.SearchPrototype/Search/Domain/SearchResults.cs b/Dfe.Data.SearchPrototype/Search/Domain/SearchResults.cs
new file mode 100644
index 0000000..432a4ce
--- /dev/null
+++ b/Dfe.Data.SearchPrototype/Search/Domain/SearchResults.cs
@@ -0,0 +1,6 @@
+namespace Dfe.Data.SearchPrototype.Search.Domain
+{
+ public sealed class SearchResults // aggregate root??
+ {
+ }
+}
diff --git a/Dfe.Data.SearchPrototype/Tests/Dfe.Data.SearchPrototype.Tests.csproj b/Dfe.Data.SearchPrototype/Tests/Dfe.Data.SearchPrototype.Tests.csproj
new file mode 100644
index 0000000..1e8680a
--- /dev/null
+++ b/Dfe.Data.SearchPrototype/Tests/Dfe.Data.SearchPrototype.Tests.csproj
@@ -0,0 +1,35 @@
+
+
+
+ net8.0
+ enable
+ enable
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+ all
+
+
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+ all
+
+
+
+
diff --git a/Dfe.Data.SearchPrototype/Tests/Search/Application/UseCases/SearchByKeyword/SearchByKeywordUseCaseTests.cs b/Dfe.Data.SearchPrototype/Tests/Search/Application/UseCases/SearchByKeyword/SearchByKeywordUseCaseTests.cs
new file mode 100644
index 0000000..f00a1bc
--- /dev/null
+++ b/Dfe.Data.SearchPrototype/Tests/Search/Application/UseCases/SearchByKeyword/SearchByKeywordUseCaseTests.cs
@@ -0,0 +1,6 @@
+namespace Dfe.Data.SearchPrototype.Tests.Search.Application.UseCases.SearchByKeyword
+{
+ public sealed class SearchByKeywordUseCaseTests
+ {
+ }
+}
diff --git a/Dfe.Data.SearchPrototype/Tests/Search/Domain/SearchResultsTests.cs b/Dfe.Data.SearchPrototype/Tests/Search/Domain/SearchResultsTests.cs
new file mode 100644
index 0000000..e3df4f1
--- /dev/null
+++ b/Dfe.Data.SearchPrototype/Tests/Search/Domain/SearchResultsTests.cs
@@ -0,0 +1,6 @@
+namespace Dfe.Data.SearchPrototype.Tests.Search.Domain
+{
+ public sealed class SearchResultsTests
+ {
+ }
+}
diff --git a/dfe.data.SearchPrototype.web/Controllers/HomeController.cs b/Dfe.Data.SearchPrototype/Web/Controllers/HomeController.cs
similarity index 100%
rename from dfe.data.SearchPrototype.web/Controllers/HomeController.cs
rename to Dfe.Data.SearchPrototype/Web/Controllers/HomeController.cs
diff --git a/dfe.data.SearchPrototype.web/DfE.Data.SearchPrototype.Web.csproj b/Dfe.Data.SearchPrototype/Web/Dfe.Data.SearchPrototype.Web.csproj
similarity index 57%
rename from dfe.data.SearchPrototype.web/DfE.Data.SearchPrototype.Web.csproj
rename to Dfe.Data.SearchPrototype/Web/Dfe.Data.SearchPrototype.Web.csproj
index 92026f3..7de7a8e 100644
--- a/dfe.data.SearchPrototype.web/DfE.Data.SearchPrototype.Web.csproj
+++ b/Dfe.Data.SearchPrototype/Web/Dfe.Data.SearchPrototype.Web.csproj
@@ -4,9 +4,16 @@
net8.0
enable
enable
- data.search_prototype.web
+ Dfe.Data.SearchPrototype.Web
+
+
+
+
+
+
+
diff --git a/dfe.data.SearchPrototype.web/Models/ErrorViewModel.cs b/Dfe.Data.SearchPrototype/Web/Models/ErrorViewModel.cs
similarity index 99%
rename from dfe.data.SearchPrototype.web/Models/ErrorViewModel.cs
rename to Dfe.Data.SearchPrototype/Web/Models/ErrorViewModel.cs
index fd5add6..0ae47d3 100644
--- a/dfe.data.SearchPrototype.web/Models/ErrorViewModel.cs
+++ b/Dfe.Data.SearchPrototype/Web/Models/ErrorViewModel.cs
@@ -6,4 +6,4 @@ public class ErrorViewModel
public bool ShowRequestId => !string.IsNullOrEmpty(RequestId);
}
-}
+}
\ No newline at end of file
diff --git a/dfe.data.SearchPrototype.web/Program.cs b/Dfe.Data.SearchPrototype/Web/Program.cs
similarity index 95%
rename from dfe.data.SearchPrototype.web/Program.cs
rename to Dfe.Data.SearchPrototype/Web/Program.cs
index de439af..8c5c71b 100644
--- a/dfe.data.SearchPrototype.web/Program.cs
+++ b/Dfe.Data.SearchPrototype/Web/Program.cs
@@ -29,4 +29,4 @@
app.Run();
-public partial class Program { }
+public partial class Program { }
\ No newline at end of file
diff --git a/dfe.data.SearchPrototype.web/Properties/launchSettings.json b/Dfe.Data.SearchPrototype/Web/Properties/launchSettings.json
similarity index 100%
rename from dfe.data.SearchPrototype.web/Properties/launchSettings.json
rename to Dfe.Data.SearchPrototype/Web/Properties/launchSettings.json
diff --git a/Dfe.Data.SearchPrototype/Web/Tests/Dfe.Data.SearchPrototype.Web.Tests.csproj b/Dfe.Data.SearchPrototype/Web/Tests/Dfe.Data.SearchPrototype.Web.Tests.csproj
new file mode 100644
index 0000000..b1db69c
--- /dev/null
+++ b/Dfe.Data.SearchPrototype/Web/Tests/Dfe.Data.SearchPrototype.Web.Tests.csproj
@@ -0,0 +1,46 @@
+
+
+
+ net8.0
+ enable
+ enable
+ false
+ true
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Always
+
+
+
+
diff --git a/DfE.Data.SearchPrototype.Test/HomePageTests.cs b/Dfe.Data.SearchPrototype/Web/Tests/Integration/HomePageTests.cs
similarity index 100%
rename from DfE.Data.SearchPrototype.Test/HomePageTests.cs
rename to Dfe.Data.SearchPrototype/Web/Tests/Integration/HomePageTests.cs
diff --git a/DfE.Data.SearchPrototype.Test/Shared/DomBrowserHelpers.cs b/Dfe.Data.SearchPrototype/Web/Tests/Integration/Shared/DomBrowserHelpers.cs
similarity index 100%
rename from DfE.Data.SearchPrototype.Test/Shared/DomBrowserHelpers.cs
rename to Dfe.Data.SearchPrototype/Web/Tests/Integration/Shared/DomBrowserHelpers.cs
diff --git a/DfE.Data.SearchPrototype.Test/Shared/IntegrationTestingWebApplicationFactory.cs b/Dfe.Data.SearchPrototype/Web/Tests/Integration/Shared/IntegrationTestingWebApplicationFactory.cs
similarity index 100%
rename from DfE.Data.SearchPrototype.Test/Shared/IntegrationTestingWebApplicationFactory.cs
rename to Dfe.Data.SearchPrototype/Web/Tests/Integration/Shared/IntegrationTestingWebApplicationFactory.cs
diff --git a/DfE.Data.SearchPrototype.Test/Shared/PageTestHelper.cs b/Dfe.Data.SearchPrototype/Web/Tests/Integration/Shared/PageTestHelper.cs
similarity index 100%
rename from DfE.Data.SearchPrototype.Test/Shared/PageTestHelper.cs
rename to Dfe.Data.SearchPrototype/Web/Tests/Integration/Shared/PageTestHelper.cs
diff --git a/DfE.Data.SearchPrototype.Test/readme.md b/Dfe.Data.SearchPrototype/Web/Tests/Integration/readme.md
similarity index 100%
rename from DfE.Data.SearchPrototype.Test/readme.md
rename to Dfe.Data.SearchPrototype/Web/Tests/Integration/readme.md
diff --git a/DfE.Data.SearchPrototype.Test/xunit.runner.json b/Dfe.Data.SearchPrototype/Web/Tests/Integration/xunit.runner.json
similarity index 100%
rename from DfE.Data.SearchPrototype.Test/xunit.runner.json
rename to Dfe.Data.SearchPrototype/Web/Tests/Integration/xunit.runner.json
diff --git a/dfe.data.SearchPrototype.web/Views/Home/Index.cshtml b/Dfe.Data.SearchPrototype/Web/Views/Home/Index.cshtml
similarity index 100%
rename from dfe.data.SearchPrototype.web/Views/Home/Index.cshtml
rename to Dfe.Data.SearchPrototype/Web/Views/Home/Index.cshtml
diff --git a/dfe.data.SearchPrototype.web/Views/Home/Privacy.cshtml b/Dfe.Data.SearchPrototype/Web/Views/Home/Privacy.cshtml
similarity index 100%
rename from dfe.data.SearchPrototype.web/Views/Home/Privacy.cshtml
rename to Dfe.Data.SearchPrototype/Web/Views/Home/Privacy.cshtml
diff --git a/dfe.data.SearchPrototype.web/Views/Shared/Error.cshtml b/Dfe.Data.SearchPrototype/Web/Views/Shared/Error.cshtml
similarity index 100%
rename from dfe.data.SearchPrototype.web/Views/Shared/Error.cshtml
rename to Dfe.Data.SearchPrototype/Web/Views/Shared/Error.cshtml
diff --git a/dfe.data.SearchPrototype.web/Views/Shared/_Layout.cshtml b/Dfe.Data.SearchPrototype/Web/Views/Shared/_Layout.cshtml
similarity index 93%
rename from dfe.data.SearchPrototype.web/Views/Shared/_Layout.cshtml
rename to Dfe.Data.SearchPrototype/Web/Views/Shared/_Layout.cshtml
index a452738..4130b55 100644
--- a/dfe.data.SearchPrototype.web/Views/Shared/_Layout.cshtml
+++ b/Dfe.Data.SearchPrototype/Web/Views/Shared/_Layout.cshtml
@@ -27,15 +27,23 @@