# Component Map This document maps source code locations to their corresponding documentation folders. Use this to determine where documentation should live. ## Project Structure This is a migration project with two main code areas: ``` JdeScopingTool/ ├── OLD/ # Legacy .NET Framework 4.8 (read-only reference) ├── NEW/ # New .NET 10 solution (build target) ├── SPECS/ # OpenSpec specifications └── DOCUMENTATION/ # Project documentation ``` ## Source to Documentation Mapping ### Legacy Code (OLD/) | Source Path | Documentation Folder | |-------------|---------------------| | `OLD/WebInterface/` | `LegacyReference/WebInterface/` | | `OLD/WebInterface/Controllers/` | `LegacyReference/WebInterface/Controllers.md` | | `OLD/WebInterface/Hubs/` | `LegacyReference/WebInterface/SignalR.md` | | `OLD/WorkerService/` | `LegacyReference/WorkerService/` | | `OLD/WorkerService/Process/` | `LegacyReference/WorkerService/Processing.md` | | `OLD/DataModel/` (Commons) | `LegacyReference/DataModel/` | | `OLD/DataModel/Process/JDE*.cs` | `DataSync/JDE.md` | | `OLD/DataModel/Process/CMS*.cs` | `DataSync/CMS.md` | | `OLD/DataModel/Process/LotFinderDB*.cs` | `Database/LocalCache.md` | | `OLD/DataModel/Models/` | `Database/Entities.md` | | `OLD/Database/` | `Database/Schema.md` | ### New Code (NEW/) | Source Path | Documentation Folder | |-------------|---------------------| | `NEW/src/` | Component-specific folders | | `NEW/src/Web/Controllers/` | `API/Endpoints.md` | | `NEW/src/Web/Hubs/` | `API/SignalR.md` | | `NEW/src/Web/Client/` (Blazor) | `WebClient/` | | `NEW/src/Services/` | `BackgroundServices/` | | `NEW/src/Core/Models/` | `Database/Entities.md` | | `NEW/src/Core/Interfaces/` | Document in implementing component | | `NEW/src/Infrastructure/` | Component-specific folders | | `NEW/appsettings*.json` | `Configuration/` | | `NEW/tests/` | Document in corresponding component | ## Documentation Folder Structure ``` DOCUMENTATION/ ├── Instructions/ # This folder - documentation guidelines ├── GettingStarted/ # Onboarding, prerequisites, architecture overview ├── LegacyReference/ # Documentation of the OLD codebase for migration reference │ ├── WebInterface/ # ASP.NET MVC web application │ ├── WorkerService/ # Windows service (Topshelf) │ └── DataModel/ # Shared library (Commons.csproj) ├── Search/ # Search functionality ├── DataSync/ # JDE/CMS data synchronization ├── Database/ # SQL Server cache, entities, schema ├── API/ # REST endpoints, SignalR ├── WebClient/ # Blazor WASM UI ├── Export/ # Excel generation ├── Authentication/ # LDAP authentication ├── BackgroundServices/ # Background processing ├── Configuration/ # appsettings, connection strings └── Operations/ # Deployment, monitoring ``` ## Component Details ### Search/ Documents the search functionality. **Source paths (Legacy):** - `OLD/DataModel/Models/Search*.cs` - Search models - `OLD/DataModel/ViewModels/Search*.cs` - Search view models - `OLD/WebInterface/Controllers/SearchController.cs` - Search API - `OLD/WorkerService/Process/WorkProcessor.cs` - Search execution **Source paths (New):** - `NEW/src/Core/Models/Search*.cs` - Search models - `NEW/src/Web/Controllers/SearchController.cs` - Search API - `NEW/src/Services/SearchProcessor.cs` - Search execution **Typical files:** - `Overview.md` - Search system architecture - `Criteria.md` - Search criteria model and options - `Execution.md` - How searches are processed - `Results.md` - Result storage and retrieval ### DataSync/ Documents data synchronization from enterprise systems. **Source paths (Legacy):** - `OLD/DataModel/Process/JDE*.cs` - JDE Oracle queries - `OLD/DataModel/Process/CMS*.cs` - CMS Sybase queries - `OLD/WorkerService/Process/UpdateProcessor.cs` - Sync orchestration - `OLD/WorkerService/dsconfig/*.json` - Data source configs **Source paths (New):** - `NEW/src/JdeScoping.DataSync/Etl/` - ETL pipeline framework - `NEW/src/JdeScoping.DataSync/Etl/Contracts/` - Core interfaces - `NEW/src/JdeScoping.DataSync/Etl/Pipeline/` - Pipeline and builder - `NEW/src/JdeScoping.DataSync/Etl/Sources/` - Data sources - `NEW/src/JdeScoping.DataSync/Etl/Transformers/` - Data transformers - `NEW/src/JdeScoping.DataSync/Etl/Destinations/` - Bulk copy/merge destinations - `NEW/src/JdeScoping.DataSync/Etl/Scripts/` - SQL script runners - `NEW/src/JdeScoping.DataSync/Etl/Results/` - Execution result types **Typical files:** - `Overview.md` - ETL pipeline architecture - `Sources.md` - Writing custom data sources - `Transformers.md` - Writing custom transformers - `Destinations.md` - Bulk destinations and scripts - `Configuration.md` - Pipeline builder and DI setup - `Troubleshooting.md` - Debugging and performance - `JDE.md` - JD Edwards (Oracle) integration - `CMS.md` - CMS (Sybase) integration - `Scheduling.md` - Mass/daily/hourly sync schedules ### Database/ Documents the SQL Server cache database. **Source paths (Legacy):** - `OLD/DataModel/Process/LotFinderDB*.cs` - SQL Server access - `OLD/DataModel/Models/` - Entity definitions - `OLD/Database/` - SQL Server database project **Source paths (New):** - `NEW/src/Infrastructure/Persistence/` - EF Core implementation - `NEW/src/Core/Models/` - Entity definitions **Typical files:** - `Overview.md` - Database architecture - `Entities.md` - Entity documentation - `LocalCache.md` - Cached data tables - `Schema.md` - Database schema reference ### API/ Documents the REST API and real-time communication. **Source paths (Legacy):** - `OLD/WebInterface/Controllers/` - MVC controllers - `OLD/WebInterface/Hubs/StatusHub.cs` - SignalR hub **Source paths (New):** - `NEW/src/Web/Controllers/` - API controllers - `NEW/src/Web/Hubs/` - SignalR hubs **Typical files:** - `Overview.md` - API architecture - `Endpoints.md` - Endpoint reference - `SignalR.md` - Real-time status updates - `Authentication.md` - JWT/LDAP auth ### WebClient/ Documents the Blazor WASM frontend. **Source paths (New):** - `NEW/src/Web/Client/Pages/` - Page components - `NEW/src/Web/Client/Components/` - Reusable components - `NEW/src/Web/Client/Services/` - Client services **Typical files:** - `Overview.md` - Frontend architecture - `Components.md` - Component documentation - `SearchUI.md` - Search interface - `State.md` - State management ### Export/ Documents Excel export functionality. **Source paths (Legacy):** - `OLD/WorkerService/Process/ExcelWriter.cs` - EPPlus generation - `OLD/WorkerService/Templates/QueryTemplate.cs` - Query templates **Source paths (New):** - `NEW/src/Services/ExcelExporter.cs` - Excel generation **Typical files:** - `Overview.md` - Export architecture - `Excel.md` - Excel generation details - `Templates.md` - Export templates ### Authentication/ Documents LDAP authentication. **Source paths (Legacy):** - `OLD/WebInterface/Controllers/AccountController.cs` - Login/logout - `OLD/DataModel/Config.cs` - LDAP configuration **Source paths (New):** - `NEW/src/Infrastructure/Authentication/` - Auth services **Typical files:** - `Overview.md` - Authentication architecture - `LDAP.md` - LDAP integration details - `Configuration.md` - Auth configuration ### BackgroundServices/ Documents background processing. **Source paths (Legacy):** - `OLD/WorkerService/` - Topshelf Windows service - `OLD/WorkerService/Process/WorkProcessor.cs` - Main work loop **Source paths (New):** - `NEW/src/Services/` - BackgroundService implementations **Typical files:** - `Overview.md` - Background service architecture - `SearchProcessor.md` - Search queue processing - `DataSyncService.md` - Data synchronization service ### LegacyReference/ Documents the legacy codebase for migration reference. **Source paths:** - All files under `OLD/` **Typical files:** - `WebInterface/Overview.md` - ASP.NET MVC structure - `WorkerService/Overview.md` - Topshelf service structure - `DataModel/Overview.md` - Commons library structure - `MigrationNotes.md` - Patterns to preserve/change ## Ambiguous Cases When code spans multiple components, use these guidelines: | Code Type | Document In | |-----------|-------------| | SignalR hubs | `API/SignalR.md` | | SignalR clients | `WebClient/SignalR.md` | | Shared DTOs | Component that "owns" the concept | | Cross-cutting services | Most relevant component | | Legacy patterns | `LegacyReference/` with cross-references | ## Adding New Components When adding a new system component: 1. Create a new folder under `DOCUMENTATION/` 2. Add at minimum `Overview.md` 3. Update this mapping table 4. Update [GeneratingDocs.md](./GeneratingDocs.md) if new patterns emerge