diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..214440d
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,61 @@
+# Build results
+[Dd]ebug/
+[Dd]ebugPublic/
+[Rr]elease/
+[Rr]eleases/
+x64/
+x86/
+[Ww][Ii][Nn]32/
+[Aa][Rr][Mm]/
+[Aa][Rr][Mm]64/
+bld/
+[Bb]in/
+[Oo]bj/
+[Ll]og/
+[Ll]ogs/
+
+# Visual Studio cache/options
+.vs/
+.vscode/
+
+# User-specific files
+*.rsuser
+*.suo
+*.user
+*.userosscache
+*.sln.docstates
+
+# NuGet Packages
+*.nupkg
+*.snupkg
+**/packages/*
+!**/packages/build/
+*.nuget.props
+*.nuget.targets
+
+# Test Results
+[Tt]est[Rr]esult*/
+[Bb]uild[Ll]og.*
+*.VisualState.xml
+TestResult.xml
+[Dd]ebug[Pp]ublic/
+
+# NCrunch
+_NCrunch_*
+.*crunch*.local.xml
+nCrunchTemp_*
+
+# Rider
+.idea/
+*.sln.iml
+
+# Coverage
+coverage/
+*.coverage
+*.coveragexml
+
+# Others
+*.log
+*.tmp
+.DS_Store
+Thumbs.db
diff --git a/src/AncientWisdom.API/AncientWisdom.API.csproj b/src/AncientWisdom.API/AncientWisdom.API.csproj
new file mode 100644
index 0000000..0a736a5
--- /dev/null
+++ b/src/AncientWisdom.API/AncientWisdom.API.csproj
@@ -0,0 +1,20 @@
+
+
+
+ net8.0
+ enable
+ enable
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/AncientWisdom.API/AncientWisdom.API.http b/src/AncientWisdom.API/AncientWisdom.API.http
new file mode 100644
index 0000000..f959231
--- /dev/null
+++ b/src/AncientWisdom.API/AncientWisdom.API.http
@@ -0,0 +1,6 @@
+@AncientWisdom.API_HostAddress = http://localhost:5002
+
+GET {{AncientWisdom.API_HostAddress}}/weatherforecast/
+Accept: application/json
+
+###
diff --git a/src/AncientWisdom.API/Program.cs b/src/AncientWisdom.API/Program.cs
new file mode 100644
index 0000000..93c1821
--- /dev/null
+++ b/src/AncientWisdom.API/Program.cs
@@ -0,0 +1,31 @@
+using Serilog;
+
+var builder = WebApplication.CreateBuilder(args);
+
+// Configure Serilog
+Log.Logger = new LoggerConfiguration()
+ .ReadFrom.Configuration(builder.Configuration)
+ .CreateLogger();
+
+builder.Host.UseSerilog();
+
+// Add services
+builder.Services.AddEndpointsApiExplorer();
+builder.Services.AddSwaggerGen();
+builder.Services.AddHealthChecks();
+
+var app = builder.Build();
+
+// Configure middleware
+if (app.Environment.IsDevelopment())
+{
+ app.UseSwagger();
+ app.UseSwaggerUI();
+}
+
+app.UseHttpsRedirection();
+
+// Health check endpoint
+app.MapHealthChecks("/api/health");
+
+app.Run();
diff --git a/src/AncientWisdom.API/Properties/launchSettings.json b/src/AncientWisdom.API/Properties/launchSettings.json
new file mode 100644
index 0000000..05fb66e
--- /dev/null
+++ b/src/AncientWisdom.API/Properties/launchSettings.json
@@ -0,0 +1,41 @@
+{
+ "$schema": "http://json.schemastore.org/launchsettings.json",
+ "iisSettings": {
+ "windowsAuthentication": false,
+ "anonymousAuthentication": true,
+ "iisExpress": {
+ "applicationUrl": "http://localhost:43431",
+ "sslPort": 44390
+ }
+ },
+ "profiles": {
+ "http": {
+ "commandName": "Project",
+ "dotnetRunMessages": true,
+ "launchBrowser": true,
+ "launchUrl": "swagger",
+ "applicationUrl": "http://localhost:5002",
+ "environmentVariables": {
+ "ASPNETCORE_ENVIRONMENT": "Development"
+ }
+ },
+ "https": {
+ "commandName": "Project",
+ "dotnetRunMessages": true,
+ "launchBrowser": true,
+ "launchUrl": "swagger",
+ "applicationUrl": "https://localhost:7047;http://localhost:5002",
+ "environmentVariables": {
+ "ASPNETCORE_ENVIRONMENT": "Development"
+ }
+ },
+ "IIS Express": {
+ "commandName": "IISExpress",
+ "launchBrowser": true,
+ "launchUrl": "swagger",
+ "environmentVariables": {
+ "ASPNETCORE_ENVIRONMENT": "Development"
+ }
+ }
+ }
+}
diff --git a/src/AncientWisdom.API/appsettings.Development.json b/src/AncientWisdom.API/appsettings.Development.json
new file mode 100644
index 0000000..ff66ba6
--- /dev/null
+++ b/src/AncientWisdom.API/appsettings.Development.json
@@ -0,0 +1,8 @@
+{
+ "Logging": {
+ "LogLevel": {
+ "Default": "Information",
+ "Microsoft.AspNetCore": "Warning"
+ }
+ }
+}
diff --git a/src/AncientWisdom.API/appsettings.json b/src/AncientWisdom.API/appsettings.json
new file mode 100644
index 0000000..4d56694
--- /dev/null
+++ b/src/AncientWisdom.API/appsettings.json
@@ -0,0 +1,9 @@
+{
+ "Logging": {
+ "LogLevel": {
+ "Default": "Information",
+ "Microsoft.AspNetCore": "Warning"
+ }
+ },
+ "AllowedHosts": "*"
+}
diff --git a/src/AncientWisdom.Application/AncientWisdom.Application.csproj b/src/AncientWisdom.Application/AncientWisdom.Application.csproj
new file mode 100644
index 0000000..2eaed30
--- /dev/null
+++ b/src/AncientWisdom.Application/AncientWisdom.Application.csproj
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+ net8.0
+ enable
+ enable
+
+
+
diff --git a/src/AncientWisdom.Application/Interfaces/.gitkeep b/src/AncientWisdom.Application/Interfaces/.gitkeep
new file mode 100644
index 0000000..e69de29
diff --git a/src/AncientWisdom.Application/Mappings/.gitkeep b/src/AncientWisdom.Application/Mappings/.gitkeep
new file mode 100644
index 0000000..e69de29
diff --git a/src/AncientWisdom.Application/Services/.gitkeep b/src/AncientWisdom.Application/Services/.gitkeep
new file mode 100644
index 0000000..e69de29
diff --git a/src/AncientWisdom.Domain/AncientWisdom.Domain.csproj b/src/AncientWisdom.Domain/AncientWisdom.Domain.csproj
new file mode 100644
index 0000000..bb23fb7
--- /dev/null
+++ b/src/AncientWisdom.Domain/AncientWisdom.Domain.csproj
@@ -0,0 +1,9 @@
+
+
+
+ net8.0
+ enable
+ enable
+
+
+
diff --git a/src/AncientWisdom.Domain/Entities/.gitkeep b/src/AncientWisdom.Domain/Entities/.gitkeep
new file mode 100644
index 0000000..e69de29
diff --git a/src/AncientWisdom.Domain/Enums/.gitkeep b/src/AncientWisdom.Domain/Enums/.gitkeep
new file mode 100644
index 0000000..e69de29
diff --git a/src/AncientWisdom.Domain/Interfaces/.gitkeep b/src/AncientWisdom.Domain/Interfaces/.gitkeep
new file mode 100644
index 0000000..e69de29
diff --git a/src/AncientWisdom.Infrastructure/AncientWisdom.Infrastructure.csproj b/src/AncientWisdom.Infrastructure/AncientWisdom.Infrastructure.csproj
new file mode 100644
index 0000000..24c72b3
--- /dev/null
+++ b/src/AncientWisdom.Infrastructure/AncientWisdom.Infrastructure.csproj
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+ all
+
+
+
+
+ net8.0
+ enable
+ enable
+
+
+
diff --git a/src/AncientWisdom.Infrastructure/Data/ApplicationDbContext.cs b/src/AncientWisdom.Infrastructure/Data/ApplicationDbContext.cs
new file mode 100644
index 0000000..3b6dbf2
--- /dev/null
+++ b/src/AncientWisdom.Infrastructure/Data/ApplicationDbContext.cs
@@ -0,0 +1,20 @@
+using Microsoft.EntityFrameworkCore;
+
+namespace AncientWisdom.Infrastructure.Data;
+
+public class ApplicationDbContext : DbContext
+{
+ public ApplicationDbContext(DbContextOptions options)
+ : base(options)
+ {
+ }
+
+ // DbSets will be added as entities are created
+
+ protected override void OnModelCreating(ModelBuilder modelBuilder)
+ {
+ base.OnModelCreating(modelBuilder);
+
+ // Configurations will be added here
+ }
+}
diff --git a/src/AncientWisdom.Infrastructure/Repositories/.gitkeep b/src/AncientWisdom.Infrastructure/Repositories/.gitkeep
new file mode 100644
index 0000000..e69de29
diff --git a/src/AncientWisdom.sln b/src/AncientWisdom.sln
new file mode 100644
index 0000000..28c53ee
--- /dev/null
+++ b/src/AncientWisdom.sln
@@ -0,0 +1,118 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.0.31903.59
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AncientWisdom.Domain", "AncientWisdom.Domain\AncientWisdom.Domain.csproj", "{03682CB5-3FA2-4737-AD4C-61561DB44DA2}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AncientWisdom.Application", "AncientWisdom.Application\AncientWisdom.Application.csproj", "{D806288C-3C49-4B5F-8A9E-9F07C0093544}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AncientWisdom.Infrastructure", "AncientWisdom.Infrastructure\AncientWisdom.Infrastructure.csproj", "{7EFADA54-5B09-4B5E-A912-C7DA24D7F948}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AncientWisdom.API", "AncientWisdom.API\AncientWisdom.API.csproj", "{725FB6CA-4566-4796-8A29-1B4D4A2130F3}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AncientWisdom.UnitTests", "..\tests\AncientWisdom.UnitTests\AncientWisdom.UnitTests.csproj", "{F9143F7A-F3AB-4F81-8A67-19A2BFDCDF91}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AncientWisdom.IntegrationTests", "..\tests\AncientWisdom.IntegrationTests\AncientWisdom.IntegrationTests.csproj", "{EFBBAACC-81E4-4C80-A278-FC47F94E32BF}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AncientWisdom.BDD.Tests", "..\tests\AncientWisdom.BDD.Tests\AncientWisdom.BDD.Tests.csproj", "{A58C5AAC-2EB7-4583-BF66-9B74B310AFBC}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Debug|x64 = Debug|x64
+ Debug|x86 = Debug|x86
+ Release|Any CPU = Release|Any CPU
+ Release|x64 = Release|x64
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {03682CB5-3FA2-4737-AD4C-61561DB44DA2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {03682CB5-3FA2-4737-AD4C-61561DB44DA2}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {03682CB5-3FA2-4737-AD4C-61561DB44DA2}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {03682CB5-3FA2-4737-AD4C-61561DB44DA2}.Debug|x64.Build.0 = Debug|Any CPU
+ {03682CB5-3FA2-4737-AD4C-61561DB44DA2}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {03682CB5-3FA2-4737-AD4C-61561DB44DA2}.Debug|x86.Build.0 = Debug|Any CPU
+ {03682CB5-3FA2-4737-AD4C-61561DB44DA2}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {03682CB5-3FA2-4737-AD4C-61561DB44DA2}.Release|Any CPU.Build.0 = Release|Any CPU
+ {03682CB5-3FA2-4737-AD4C-61561DB44DA2}.Release|x64.ActiveCfg = Release|Any CPU
+ {03682CB5-3FA2-4737-AD4C-61561DB44DA2}.Release|x64.Build.0 = Release|Any CPU
+ {03682CB5-3FA2-4737-AD4C-61561DB44DA2}.Release|x86.ActiveCfg = Release|Any CPU
+ {03682CB5-3FA2-4737-AD4C-61561DB44DA2}.Release|x86.Build.0 = Release|Any CPU
+ {D806288C-3C49-4B5F-8A9E-9F07C0093544}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {D806288C-3C49-4B5F-8A9E-9F07C0093544}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D806288C-3C49-4B5F-8A9E-9F07C0093544}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {D806288C-3C49-4B5F-8A9E-9F07C0093544}.Debug|x64.Build.0 = Debug|Any CPU
+ {D806288C-3C49-4B5F-8A9E-9F07C0093544}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {D806288C-3C49-4B5F-8A9E-9F07C0093544}.Debug|x86.Build.0 = Debug|Any CPU
+ {D806288C-3C49-4B5F-8A9E-9F07C0093544}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {D806288C-3C49-4B5F-8A9E-9F07C0093544}.Release|Any CPU.Build.0 = Release|Any CPU
+ {D806288C-3C49-4B5F-8A9E-9F07C0093544}.Release|x64.ActiveCfg = Release|Any CPU
+ {D806288C-3C49-4B5F-8A9E-9F07C0093544}.Release|x64.Build.0 = Release|Any CPU
+ {D806288C-3C49-4B5F-8A9E-9F07C0093544}.Release|x86.ActiveCfg = Release|Any CPU
+ {D806288C-3C49-4B5F-8A9E-9F07C0093544}.Release|x86.Build.0 = Release|Any CPU
+ {7EFADA54-5B09-4B5E-A912-C7DA24D7F948}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {7EFADA54-5B09-4B5E-A912-C7DA24D7F948}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {7EFADA54-5B09-4B5E-A912-C7DA24D7F948}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {7EFADA54-5B09-4B5E-A912-C7DA24D7F948}.Debug|x64.Build.0 = Debug|Any CPU
+ {7EFADA54-5B09-4B5E-A912-C7DA24D7F948}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {7EFADA54-5B09-4B5E-A912-C7DA24D7F948}.Debug|x86.Build.0 = Debug|Any CPU
+ {7EFADA54-5B09-4B5E-A912-C7DA24D7F948}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {7EFADA54-5B09-4B5E-A912-C7DA24D7F948}.Release|Any CPU.Build.0 = Release|Any CPU
+ {7EFADA54-5B09-4B5E-A912-C7DA24D7F948}.Release|x64.ActiveCfg = Release|Any CPU
+ {7EFADA54-5B09-4B5E-A912-C7DA24D7F948}.Release|x64.Build.0 = Release|Any CPU
+ {7EFADA54-5B09-4B5E-A912-C7DA24D7F948}.Release|x86.ActiveCfg = Release|Any CPU
+ {7EFADA54-5B09-4B5E-A912-C7DA24D7F948}.Release|x86.Build.0 = Release|Any CPU
+ {725FB6CA-4566-4796-8A29-1B4D4A2130F3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {725FB6CA-4566-4796-8A29-1B4D4A2130F3}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {725FB6CA-4566-4796-8A29-1B4D4A2130F3}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {725FB6CA-4566-4796-8A29-1B4D4A2130F3}.Debug|x64.Build.0 = Debug|Any CPU
+ {725FB6CA-4566-4796-8A29-1B4D4A2130F3}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {725FB6CA-4566-4796-8A29-1B4D4A2130F3}.Debug|x86.Build.0 = Debug|Any CPU
+ {725FB6CA-4566-4796-8A29-1B4D4A2130F3}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {725FB6CA-4566-4796-8A29-1B4D4A2130F3}.Release|Any CPU.Build.0 = Release|Any CPU
+ {725FB6CA-4566-4796-8A29-1B4D4A2130F3}.Release|x64.ActiveCfg = Release|Any CPU
+ {725FB6CA-4566-4796-8A29-1B4D4A2130F3}.Release|x64.Build.0 = Release|Any CPU
+ {725FB6CA-4566-4796-8A29-1B4D4A2130F3}.Release|x86.ActiveCfg = Release|Any CPU
+ {725FB6CA-4566-4796-8A29-1B4D4A2130F3}.Release|x86.Build.0 = Release|Any CPU
+ {F9143F7A-F3AB-4F81-8A67-19A2BFDCDF91}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {F9143F7A-F3AB-4F81-8A67-19A2BFDCDF91}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {F9143F7A-F3AB-4F81-8A67-19A2BFDCDF91}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {F9143F7A-F3AB-4F81-8A67-19A2BFDCDF91}.Debug|x64.Build.0 = Debug|Any CPU
+ {F9143F7A-F3AB-4F81-8A67-19A2BFDCDF91}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {F9143F7A-F3AB-4F81-8A67-19A2BFDCDF91}.Debug|x86.Build.0 = Debug|Any CPU
+ {F9143F7A-F3AB-4F81-8A67-19A2BFDCDF91}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {F9143F7A-F3AB-4F81-8A67-19A2BFDCDF91}.Release|Any CPU.Build.0 = Release|Any CPU
+ {F9143F7A-F3AB-4F81-8A67-19A2BFDCDF91}.Release|x64.ActiveCfg = Release|Any CPU
+ {F9143F7A-F3AB-4F81-8A67-19A2BFDCDF91}.Release|x64.Build.0 = Release|Any CPU
+ {F9143F7A-F3AB-4F81-8A67-19A2BFDCDF91}.Release|x86.ActiveCfg = Release|Any CPU
+ {F9143F7A-F3AB-4F81-8A67-19A2BFDCDF91}.Release|x86.Build.0 = Release|Any CPU
+ {EFBBAACC-81E4-4C80-A278-FC47F94E32BF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {EFBBAACC-81E4-4C80-A278-FC47F94E32BF}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {EFBBAACC-81E4-4C80-A278-FC47F94E32BF}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {EFBBAACC-81E4-4C80-A278-FC47F94E32BF}.Debug|x64.Build.0 = Debug|Any CPU
+ {EFBBAACC-81E4-4C80-A278-FC47F94E32BF}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {EFBBAACC-81E4-4C80-A278-FC47F94E32BF}.Debug|x86.Build.0 = Debug|Any CPU
+ {EFBBAACC-81E4-4C80-A278-FC47F94E32BF}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {EFBBAACC-81E4-4C80-A278-FC47F94E32BF}.Release|Any CPU.Build.0 = Release|Any CPU
+ {EFBBAACC-81E4-4C80-A278-FC47F94E32BF}.Release|x64.ActiveCfg = Release|Any CPU
+ {EFBBAACC-81E4-4C80-A278-FC47F94E32BF}.Release|x64.Build.0 = Release|Any CPU
+ {EFBBAACC-81E4-4C80-A278-FC47F94E32BF}.Release|x86.ActiveCfg = Release|Any CPU
+ {EFBBAACC-81E4-4C80-A278-FC47F94E32BF}.Release|x86.Build.0 = Release|Any CPU
+ {A58C5AAC-2EB7-4583-BF66-9B74B310AFBC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {A58C5AAC-2EB7-4583-BF66-9B74B310AFBC}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {A58C5AAC-2EB7-4583-BF66-9B74B310AFBC}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {A58C5AAC-2EB7-4583-BF66-9B74B310AFBC}.Debug|x64.Build.0 = Debug|Any CPU
+ {A58C5AAC-2EB7-4583-BF66-9B74B310AFBC}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {A58C5AAC-2EB7-4583-BF66-9B74B310AFBC}.Debug|x86.Build.0 = Debug|Any CPU
+ {A58C5AAC-2EB7-4583-BF66-9B74B310AFBC}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {A58C5AAC-2EB7-4583-BF66-9B74B310AFBC}.Release|Any CPU.Build.0 = Release|Any CPU
+ {A58C5AAC-2EB7-4583-BF66-9B74B310AFBC}.Release|x64.ActiveCfg = Release|Any CPU
+ {A58C5AAC-2EB7-4583-BF66-9B74B310AFBC}.Release|x64.Build.0 = Release|Any CPU
+ {A58C5AAC-2EB7-4583-BF66-9B74B310AFBC}.Release|x86.ActiveCfg = Release|Any CPU
+ {A58C5AAC-2EB7-4583-BF66-9B74B310AFBC}.Release|x86.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/tests/AncientWisdom.BDD.Tests/AncientWisdom.BDD.Tests.csproj b/tests/AncientWisdom.BDD.Tests/AncientWisdom.BDD.Tests.csproj
new file mode 100644
index 0000000..a34dd39
--- /dev/null
+++ b/tests/AncientWisdom.BDD.Tests/AncientWisdom.BDD.Tests.csproj
@@ -0,0 +1,25 @@
+
+
+
+ net8.0
+ enable
+ enable
+
+ false
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/AncientWisdom.BDD.Tests/Features/.gitkeep b/tests/AncientWisdom.BDD.Tests/Features/.gitkeep
new file mode 100644
index 0000000..e69de29
diff --git a/tests/AncientWisdom.BDD.Tests/StepDefinitions/.gitkeep b/tests/AncientWisdom.BDD.Tests/StepDefinitions/.gitkeep
new file mode 100644
index 0000000..e69de29
diff --git a/tests/AncientWisdom.IntegrationTests/AncientWisdom.IntegrationTests.csproj b/tests/AncientWisdom.IntegrationTests/AncientWisdom.IntegrationTests.csproj
new file mode 100644
index 0000000..f69743a
--- /dev/null
+++ b/tests/AncientWisdom.IntegrationTests/AncientWisdom.IntegrationTests.csproj
@@ -0,0 +1,24 @@
+
+
+
+ net8.0
+ enable
+ enable
+
+ false
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/AncientWisdom.IntegrationTests/README.md b/tests/AncientWisdom.IntegrationTests/README.md
new file mode 100644
index 0000000..e605da9
--- /dev/null
+++ b/tests/AncientWisdom.IntegrationTests/README.md
@@ -0,0 +1,12 @@
+# AncientWisdom Integration Tests
+
+This project contains integration tests for the AncientWisdom API.
+
+## Test Framework
+- xUnit
+- Microsoft.AspNetCore.Mvc.Testing (WebApplicationFactory)
+
+## Running Tests
+```bash
+dotnet test
+```
diff --git a/tests/AncientWisdom.UnitTests/AncientWisdom.UnitTests.csproj b/tests/AncientWisdom.UnitTests/AncientWisdom.UnitTests.csproj
new file mode 100644
index 0000000..000b683
--- /dev/null
+++ b/tests/AncientWisdom.UnitTests/AncientWisdom.UnitTests.csproj
@@ -0,0 +1,25 @@
+
+
+
+ net8.0
+ enable
+ enable
+
+ false
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/AncientWisdom.UnitTests/README.md b/tests/AncientWisdom.UnitTests/README.md
new file mode 100644
index 0000000..e43c60d
--- /dev/null
+++ b/tests/AncientWisdom.UnitTests/README.md
@@ -0,0 +1,13 @@
+# AncientWisdom Unit Tests
+
+This project contains unit tests for the AncientWisdom application.
+
+## Test Framework
+- xUnit
+- FluentAssertions
+- Moq
+
+## Running Tests
+```bash
+dotnet test
+```