Files
jdescopingtool/DOCUMENTATION/Instructions/ComponentMap.md
T
Joseph Doherty 26ff8d9b4f Initial commit: JDE Scoping Tool migration project
Set up repository with legacy .NET Framework 4.8 source (OLD/),
new .NET 10 Blazor solution (NEW/), OpenSpec specifications,
documentation, and project configuration.
2026-01-02 07:43:29 -05:00

250 lines
8.1 KiB
Markdown

# 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/Infrastructure/DataSync/` - Data sync services
- `NEW/src/Infrastructure/DataSync/JDE/` - JDE adapter
- `NEW/src/Infrastructure/DataSync/CMS/` - CMS adapter
**Typical files:**
- `Overview.md` - Data sync architecture
- `JDE.md` - JD Edwards (Oracle) integration
- `CMS.md` - CMS (Sybase) integration
- `Scheduling.md` - Mass/daily/hourly sync schedules
- `Configuration.md` - Data source configuration
### 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