Daesin Logistics Dispatch Operations Ledger
Sole owner of planning, frontend, backend, deployment, and operations
2026-01-01 — present
A current-day dispatch ledger for route, vehicle, and statistics views, with singleton collection ownership and a fixed browser data boundary
Verified outcomes
Current-day collection
Current date · Mon–Sat 06:00–20:00 · 15 scheduled slots
Morning and later updates rechecked
Before: Previous day before 14:00
Replica duplication
15 singleton slots
Singleton restored
Before: 15 slots per replica
Browser data boundary
Vehicle details public · internal IDs and credential URL excluded
Fixed public route DTO
Before: Source and internal fields not separated
← Scroll horizontally to view the scenario →
Problem Solving
Why — current-day source data was already available in the morning, but a pre-14:00 previous-day rule skipped it
How — fixed the default collection date to the current date and made the singleton KST scheduler recheck it in 15 scheduled hourly slots from Mon–Sat 06:00–20:00
Result — subsequent runs can capture morning data and later source changes without maintaining static date or row-count claims
← Scroll horizontally to view the scenario →
Why — each web replica started a scheduler, duplicating the same collection job
How — moved collection responsibility out of web processes into one singleton KST scheduler
Result — reduced per-replica 15-slot schedules to one singleton's 15 slots, excluding the one startup sync
← Scroll horizontally to view the scenario →
Why — source fields needed by the operational UI had to remain useful while internal and credential-bearing fields stayed blocked
How — used a method/path allowlist, required-field validation, a fixed output projection, and source-URL contracts to pass only operational UI fields while excluding internal IDs, unknown fields, and the credential-bearing tracking URL
Result — verified the fixed output projection and source-URL allowlist together with redirect, payload, and deployment regression boundaries
← Scroll horizontally to view the scenario →
System architecture and operating boundary
Collection independently rechecks the current date on each scheduled run and sends it through the crawler into SQLite. Queries project public fields in the public route DTO branch inside the Next.js proxy before passing through Traefik and the active Express slot. Authenticated routes pass separately, and the inactive slot must pass health checks before switching.
← Scroll horizontally to view the collection, query, and deployment flows →
Operating limits
Claim → public evidence
Each claim links directly to public code, tests, or CI rather than only to a repository home page.
Current-date default
Does morning collection select the current date?
KST singleton schedule
When and in which timezone does it run?
Public route DTO boundary
Which fields and routes are allowed or blocked?
BE clean CI run
Did the backend repository pass a clean CI run?