# tracking_kits - Project Overview

**Date:** 2026-03-13
**Type:** Web application
**Architecture:** Classic ASP MVC-style monolith

## Executive Summary

This project manages operational workflows for election mail tracking kits. Users browse jurisdictions, create tracking kits, print or export proof artifacts, manage purple envelope and custom office copy jobs, generate inkjet-ready files, and produce export files for online mail tracking. The app is tightly coupled to Windows infrastructure, IIS, COM/ActiveX components, and an Access database.

## Project Classification

- **Repository Type:** Monolith
- **Project Type:** Classic ASP server-rendered web app
- **Primary Languages:** VBScript, ASP, SQL, VBScript automation
- **Architecture Pattern:** Controller + View + Repository over shared MVC helper libraries

## Technology Stack Summary

| Category | Technology | Notes |
| --- | --- | --- |
| Web runtime | IIS + Classic ASP | `index.asp` redirects into controller ASP files |
| Server language | VBScript | `Option Explicit` is used in application files |
| MVC framework | Custom `/MVC` helpers | Routing, form cache, HTML security, flash, automapper |
| Data access | ADO via `lib.DAL.asp` | Repository classes issue SQL directly |
| Database | Access MDB via Jet/ACE | Sample MDB files exist in `Data/`; migrations are ASP/SQL scripts |
| Reporting | ReportMan ActiveX | Used for proofs and label PDFs |
| PDF/export | Debenu PDF Library ActiveX | Used by import/export automation |
| External integration | Chilkat COM components | FTP/SFTP and CSV-related utilities appear in automation/config |
| Testing | ASPUnit | Test runner is served through IIS |
| Automation | VBScript and PowerShell | Import service and helper scripts live outside the web request path |

## Key Features

- Jurisdiction browsing and search by `JCode`, `Name`, address, and IMB-related fields
- Tracking kit creation and maintenance
- Switchboard views for tracking kits and purple envelope kits
- Label and proof generation through report templates in `Data/*.rep`
- Inkjet record management and color assignment
- SnailWorks export generation
- Import-service automation for processing tracking data outside the web app

## Architecture Highlights

- Requests enter through controller `.asp` files directly, not a centralized front controller.
- Shared includes in [../App/include_all.asp](../App/include_all.asp) act as the real application bootstrap.
- Repositories own SQL and data mapping responsibilities.
- Views are server-side `.asp` templates rendered from controller methods.
- The runtime assumes file-system side effects: creating folders, writing PDFs/CSVs, and moving export files.
- The app has environment-specific behavior embedded in code, especially in [../App/app.config.asp](../App/app.config.asp) and [../ImportService/TrackingDataImport.vbs](../ImportService/TrackingDataImport.vbs).

## Development Overview

### Prerequisites

- Windows + IIS + Classic ASP
- Access/Jet or ACE provider
- Registered COM dependencies for reporting/export features

### Getting Started

The repo can be edited anywhere, but meaningful runtime verification requires IIS on Windows. The Linux workspace is sufficient for code review and documentation generation, not end-to-end proof/export execution.

### Key Commands

- **Run app:** Serve repo root from IIS
- **Run tests:** Open `Tests/Test_All.asp`
- **Run import service manually:** `cscript ImportService/TrackingDataImport.vbs`

## Repository Structure

- `App/` contains the application logic, views, and repositories.
- `MVC/` contains the shared Classic ASP framework code.
- `Data/` contains migrations, report templates, and sample assets.
- `ImportService/` contains out-of-band processing logic.
- `Tests/` contains helper-library tests via ASPUnit.
- `Dependancies/` holds external binaries and COM-related artifacts needed in production-like environments.

## Documentation Map

- [index.md](./index.md) - master documentation index
- [architecture.md](./architecture.md) - detailed technical architecture
- [source-tree-analysis.md](./source-tree-analysis.md) - directory structure and entry points
- [development-guide.md](./development-guide.md) - local development workflow

---

_Generated for brownfield analysis._
