26ff8d9b4f
Set up repository with legacy .NET Framework 4.8 source (OLD/), new .NET 10 Blazor solution (NEW/), OpenSpec specifications, documentation, and project configuration.
250 lines
8.1 KiB
Markdown
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
|