Releases: h3ylis/dct-os
DCT-OS 1.2.2 - grid totals, consistent dashboard bars, richer sample
A UI/UX polish release.
Changed
- Totals moved into the grids. The summary numbers that used to sit in a bar above the Dockets and Cost Codes grids are now a total row pinned to the bottom of each grid (Dockets, Cost Codes, Purchase Orders) — like a spreadsheet's footer total — and it totals whatever rows are currently shown, so filtering a column or drilling in from the Dashboard updates it live. The Dashboard stays the home for the whole-project headline; the grid total answers "what's this view worth?". The Resources grid has no total (you can't meaningfully sum unit rates).
- Consistent dashboard bars. The PO drawdown bars now use the same green / amber / red health bands as the cost-code burn-down (green under 80% drawn, amber to 100%, red overdrawn) instead of a separate steel-blue scheme.
- Richer sample project. The bundled Warrawong Road sample is now a realistic mid-flight job — a proper spend-over-time curve, a mix of healthy / amber / over cost codes, and some claimed work — so the dashboard shows the app at its best the first time you open it.
Upgrade: pip install -U dct-os
v1.2.1 — UX polish
DCT-OS 1.2.1 — UX polish
A round of usability fixes on top of 1.2.0.
Added
- Projects open themselves. A single project is selected automatically on launch; with several, the last one you used reopens.
Changed
- Whole dollars, no cents. Amounts and totals show as whole dollars (unit rates keep their cents).
- Calmer tooltips. Hints wait for a deliberate hover before appearing.
- Unassigning a scan keeps the docket. Detaching a scan removes only the file link — the docket number, supplier, and lines stay. Use Delete to discard a whole docket.
Fixed
- Dashboard filters replace instead of stacking. Clicking another dashboard item now replaces the previous filter instead of silently intersecting. The active filter shows as a compact amber pill (funnel + value + an inline ✕), and it clears itself when you remove the filter by hand or switch projects.
Upgrade: pip install -U dct-os
DCT-OS 1.2.0 - project dashboard, folder-browse scans, Windows installer
The biggest release since 1.0: a live project Dashboard, a reworked scan / folder-browse flow that keeps each scan tied to its docket, and a double-click Windows installer.
Added
- Scans stay with their dockets. DCT-OS now remembers where a scanned file lives on disk and shows it again whenever you reopen the docket to edit it (a new
/scans/<id>route). The file stays exactly where it is — nothing is copied into the database or a hidden store, so there's no bloat and no second copy to keep in sync. - Folder browse, reworked. Click Choose folder… and DCT-OS opens a native folder picker, lists the scans inside, and remembers exactly where each one lives — so reopening a docket shows its original scan, verified by fingerprint, with no file copies and nothing typed. Each scan stays tied to the one docket it was entered against (the last scan no longer follows you onto every new docket); entered scans drop off the list; and an Unassign scan button returns one to the queue. On a headless/hosted box it falls back to typing the folder path.
- Dashboard — the whole project at a glance. A new Dashboard pill opens a live overview built entirely from that project's own data: headline tiles (budget, spent, remaining, dockets, suppliers), cumulative spend-over-time against the budget line, a cost-by-work-order donut, cost-code burn-down bars, PO drawdown, top suppliers by spend, and a claimed-vs-to-claim cash-flow bar.
- Drill-down everywhere on the dashboard. Click any bar, slice, supplier, or tile to jump straight to the dockets or screen behind it.
- Packaged Windows installer. A double-click
DCT-OS-Setup.exe(PyInstaller + Inno Setup) installs DCT-OS with no command line and no Python required: it bundles everything, sets up auto-start on login, and opens the app in your browser. Build recipe ininstaller/.
Changed
dct-os installis now packaging-aware (works from the bundled.exe), creates its startup entry without flashing a console window, and starts silently on login.- In the packaged build,
dct-os upgradepoints to the installer download instead of attempting a pip upgrade it cannot perform. - Reports build themselves. Pick a supplier and the report appears immediately — no more "Generate" button. Narrowing the date range, switching to By-Docket mode, or picking individual dockets re-runs it live.
- Consistent export. The Reports CSV/Excel export now lives under a Data ▾ menu, matching the Dockets and Resources screens.
Fixed
- No phone-home, for real. Removed an undocumented network call in
dct-os upgradethat POSTed local usage counts (projects, dockets, resources, work orders, cost codes, purchase orders) to a remote endpoint. Upgrade still writes the same anonymous counts tologs/upgrades.jsonlon your own machine, and the opt-in self-hosted log reporting (DCT_OS_LOG_URL) is unchanged. - Rolled up the 1.0.1 hotfixes (docket save double-submit guard, line-quantity validation, selection-aware docket export) and the 1.0.2 folder-browse auto-advance regression fix.
- The Reports export menu no longer appears when a filter returns no dockets.
Upgrade: pip install -U dct-os
v1.0.2 — folder-browse auto-advance fix
DCT-OS 1.0.2 — folder-browse auto-advance fix
A small but real fix for anyone entering dockets from a folder of scans.
Fixed
- Folder-browse auto-advance works again. Saving a docket while browsing a folder of scans now correctly advances to the next pending scan. A regression in 1.0.1 read the dialog's success message after the dialog had been torn down, which threw and — swallowed by the save handler's error path — silently skipped both the auto-advance and the green "Saved" toast on every dialog save. Saves still persisted; you just didn't see the confirmation or get moved to the next scan. The message is now captured before the dialog closes.
Upgrade: pip install -U dct-os
DCT-OS v1.0.1
A small but important bug-fix release.
Fixed
- No more duplicate dockets from an impatient double-click. Saving any dialog is guarded against a second submit while the first is still in flight, and the Save button disables itself while saving. One entry screen saves exactly once, even on a slow connection.
- Clearer validation. A docket line with a resource or description but no quantity is now blocked with a clear message instead of silently saving a zero-value line. The dialog stays open so you can fix it.
- Docket export honours your selection. Exporting to CSV/Excel from the Dockets screen now exports only the dockets shown by your column filters, not the whole project.
Upgrade:
pip install --upgrade dct-os
DCT-OS v1.0.0
First full release of DCT-OS — daily cost tracking for civil engineering.
Highlights since 0.3.0
- Rate feedback loop — rates in the Docket Summary Report are editable at invoice-review time; confirm the invoice rate and your resource rates stay current.
- Quantities-only docket entry — dockets carry quantities; rates come from the resource and are confirmed at review.
- Item + Description on resources — a short Item name plus an optional detailed Description to match docket and invoice wording.
- Faster entry — quick-add a resource from a docket line, supplier autocomplete, PO filtering by supplier, WO/CC carry-down, and Alt+Shift shortcuts.
- Suppliers source-of-truth — a quiet reference table keeps supplier names consistent.
- Backups (one-click + automatic rotating), Excel export, a security policy with scanning, and a CLA for contributors.
Install or upgrade:
pip install --upgrade dct-os
Runs on Windows, macOS, and Linux. Free for internal use under BSL 1.1.
v0.1.0 - Initial Public Release
DCT-OS v0.1.0
Daily cost tracking, done right.
The first public release of DCT-OS -- a cost tracking platform built for civil engineering teams who need to track daily costs without fighting enterprise software.
Highlights
- Three-axis cost model: Work Orders (client scope), Cost Codes (internal budget), Purchase Orders (financial commitment with real-time drawdown)
- Docket entry: Header + lines model with cascading WO/CC dropdowns, resource auto-fill, and side-by-side source document viewer
- Copy docket: One-click duplication for recurring daily plant/labour entries
- Source fingerprinting: SHA-256 hash detection warns when a document has already been entered
- Docket summary report: Supplier-based reporting with category grouping, CSV export, and claim tagging
- Self-hosted: Flask + SQLite, zero external dependencies, runs anywhere Python does
- 41 automated tests: Full API coverage
Quick Start
Clone, install, run:
git clone https://github.com/h3ylis/dct-os.git
cd dct-os
pip install -e .
flask --app dct_os.app run --port 5000
Demo data loads on first run. Set DCT_NO_SEED=1 for a blank database.
Licence
Business Source License 1.1 -- free for internal use, commercial licence required for hosted/resale. Converts to Apache 2.0 after four years.