8.7 KiB
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 modelsOLD/DataModel/ViewModels/Search*.cs- Search view modelsOLD/WebInterface/Controllers/SearchController.cs- Search APIOLD/WorkerService/Process/WorkProcessor.cs- Search execution
Source paths (New):
NEW/src/Core/Models/Search*.cs- Search modelsNEW/src/Web/Controllers/SearchController.cs- Search APINEW/src/Services/SearchProcessor.cs- Search execution
Typical files:
Overview.md- Search system architectureCriteria.md- Search criteria model and optionsExecution.md- How searches are processedResults.md- Result storage and retrieval
DataSync/
Documents data synchronization from enterprise systems.
Source paths (Legacy):
OLD/DataModel/Process/JDE*.cs- JDE Oracle queriesOLD/DataModel/Process/CMS*.cs- CMS Sybase queriesOLD/WorkerService/Process/UpdateProcessor.cs- Sync orchestrationOLD/WorkerService/dsconfig/*.json- Data source configs
Source paths (New):
NEW/src/JdeScoping.DataSync/Etl/- ETL pipeline frameworkNEW/src/JdeScoping.DataSync/Etl/Contracts/- Core interfacesNEW/src/JdeScoping.DataSync/Etl/Pipeline/- Pipeline and builderNEW/src/JdeScoping.DataSync/Etl/Sources/- Data sourcesNEW/src/JdeScoping.DataSync/Etl/Transformers/- Data transformersNEW/src/JdeScoping.DataSync/Etl/Destinations/- Bulk copy/merge destinationsNEW/src/JdeScoping.DataSync/Etl/Scripts/- SQL script runnersNEW/src/JdeScoping.DataSync/Etl/Results/- Execution result types
Typical files:
Overview.md- ETL pipeline architectureSources.md- Writing custom data sourcesTransformers.md- Writing custom transformersDestinations.md- Bulk destinations and scriptsConfiguration.md- Pipeline builder and DI setupTroubleshooting.md- Debugging and performanceJDE.md- JD Edwards (Oracle) integrationCMS.md- CMS (Sybase) integrationScheduling.md- Mass/daily/hourly sync schedules
Database/
Documents the SQL Server cache database.
Source paths (Legacy):
OLD/DataModel/Process/LotFinderDB*.cs- SQL Server accessOLD/DataModel/Models/- Entity definitionsOLD/Database/- SQL Server database project
Source paths (New):
NEW/src/Infrastructure/Persistence/- EF Core implementationNEW/src/Core/Models/- Entity definitions
Typical files:
Overview.md- Database architectureEntities.md- Entity documentationLocalCache.md- Cached data tablesSchema.md- Database schema reference
API/
Documents the REST API and real-time communication.
Source paths (Legacy):
OLD/WebInterface/Controllers/- MVC controllersOLD/WebInterface/Hubs/StatusHub.cs- SignalR hub
Source paths (New):
NEW/src/Web/Controllers/- API controllersNEW/src/Web/Hubs/- SignalR hubs
Typical files:
Overview.md- API architectureEndpoints.md- Endpoint referenceSignalR.md- Real-time status updatesAuthentication.md- JWT/LDAP auth
WebClient/
Documents the Blazor WASM frontend.
Source paths (New):
NEW/src/Web/Client/Pages/- Page componentsNEW/src/Web/Client/Components/- Reusable componentsNEW/src/Web/Client/Services/- Client services
Typical files:
Overview.md- Frontend architectureComponents.md- Component documentationSearchUI.md- Search interfaceState.md- State management
Export/
Documents Excel export functionality.
Source paths (Legacy):
OLD/WorkerService/Process/ExcelWriter.cs- EPPlus generationOLD/WorkerService/Templates/QueryTemplate.cs- Query templates
Source paths (New):
NEW/src/Services/ExcelExporter.cs- Excel generation
Typical files:
Overview.md- Export architectureExcel.md- Excel generation detailsTemplates.md- Export templates
Authentication/
Documents LDAP authentication.
Source paths (Legacy):
OLD/WebInterface/Controllers/AccountController.cs- Login/logoutOLD/DataModel/Config.cs- LDAP configuration
Source paths (New):
NEW/src/Infrastructure/Authentication/- Auth services
Typical files:
Overview.md- Authentication architectureLDAP.md- LDAP integration detailsConfiguration.md- Auth configuration
BackgroundServices/
Documents background processing.
Source paths (Legacy):
OLD/WorkerService/- Topshelf Windows serviceOLD/WorkerService/Process/WorkProcessor.cs- Main work loop
Source paths (New):
NEW/src/Services/- BackgroundService implementations
Typical files:
Overview.md- Background service architectureSearchProcessor.md- Search queue processingDataSyncService.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 structureWorkerService/Overview.md- Topshelf service structureDataModel/Overview.md- Commons library structureMigrationNotes.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:
- Create a new folder under
DOCUMENTATION/ - Add at minimum
Overview.md - Update this mapping table
- Update GeneratingDocs.md if new patterns emerge