From 2d5d075879a34137e8c5f2fd09212f0ae719f889 Mon Sep 17 00:00:00 2001 From: James Kolpack Date: Wed, 3 Dec 2025 22:04:23 -0500 Subject: [PATCH] Feature-based folder structure 1. Created feature-based folder structure - Components now organized by domain feature 2. Moved all components - 20+ files moved to new locations 3. Updated _Imports.razor - Added all new namespace paths for global component access 4. Updated CustomThemes.cs namespace - Changed from WebApp.Components.Layout to WebApp.Components.Shared.Layout 5. Removed old using directives - Cleaned up Login.razor and Routes.razor 6. Removed empty directories - Cleaned up old folder structure --- .../{ => Features/Authentication}/Login.razor | 1 - .../Events/Components}/EventAttributes.razor | 0 .../Events}/Create.razor | 0 .../Events}/Details.razor | 0 .../Events}/Edit.razor | 0 .../Events}/Index.razor | 0 .../Events}/Printout.razor | 0 .../MeetingSchedule}/Index.razor | 0 .../MeetingSchedule}/ScheduledTeamsList.razor | 0 .../MeetingSchedule}/UnscheduledStudentsList.razor | 0 .../Students/Components}/StudentTextBoxSelector.razor | 0 .../Students/Components}/StudentToggleSelector.razor | 0 .../StudentPages => Features/Students}/Create.razor | 0 .../StudentPages => Features/Students}/Details.razor | 0 .../StudentPages => Features/Students}/Edit.razor | 0 .../Students}/EventRanking.razor | 0 .../Students}/EventRankingEdit.razor | 0 .../StudentPages => Features/Students}/Index.razor | 0 .../TeamPages => Features/Teams}/Assignment.razor | 0 .../Teams/Components}/TeamCaptainSelector.razor | 0 .../Teams/Components}/TeamSelector.razor | 0 .../Teams/Components}/TeamStudents.razor | 0 .../Teams/Components}/TeamToggleSelector.razor | 0 .../{Pages/TeamPages => Features/Teams}/Create.razor | 0 .../{Pages/TeamPages => Features/Teams}/Edit.razor | 0 .../{Pages/TeamPages => Features/Teams}/Handout.razor | 0 .../{Pages/TeamPages => Features/Teams}/Index.razor | 0 .../TeamPages => Features/Teams}/Printout.razor | 0 WebApp/Components/Routes.razor | 3 +-- .../Shared/{ => Components}/AppErrorBoundary.razor | 0 .../Shared/{ => Components}/CrudActions.razor | 0 WebApp/Components/{ => Shared}/Layout/CustomThemes.cs | 2 +- .../Components/{ => Shared}/Layout/EmptyLayout.razor | 0 .../Components/{ => Shared}/Layout/MainLayout.razor | 0 .../{ => Shared}/Layout/MainLayout.razor.css | 0 WebApp/Components/{ => Shared}/Layout/NavMenu.razor | 0 .../Components/{ => Shared}/Layout/NavMenu.razor.css | 0 WebApp/Components/_Imports.razor | 11 +++++++++++ 38 files changed, 13 insertions(+), 4 deletions(-) rename WebApp/Components/{ => Features/Authentication}/Login.razor (99%) rename WebApp/Components/{Shared => Features/Events/Components}/EventAttributes.razor (100%) rename WebApp/Components/{Pages/EventDefinitionPages => Features/Events}/Create.razor (100%) rename WebApp/Components/{Pages/EventDefinitionPages => Features/Events}/Details.razor (100%) rename WebApp/Components/{Pages/EventDefinitionPages => Features/Events}/Edit.razor (100%) rename WebApp/Components/{Pages/EventDefinitionPages => Features/Events}/Index.razor (100%) rename WebApp/Components/{Pages/EventDefinitionPages => Features/Events}/Printout.razor (100%) rename WebApp/Components/{Pages/MeetingSchedulePages => Features/MeetingSchedule}/Index.razor (100%) rename WebApp/Components/{Pages/MeetingSchedulePages => Features/MeetingSchedule}/ScheduledTeamsList.razor (100%) rename WebApp/Components/{Pages/MeetingSchedulePages => Features/MeetingSchedule}/UnscheduledStudentsList.razor (100%) rename WebApp/Components/{Shared => Features/Students/Components}/StudentTextBoxSelector.razor (100%) rename WebApp/Components/{Shared => Features/Students/Components}/StudentToggleSelector.razor (100%) rename WebApp/Components/{Pages/StudentPages => Features/Students}/Create.razor (100%) rename WebApp/Components/{Pages/StudentPages => Features/Students}/Details.razor (100%) rename WebApp/Components/{Pages/StudentPages => Features/Students}/Edit.razor (100%) rename WebApp/Components/{Pages/StudentPages => Features/Students}/EventRanking.razor (100%) rename WebApp/Components/{Pages/StudentPages => Features/Students}/EventRankingEdit.razor (100%) rename WebApp/Components/{Pages/StudentPages => Features/Students}/Index.razor (100%) rename WebApp/Components/{Pages/TeamPages => Features/Teams}/Assignment.razor (100%) rename WebApp/Components/{Shared => Features/Teams/Components}/TeamCaptainSelector.razor (100%) rename WebApp/Components/{Shared => Features/Teams/Components}/TeamSelector.razor (100%) rename WebApp/Components/{Shared => Features/Teams/Components}/TeamStudents.razor (100%) rename WebApp/Components/{Shared => Features/Teams/Components}/TeamToggleSelector.razor (100%) rename WebApp/Components/{Pages/TeamPages => Features/Teams}/Create.razor (100%) rename WebApp/Components/{Pages/TeamPages => Features/Teams}/Edit.razor (100%) rename WebApp/Components/{Pages/TeamPages => Features/Teams}/Handout.razor (100%) rename WebApp/Components/{Pages/TeamPages => Features/Teams}/Index.razor (100%) rename WebApp/Components/{Pages/TeamPages => Features/Teams}/Printout.razor (100%) rename WebApp/Components/Shared/{ => Components}/AppErrorBoundary.razor (100%) rename WebApp/Components/Shared/{ => Components}/CrudActions.razor (100%) rename WebApp/Components/{ => Shared}/Layout/CustomThemes.cs (99%) rename WebApp/Components/{ => Shared}/Layout/EmptyLayout.razor (100%) rename WebApp/Components/{ => Shared}/Layout/MainLayout.razor (100%) rename WebApp/Components/{ => Shared}/Layout/MainLayout.razor.css (100%) rename WebApp/Components/{ => Shared}/Layout/NavMenu.razor (100%) rename WebApp/Components/{ => Shared}/Layout/NavMenu.razor.css (100%) diff --git a/WebApp/Components/Login.razor b/WebApp/Components/Features/Authentication/Login.razor similarity index 99% rename from WebApp/Components/Login.razor rename to WebApp/Components/Features/Authentication/Login.razor index 64b0a6a..ee4b213 100644 --- a/WebApp/Components/Login.razor +++ b/WebApp/Components/Features/Authentication/Login.razor @@ -1,5 +1,4 @@ @page "/login" -@using WebApp.Components.Layout @layout EmptyLayout @using System.ComponentModel.DataAnnotations @using WebApp.Authentication diff --git a/WebApp/Components/Shared/EventAttributes.razor b/WebApp/Components/Features/Events/Components/EventAttributes.razor similarity index 100% rename from WebApp/Components/Shared/EventAttributes.razor rename to WebApp/Components/Features/Events/Components/EventAttributes.razor diff --git a/WebApp/Components/Pages/EventDefinitionPages/Create.razor b/WebApp/Components/Features/Events/Create.razor similarity index 100% rename from WebApp/Components/Pages/EventDefinitionPages/Create.razor rename to WebApp/Components/Features/Events/Create.razor diff --git a/WebApp/Components/Pages/EventDefinitionPages/Details.razor b/WebApp/Components/Features/Events/Details.razor similarity index 100% rename from WebApp/Components/Pages/EventDefinitionPages/Details.razor rename to WebApp/Components/Features/Events/Details.razor diff --git a/WebApp/Components/Pages/EventDefinitionPages/Edit.razor b/WebApp/Components/Features/Events/Edit.razor similarity index 100% rename from WebApp/Components/Pages/EventDefinitionPages/Edit.razor rename to WebApp/Components/Features/Events/Edit.razor diff --git a/WebApp/Components/Pages/EventDefinitionPages/Index.razor b/WebApp/Components/Features/Events/Index.razor similarity index 100% rename from WebApp/Components/Pages/EventDefinitionPages/Index.razor rename to WebApp/Components/Features/Events/Index.razor diff --git a/WebApp/Components/Pages/EventDefinitionPages/Printout.razor b/WebApp/Components/Features/Events/Printout.razor similarity index 100% rename from WebApp/Components/Pages/EventDefinitionPages/Printout.razor rename to WebApp/Components/Features/Events/Printout.razor diff --git a/WebApp/Components/Pages/MeetingSchedulePages/Index.razor b/WebApp/Components/Features/MeetingSchedule/Index.razor similarity index 100% rename from WebApp/Components/Pages/MeetingSchedulePages/Index.razor rename to WebApp/Components/Features/MeetingSchedule/Index.razor diff --git a/WebApp/Components/Pages/MeetingSchedulePages/ScheduledTeamsList.razor b/WebApp/Components/Features/MeetingSchedule/ScheduledTeamsList.razor similarity index 100% rename from WebApp/Components/Pages/MeetingSchedulePages/ScheduledTeamsList.razor rename to WebApp/Components/Features/MeetingSchedule/ScheduledTeamsList.razor diff --git a/WebApp/Components/Pages/MeetingSchedulePages/UnscheduledStudentsList.razor b/WebApp/Components/Features/MeetingSchedule/UnscheduledStudentsList.razor similarity index 100% rename from WebApp/Components/Pages/MeetingSchedulePages/UnscheduledStudentsList.razor rename to WebApp/Components/Features/MeetingSchedule/UnscheduledStudentsList.razor diff --git a/WebApp/Components/Shared/StudentTextBoxSelector.razor b/WebApp/Components/Features/Students/Components/StudentTextBoxSelector.razor similarity index 100% rename from WebApp/Components/Shared/StudentTextBoxSelector.razor rename to WebApp/Components/Features/Students/Components/StudentTextBoxSelector.razor diff --git a/WebApp/Components/Shared/StudentToggleSelector.razor b/WebApp/Components/Features/Students/Components/StudentToggleSelector.razor similarity index 100% rename from WebApp/Components/Shared/StudentToggleSelector.razor rename to WebApp/Components/Features/Students/Components/StudentToggleSelector.razor diff --git a/WebApp/Components/Pages/StudentPages/Create.razor b/WebApp/Components/Features/Students/Create.razor similarity index 100% rename from WebApp/Components/Pages/StudentPages/Create.razor rename to WebApp/Components/Features/Students/Create.razor diff --git a/WebApp/Components/Pages/StudentPages/Details.razor b/WebApp/Components/Features/Students/Details.razor similarity index 100% rename from WebApp/Components/Pages/StudentPages/Details.razor rename to WebApp/Components/Features/Students/Details.razor diff --git a/WebApp/Components/Pages/StudentPages/Edit.razor b/WebApp/Components/Features/Students/Edit.razor similarity index 100% rename from WebApp/Components/Pages/StudentPages/Edit.razor rename to WebApp/Components/Features/Students/Edit.razor diff --git a/WebApp/Components/Pages/StudentPages/EventRanking.razor b/WebApp/Components/Features/Students/EventRanking.razor similarity index 100% rename from WebApp/Components/Pages/StudentPages/EventRanking.razor rename to WebApp/Components/Features/Students/EventRanking.razor diff --git a/WebApp/Components/Pages/StudentPages/EventRankingEdit.razor b/WebApp/Components/Features/Students/EventRankingEdit.razor similarity index 100% rename from WebApp/Components/Pages/StudentPages/EventRankingEdit.razor rename to WebApp/Components/Features/Students/EventRankingEdit.razor diff --git a/WebApp/Components/Pages/StudentPages/Index.razor b/WebApp/Components/Features/Students/Index.razor similarity index 100% rename from WebApp/Components/Pages/StudentPages/Index.razor rename to WebApp/Components/Features/Students/Index.razor diff --git a/WebApp/Components/Pages/TeamPages/Assignment.razor b/WebApp/Components/Features/Teams/Assignment.razor similarity index 100% rename from WebApp/Components/Pages/TeamPages/Assignment.razor rename to WebApp/Components/Features/Teams/Assignment.razor diff --git a/WebApp/Components/Shared/TeamCaptainSelector.razor b/WebApp/Components/Features/Teams/Components/TeamCaptainSelector.razor similarity index 100% rename from WebApp/Components/Shared/TeamCaptainSelector.razor rename to WebApp/Components/Features/Teams/Components/TeamCaptainSelector.razor diff --git a/WebApp/Components/Shared/TeamSelector.razor b/WebApp/Components/Features/Teams/Components/TeamSelector.razor similarity index 100% rename from WebApp/Components/Shared/TeamSelector.razor rename to WebApp/Components/Features/Teams/Components/TeamSelector.razor diff --git a/WebApp/Components/Shared/TeamStudents.razor b/WebApp/Components/Features/Teams/Components/TeamStudents.razor similarity index 100% rename from WebApp/Components/Shared/TeamStudents.razor rename to WebApp/Components/Features/Teams/Components/TeamStudents.razor diff --git a/WebApp/Components/Shared/TeamToggleSelector.razor b/WebApp/Components/Features/Teams/Components/TeamToggleSelector.razor similarity index 100% rename from WebApp/Components/Shared/TeamToggleSelector.razor rename to WebApp/Components/Features/Teams/Components/TeamToggleSelector.razor diff --git a/WebApp/Components/Pages/TeamPages/Create.razor b/WebApp/Components/Features/Teams/Create.razor similarity index 100% rename from WebApp/Components/Pages/TeamPages/Create.razor rename to WebApp/Components/Features/Teams/Create.razor diff --git a/WebApp/Components/Pages/TeamPages/Edit.razor b/WebApp/Components/Features/Teams/Edit.razor similarity index 100% rename from WebApp/Components/Pages/TeamPages/Edit.razor rename to WebApp/Components/Features/Teams/Edit.razor diff --git a/WebApp/Components/Pages/TeamPages/Handout.razor b/WebApp/Components/Features/Teams/Handout.razor similarity index 100% rename from WebApp/Components/Pages/TeamPages/Handout.razor rename to WebApp/Components/Features/Teams/Handout.razor diff --git a/WebApp/Components/Pages/TeamPages/Index.razor b/WebApp/Components/Features/Teams/Index.razor similarity index 100% rename from WebApp/Components/Pages/TeamPages/Index.razor rename to WebApp/Components/Features/Teams/Index.razor diff --git a/WebApp/Components/Pages/TeamPages/Printout.razor b/WebApp/Components/Features/Teams/Printout.razor similarity index 100% rename from WebApp/Components/Pages/TeamPages/Printout.razor rename to WebApp/Components/Features/Teams/Printout.razor diff --git a/WebApp/Components/Routes.razor b/WebApp/Components/Routes.razor index 7bcb103..14137c2 100644 --- a/WebApp/Components/Routes.razor +++ b/WebApp/Components/Routes.razor @@ -1,5 +1,4 @@ -@using WebApp.Components.Layout -@inject NavigationManager navigationManager +@inject NavigationManager navigationManager diff --git a/WebApp/Components/Shared/AppErrorBoundary.razor b/WebApp/Components/Shared/Components/AppErrorBoundary.razor similarity index 100% rename from WebApp/Components/Shared/AppErrorBoundary.razor rename to WebApp/Components/Shared/Components/AppErrorBoundary.razor diff --git a/WebApp/Components/Shared/CrudActions.razor b/WebApp/Components/Shared/Components/CrudActions.razor similarity index 100% rename from WebApp/Components/Shared/CrudActions.razor rename to WebApp/Components/Shared/Components/CrudActions.razor diff --git a/WebApp/Components/Layout/CustomThemes.cs b/WebApp/Components/Shared/Layout/CustomThemes.cs similarity index 99% rename from WebApp/Components/Layout/CustomThemes.cs rename to WebApp/Components/Shared/Layout/CustomThemes.cs index bcfef38..3b24028 100644 --- a/WebApp/Components/Layout/CustomThemes.cs +++ b/WebApp/Components/Shared/Layout/CustomThemes.cs @@ -1,6 +1,6 @@ using MudBlazor; -namespace WebApp.Components.Layout +namespace WebApp.Components.Shared.Layout { public static class CustomThemes { diff --git a/WebApp/Components/Layout/EmptyLayout.razor b/WebApp/Components/Shared/Layout/EmptyLayout.razor similarity index 100% rename from WebApp/Components/Layout/EmptyLayout.razor rename to WebApp/Components/Shared/Layout/EmptyLayout.razor diff --git a/WebApp/Components/Layout/MainLayout.razor b/WebApp/Components/Shared/Layout/MainLayout.razor similarity index 100% rename from WebApp/Components/Layout/MainLayout.razor rename to WebApp/Components/Shared/Layout/MainLayout.razor diff --git a/WebApp/Components/Layout/MainLayout.razor.css b/WebApp/Components/Shared/Layout/MainLayout.razor.css similarity index 100% rename from WebApp/Components/Layout/MainLayout.razor.css rename to WebApp/Components/Shared/Layout/MainLayout.razor.css diff --git a/WebApp/Components/Layout/NavMenu.razor b/WebApp/Components/Shared/Layout/NavMenu.razor similarity index 100% rename from WebApp/Components/Layout/NavMenu.razor rename to WebApp/Components/Shared/Layout/NavMenu.razor diff --git a/WebApp/Components/Layout/NavMenu.razor.css b/WebApp/Components/Shared/Layout/NavMenu.razor.css similarity index 100% rename from WebApp/Components/Layout/NavMenu.razor.css rename to WebApp/Components/Shared/Layout/NavMenu.razor.css diff --git a/WebApp/Components/_Imports.razor b/WebApp/Components/_Imports.razor index 836f976..dae51f2 100644 --- a/WebApp/Components/_Imports.razor +++ b/WebApp/Components/_Imports.razor @@ -10,7 +10,18 @@ @using Microsoft.JSInterop @using WebApp @using WebApp.Components +@using WebApp.Components.Pages @using WebApp.Components.Shared +@using WebApp.Components.Shared.Components +@using WebApp.Components.Shared.Layout +@using WebApp.Components.Features.Authentication +@using WebApp.Components.Features.Students +@using WebApp.Components.Features.Students.Components +@using WebApp.Components.Features.Teams +@using WebApp.Components.Features.Teams.Components +@using WebApp.Components.Features.Events +@using WebApp.Components.Features.Events.Components +@using WebApp.Components.Features.MeetingSchedule @using MudBlazor @using Core.Entities @using Data