diff --git a/README.md b/README.md new file mode 100644 index 0000000..5ec4b6f --- /dev/null +++ b/README.md @@ -0,0 +1,114 @@ +# tracking_kits + +Classic ASP (VBScript) web app for managing **Mail Tracking Kits**. + +At a high level, this app helps you: +- Browse/search **Jurisdictions** (by JCode, name, address, IMB fields) +- Create/print tracking kits / labels tied to a jurisdiction +- View existing kits and related job types (Purple Envelope jobs, Custom Office Copies) +- Run an import service that pulls tracking export files into the database + +> Entry point: `index.asp` redirects into the MVC controller: `App/Controllers/Home/HomeController.asp` + +--- + +## How the app works + +### Architecture +- **Classic ASP + MVC helpers**: The app uses a lightweight MVC framework under `/MVC`. +- **Controllers/Views/ViewModels** live under `/App`. +- **Repositories** under `/App/DomainModels` handle database access. +- `App/include_all.asp` loads MVC + DAL + repositories. + +### Key routes / screens +- `/` → `index.asp` → redirects to `App/Controllers/Home/HomeController.asp` +- **Switchboard (home)**: `HomeController.Index` + - Links to: + - Create Kit + - View Tracking Kits + - View Purple Envelope Jobs + - Custom Office Copies + +- **Create Kit**: `HomeController.CreateKit` + - Paged list of jurisdictions + - Search box (posts to `HomeController.Search`) + - Each row has an action button that routes to `KitController.createTrackingKit` for the selected `JCode` + +- **Search**: `HomeController.Search` + - Searches across jurisdiction fields: `JCode`, `Name`, `Mailing_Address`, `CSZ`, `IMB`, `IMB_Digits` + +- **Print (label report demo)**: `HomeController.Print` + - Uses ReportMan ActiveX to render a `.rep` report and save to a PDF. + +--- + +## Data + dependencies + +### Database +- Data access is via `App/DAL/lib.DAL.asp` (ADO) + repositories in `App/DomainModels/*Repository.asp`. + +Key repositories referenced in `App/include_all.asp`: +- `JurisdictionRepository` +- `KitRepository` +- `KitLabelsRepository` +- `InkjetRecordsRepository` +- `SettingsRepository` +- `ContactsRepository` +- `SnailWorksRepository` +- `CustomOfficeCopyJobRepository` +- `ColorsRepository` + +### Config +- `App/app.config.asp` + - Initializes routes with `Routes.Initialize "/App/"` + - Sets `siteTitle = "Mail Tracking Kits"` + - Sets `ExportDirectory` based on the `dev` flag + +### External/ActiveX dependencies +This repo includes Windows/ActiveX dependencies under `/Dependancies` (examples): +- Chilkat ActiveX DLLs (license/unlock in `App/app.config.asp`) +- ReportMan OCX +- Debenu PDF Library ActiveX +- NSSM + PsExec utilities + +--- + +## Running locally (IIS) + +### Requirements +- Windows + IIS with Classic ASP enabled +- The ActiveX dependencies must be installed/registered if you use printing/export features + +### IIS setup +- Point the IIS site root at the repo root (so `index.asp` is the default document). +- Ensure Classic ASP is enabled. + +The repo includes a basic `web.config` that sets `index.asp` as the default document. + +--- + +## Import service + +There is an import script/service under: +- `ImportService/TrackingDataImport.vbs` + +And a helper installer: +- `InstallService.vbs` + +These are intended to run on Windows to import tracking export data from the configured `ExportDirectory`. + +--- + +## Dev tooling + +### Docker (Codex dev container) +This repo includes a `docker-compose.yml` and `Dockerfile` meant for a Codex development container. +It does **not** run IIS inside Docker; it’s a dev environment for working on the code. + +--- + +## Where to look next +- UI: `App/Views/Home/*` +- Controller logic: `App/Controllers/Home/HomeController.asp` +- Jurisdiction data access: `App/DomainModels/JurisdictionRepository.asp` +- Printing/report templates: `/Data/*.rep`