Files
2026-01-03 15:42:34 -05:00

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

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 if new patterns emerge