# tracking_kits - Component Inventory

**Date:** 2026-03-13

## Controllers

### Home

- [../App/Controllers/Home/HomeController.asp](../App/Controllers/Home/HomeController.asp)
- Responsibilities:
  - Render the switchboard
  - Search jurisdictions
  - Start the create-kit flow
  - Demo PDF/report generation

### Kit

- [../App/Controllers/Kit/KitController.asp](../App/Controllers/Kit/KitController.asp)
- Responsibilities:
  - Kit switchboard pages
  - Purple-envelope operational screens
  - Kit edit/update flows
  - Label PDF export
  - SnailWorks export generation
  - Color assignment and related POST actions

### Other Domain Controllers

- `JurisdictionController`
- `InkjetRecordsController`
- `ContactsController`
- `SettingsController`
- `CustomOfficeCopyJobController`
- `KitLabelsController`

These appear to follow the same CRUD-oriented MVC pattern used elsewhere in the app.

## Repository Components

### Core Repositories

- `JurisdictionRepository`
- `KitRepository`
- `KitLabelsRepository`
- `InkjetRecordsRepository`
- `SettingsRepository`
- `ContactsRepository`
- `SnailWorksRepository`
- `CustomOfficeCopyJobRepository`
- `ColorsRepository`

### Shared Characteristics

- Model classes and repository classes live in the same file.
- SQL is embedded directly in repository methods.
- Pagination, search, and mapping are implemented per repository.
- Repositories are exposed through singleton-style factory functions.

## View Models

View models under `App/ViewModels/` shape data for server-side rendering. Notable classes are used for:

- paged index screens
- switchboard screens
- per-domain CRUD forms
- purple envelope and inkjet workflows

## UI Surfaces

### Shared Layout

- [../App/Views/Shared/layout.header.asp](../App/Views/Shared/layout.header.asp)
- [../App/Views/Shared/layout.footer.asp](../App/Views/Shared/layout.footer.asp)

### Home Screens

- switchboard index
- create kit
- create tracking kit

### Kit Screens

- kit CRUD pages
- switchboard list/edit pages
- purple envelope switchboard list/edit pages

### Other Screens

- jurisdiction CRUD/import pages
- contacts CRUD pages
- inkjet record CRUD pages
- settings CRUD pages
- custom office copy job pages

## Shared Framework Components

The `MVC/` directory provides reusable infrastructure rather than business-domain components:

- routing and dispatch
- automapper
- HTML helpers
- anti-CSRF/security helpers
- flash messages and form cache
- collections and enumerable helpers
- upload, strings, validations, JSON support

## Automation / Batch Components

### Import Service

- [../ImportService/TrackingDataImport.vbs](../ImportService/TrackingDataImport.vbs)
- Handles polling/status-driven operations outside the web request lifecycle.

### Supporting Scripts

- `InstallService.vbs`
- `Data/Update_Addresses.ps1`
- `App/ScaffoldRepo.vbs`

## Reporting Assets

- `Data/Label_Report.rep`
- `Data/Proofs.rep`
- `Data/Office-Copy-Proof.rep`
- `Data/Custom Office Copies Proof.rep`

These files are operational assets, not just documentation or samples. Controller and script behavior depends on them.

## Reuse Guidance

- New CRUD-style features should follow the existing controller/view/repository/view-model grouping pattern.
- Reuse shared layout includes and MVC helpers instead of inventing alternate rendering patterns.
- Reuse repository paging/search conventions if extending list screens.
- Reuse migration numbering conventions for schema changes.

---

_Generated for brownfield analysis._
