Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

3.6KB

tracking_kits - Route and Integration Contracts

Date: 2026-03-13

Important Note

This project does not expose a conventional JSON REST API. Its primary contract surface is a set of Classic ASP controller routes that render HTML pages and process form submissions. In addition, it has file-based export/import interfaces used by batch automation.

Web Route Surface

Routing is initialized by ../App/app.config.asp, and requests are dispatched from controller ASP files under App/Controllers.

HomeController

  • Index
    • Purpose: render the switchboard/home screen
  • CreateKit
    • Purpose: list jurisdictions with pagination for kit creation
  • Search
    • Purpose: search jurisdictions by JCode, Name, address fields, and IMB values
  • Print
    • Purpose: render a sample/report PDF using Label_Report.rep

KitController

  • Index
    • Purpose: paged list of kits
  • Search
    • Purpose: search kits by ID, JobNumber, and JCode
  • SwitchBoardIndex
    • Purpose: operational list for label-based kits
  • SwitchBoardEdit
    • Purpose: edit/view a single kit switchboard entry
  • SwitchBoardPurpleEnvelopsIndex
    • Purpose: list purple-envelope kits
  • SwitchBoardPurpleEnvelopeEdit
    • Purpose: edit purple-envelope kit details, color options, and precinct color data
  • SwitchBoardPurpleEnvelopeEditPost
    • Purpose: update purple-envelope form fields and status
  • AssignKitColorPost
    • Purpose: assign a color to all labels/records in a kit
  • AssignPrecinctColorsPost
    • Purpose: assign colors at the precinct level
  • ExportTrackingLabels(id)
    • Purpose: generate and move a kit label PDF
  • ExportSnailWorksTracking(id)
    • Purpose: generate SnailWorks CSV export data

Other Controllers

The repository structure implies standard CRUD routes for:

  • JurisdictionController
  • ContactsController
  • InkjetRecordsController
  • SettingsController
  • CustomOfficeCopyJobController
  • KitLabelsController

These are primarily view-rendering and form-post endpoints.

Form / POST Contracts

Observed POST patterns:

  • Classic HTML forms
  • anti-CSRF tokens managed by HTMLSecurity.SetAntiCSRFToken
  • redirect-on-success flow with flash messaging
  • model hydration via Automapper.AutoMap(Request.Form, model)

File-Based Integration Contracts

Tracking Label PDF Export

  • Triggered from kit workflows
  • Uses Data/Label_Report.rep
  • Writes PDF output to app-local Data/ temporarily
  • Moves final artifact into ExportDirectory\<Jurisdiction>\...

SnailWorks Export

  • Generates CSV files per kit
  • Includes a header section plus detail records
  • Output path depends on configured ExportDirectory

Inkjet Export / Proof / Import Processing

  • ImportService/TrackingDataImport.vbs performs status-driven processing
  • Outputs CSV and PDF artifacts
  • Reads and writes from configured directories and network shares
  • Uses COM-based CSV/report/SFTP functionality

Security and Validation Notes

  • CSRF checks are present for important form posts.
  • Input validation exists unevenly; some validation calls are commented out in controllers.
  • There is no API schema enforcement layer; the contract is defined by forms, SQL expectations, and downstream file formats.

Change Guidance

  • Treat controller action names, form field names, status strings, and export file names as part of the operational contract.
  • Before changing an export format, inspect both web controllers and import-service scripts.
  • Before changing a status value, search for every status-dependent branch in both App/ and ImportService/.

Generated for brownfield analysis.

Powered by TurnKey Linux.