implement Clean Architecture and user authentication

- Add LoopFit.Domain with entities (ApplicationUser, Workout, CalorieEntry, VitalData), enums (WorkoutType), and interfaces (IJwtTokenGenerator, IUserRepository, IWorkoutRepository)
- Add LoopFit.Application with auth DTOs, service interfaces, and DI setup
- Add LoopFit.Infrastructure with EF Core DbContext (PostgreSQL), ASP.NET Core Identity, JWT token generation, and repository implementations
- Add AuthController with register/login/me endpoints and JWT Bearer auth
- Add MAUI auth services (AuthService, TokenStorageService) and Login/Register Blazor pages
This commit is contained in:
2026-08-26 00:50:02 +02:00
parent ada55d4d92
commit b12e557e1a
69 changed files with 1253 additions and 146 deletions
+72 -6
View File
@@ -2,27 +2,93 @@
Microsoft Visual Studio Solution File, Format Version 12.00
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LoopFit", "LoopFit\LoopFit.csproj", "{230BF2FE-83B3-443B-B561-E33ED9307B71}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LoopFit.Shared", "LoopFit.Shared\LoopFit.Shared.csproj", "{784878BE-3611-4C20-B91F-9724F150F78E}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LoopFit.Web", "LoopFit.Web\LoopFit.Web.csproj", "{0011D403-B7FB-4ED1-9885-B6A594872B91}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{827E0CD3-B72D-47B6-A68D-7590B98EB39B}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LoopFit.Domain", "src\LoopFit.Domain\LoopFit.Domain.csproj", "{A7CC92FF-09E8-4331-94B2-24FC1B0D17A3}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LoopFit.Application", "src\LoopFit.Application\LoopFit.Application.csproj", "{CF4C1F14-B82D-4023-BED6-F750F97CE9C8}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LoopFit.Infrastructure", "src\LoopFit.Infrastructure\LoopFit.Infrastructure.csproj", "{C91B39DF-E06E-4EAF-AD2B-32641A15E558}"
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
{230BF2FE-83B3-443B-B561-E33ED9307B71}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{230BF2FE-83B3-443B-B561-E33ED9307B71}.Debug|Any CPU.Build.0 = Debug|Any CPU
{230BF2FE-83B3-443B-B561-E33ED9307B71}.Debug|x64.ActiveCfg = Debug|Any CPU
{230BF2FE-83B3-443B-B561-E33ED9307B71}.Debug|x64.Build.0 = Debug|Any CPU
{230BF2FE-83B3-443B-B561-E33ED9307B71}.Debug|x86.ActiveCfg = Debug|Any CPU
{230BF2FE-83B3-443B-B561-E33ED9307B71}.Debug|x86.Build.0 = Debug|Any CPU
{230BF2FE-83B3-443B-B561-E33ED9307B71}.Release|Any CPU.ActiveCfg = Release|Any CPU
{230BF2FE-83B3-443B-B561-E33ED9307B71}.Release|Any CPU.Build.0 = Release|Any CPU
{784878BE-3611-4C20-B91F-9724F150F78E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{784878BE-3611-4C20-B91F-9724F150F78E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{784878BE-3611-4C20-B91F-9724F150F78E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{784878BE-3611-4C20-B91F-9724F150F78E}.Release|Any CPU.Build.0 = Release|Any CPU
{230BF2FE-83B3-443B-B561-E33ED9307B71}.Release|x64.ActiveCfg = Release|Any CPU
{230BF2FE-83B3-443B-B561-E33ED9307B71}.Release|x64.Build.0 = Release|Any CPU
{230BF2FE-83B3-443B-B561-E33ED9307B71}.Release|x86.ActiveCfg = Release|Any CPU
{230BF2FE-83B3-443B-B561-E33ED9307B71}.Release|x86.Build.0 = Release|Any CPU
{0011D403-B7FB-4ED1-9885-B6A594872B91}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0011D403-B7FB-4ED1-9885-B6A594872B91}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0011D403-B7FB-4ED1-9885-B6A594872B91}.Debug|x64.ActiveCfg = Debug|Any CPU
{0011D403-B7FB-4ED1-9885-B6A594872B91}.Debug|x64.Build.0 = Debug|Any CPU
{0011D403-B7FB-4ED1-9885-B6A594872B91}.Debug|x86.ActiveCfg = Debug|Any CPU
{0011D403-B7FB-4ED1-9885-B6A594872B91}.Debug|x86.Build.0 = Debug|Any CPU
{0011D403-B7FB-4ED1-9885-B6A594872B91}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0011D403-B7FB-4ED1-9885-B6A594872B91}.Release|Any CPU.Build.0 = Release|Any CPU
{0011D403-B7FB-4ED1-9885-B6A594872B91}.Release|x64.ActiveCfg = Release|Any CPU
{0011D403-B7FB-4ED1-9885-B6A594872B91}.Release|x64.Build.0 = Release|Any CPU
{0011D403-B7FB-4ED1-9885-B6A594872B91}.Release|x86.ActiveCfg = Release|Any CPU
{0011D403-B7FB-4ED1-9885-B6A594872B91}.Release|x86.Build.0 = Release|Any CPU
{A7CC92FF-09E8-4331-94B2-24FC1B0D17A3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A7CC92FF-09E8-4331-94B2-24FC1B0D17A3}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A7CC92FF-09E8-4331-94B2-24FC1B0D17A3}.Debug|x64.ActiveCfg = Debug|Any CPU
{A7CC92FF-09E8-4331-94B2-24FC1B0D17A3}.Debug|x64.Build.0 = Debug|Any CPU
{A7CC92FF-09E8-4331-94B2-24FC1B0D17A3}.Debug|x86.ActiveCfg = Debug|Any CPU
{A7CC92FF-09E8-4331-94B2-24FC1B0D17A3}.Debug|x86.Build.0 = Debug|Any CPU
{A7CC92FF-09E8-4331-94B2-24FC1B0D17A3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A7CC92FF-09E8-4331-94B2-24FC1B0D17A3}.Release|Any CPU.Build.0 = Release|Any CPU
{A7CC92FF-09E8-4331-94B2-24FC1B0D17A3}.Release|x64.ActiveCfg = Release|Any CPU
{A7CC92FF-09E8-4331-94B2-24FC1B0D17A3}.Release|x64.Build.0 = Release|Any CPU
{A7CC92FF-09E8-4331-94B2-24FC1B0D17A3}.Release|x86.ActiveCfg = Release|Any CPU
{A7CC92FF-09E8-4331-94B2-24FC1B0D17A3}.Release|x86.Build.0 = Release|Any CPU
{CF4C1F14-B82D-4023-BED6-F750F97CE9C8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{CF4C1F14-B82D-4023-BED6-F750F97CE9C8}.Debug|Any CPU.Build.0 = Debug|Any CPU
{CF4C1F14-B82D-4023-BED6-F750F97CE9C8}.Debug|x64.ActiveCfg = Debug|Any CPU
{CF4C1F14-B82D-4023-BED6-F750F97CE9C8}.Debug|x64.Build.0 = Debug|Any CPU
{CF4C1F14-B82D-4023-BED6-F750F97CE9C8}.Debug|x86.ActiveCfg = Debug|Any CPU
{CF4C1F14-B82D-4023-BED6-F750F97CE9C8}.Debug|x86.Build.0 = Debug|Any CPU
{CF4C1F14-B82D-4023-BED6-F750F97CE9C8}.Release|Any CPU.ActiveCfg = Release|Any CPU
{CF4C1F14-B82D-4023-BED6-F750F97CE9C8}.Release|Any CPU.Build.0 = Release|Any CPU
{CF4C1F14-B82D-4023-BED6-F750F97CE9C8}.Release|x64.ActiveCfg = Release|Any CPU
{CF4C1F14-B82D-4023-BED6-F750F97CE9C8}.Release|x64.Build.0 = Release|Any CPU
{CF4C1F14-B82D-4023-BED6-F750F97CE9C8}.Release|x86.ActiveCfg = Release|Any CPU
{CF4C1F14-B82D-4023-BED6-F750F97CE9C8}.Release|x86.Build.0 = Release|Any CPU
{C91B39DF-E06E-4EAF-AD2B-32641A15E558}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C91B39DF-E06E-4EAF-AD2B-32641A15E558}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C91B39DF-E06E-4EAF-AD2B-32641A15E558}.Debug|x64.ActiveCfg = Debug|Any CPU
{C91B39DF-E06E-4EAF-AD2B-32641A15E558}.Debug|x64.Build.0 = Debug|Any CPU
{C91B39DF-E06E-4EAF-AD2B-32641A15E558}.Debug|x86.ActiveCfg = Debug|Any CPU
{C91B39DF-E06E-4EAF-AD2B-32641A15E558}.Debug|x86.Build.0 = Debug|Any CPU
{C91B39DF-E06E-4EAF-AD2B-32641A15E558}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C91B39DF-E06E-4EAF-AD2B-32641A15E558}.Release|Any CPU.Build.0 = Release|Any CPU
{C91B39DF-E06E-4EAF-AD2B-32641A15E558}.Release|x64.ActiveCfg = Release|Any CPU
{C91B39DF-E06E-4EAF-AD2B-32641A15E558}.Release|x64.Build.0 = Release|Any CPU
{C91B39DF-E06E-4EAF-AD2B-32641A15E558}.Release|x86.ActiveCfg = Release|Any CPU
{C91B39DF-E06E-4EAF-AD2B-32641A15E558}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{A7CC92FF-09E8-4331-94B2-24FC1B0D17A3} = {827E0CD3-B72D-47B6-A68D-7590B98EB39B}
{CF4C1F14-B82D-4023-BED6-F750F97CE9C8} = {827E0CD3-B72D-47B6-A68D-7590B98EB39B}
{C91B39DF-E06E-4EAF-AD2B-32641A15E558} = {827E0CD3-B72D-47B6-A68D-7590B98EB39B}
EndGlobalSection
EndGlobal