No description
  • Python 50.5%
  • HTML 38.6%
  • JavaScript 9.7%
  • Shell 0.9%
  • Dockerfile 0.3%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
mholland d39db581ff
All checks were successful
Build Precast Connection Manager Image / build-image (push) Successful in 35s
Merge pull request 'Build Precast Connection Manager v0.0.3 touch PDF workflow' (#3) from feature/touch-pdf-workflow-v0.0.3 into main
Reviewed-on: #3
2026-09-19 18:25:55 +00:00
.forgejo/workflows Add Forgejo image build workflow for v0.0.2 2026-09-19 08:45:36 -05:00
demo Build Precast Connection Manager v0.0.1 workflow prototype 2026-09-19 08:33:16 -05:00
pcm Build Precast Connection Manager v0.0.3 touch PDF workflow 2026-09-19 13:25:35 -05:00
tests Build Precast Connection Manager v0.0.3 touch PDF workflow 2026-09-19 13:25:35 -05:00
.dockerignore Build Precast Connection Manager v0.0.1 workflow prototype 2026-09-19 08:33:16 -05:00
.gitignore Build Precast Connection Manager v0.0.1 workflow prototype 2026-09-19 08:33:16 -05:00
docker-compose.yml Build Precast Connection Manager v0.0.3 touch PDF workflow 2026-09-19 13:25:35 -05:00
Dockerfile Build Precast Connection Manager v0.0.1 workflow prototype 2026-09-19 08:33:16 -05:00
README.md Build Precast Connection Manager v0.0.3 touch PDF workflow 2026-09-19 13:25:35 -05:00
requirements.txt Build Precast Connection Manager v0.0.3 touch PDF workflow 2026-09-19 13:25:35 -05:00
verify-package.sh Build Precast Connection Manager v0.0.3 touch PDF workflow 2026-09-19 13:25:35 -05:00
VERSION Build Precast Connection Manager v0.0.3 touch PDF workflow 2026-09-19 13:25:35 -05:00
wsgi.py Build Precast Connection Manager v0.0.1 workflow prototype 2026-09-19 08:33:16 -05:00

Precast Connection Manager v0.0.3

First functional proof-of-concept for the field workflow and traceability model.

Design target

One active project at a time. Foremen work from independent task cards instead of a forced end-to-end sequence. The application records the custody chain behind the scenes:

Delivery -> Super Sack -> Mixer Batch -> Batch Transfer -> Grout Work Order -> Connection(s)

A background Work Order is created for each foreman-selected task from start through documentation closeout. The mixing task is the exception: one Mixing Work Order remains open for the mixing foreman for the day and carries every super sack and mixer batch used that day.

v0.0.3 update

  • Touch-first plan navigation for iPad/iPhone: one-finger pan, pinch zoom, Fit and +/- controls.
  • PDF plan-set upload; each PDF page becomes a sheet while the original PDF is preserved.
  • Drag/drop PDF upload and safe sheet removal/archive.
  • Immediate connection marking with generated IDs; draft marks can be dragged until finalized.
  • Connection Viewer can add/finalize marks; deletion remains Plan Sheets only.
  • Editable/deactivatable vendor and material catalogs.
  • Receive Material removes Truck/Load Number and Custom dropdown options; typed values are always available and configured selections win.
  • Test sack-code generator for fast POC receiving.
  • Material storage markers appear immediately on tap and include a return-to-receiving path.
  • Grout start auto-selects an owned batch.
  • Startup SQLite initialization is serialized across Gunicorn workers.
  • Footer reads VERSION dynamically.

v0.0.3 functionality

  • Per-user persistent English / Spanish UI preference.
  • Foreman, PM, Superintendent, and Admin logins. Crew members are intentionally not tracked.
  • PM/Super management of foremen and per-foreman override permission.
  • PM-configured Vendors and Materials with Custom receiving options.
  • Optional upcoming deliveries that can prefill receiving information.
  • Receive Material Work Order with preprinted super-sack QR assignment.
  • Optional post-receipt storage-location marker on a preloaded overall site-plan image.
  • One daily Mixing Work Order per mixing foreman.
  • Active super-sack ownership, multiple batches per sack, Finish Sack button, sack switching, and end-of-day Unknown handling.
  • Mixer batch component entry with every weight in pounds, including water.
  • Automatic jobsite weather snapshot at Mixing Complete: ambient temperature, relative humidity, chance of rain, and average wind speed. Weather failure records UNAVAILABLE and never blocks the foreman.
  • Batch transfer confirmation and single current batch owner.
  • Four key batch timestamps: Mixing Completed, initial transfer to installing foreman, Grout Placement Finished, and Work Order Documentation Closed.
  • Installer sees a live Batch Install Timer based on the original installation transfer time.
  • Test Batch placeholder with Pass / Fail only.
  • Image-based plan sheets with tappable circular connection IDs.
  • PM/Super plan setup for preassigned connection IDs.
  • Foreman multi-select of nearby connections.
  • Missing-connection creation directly on the plan with automatic ADD-#### IDs and PM/Super review queue.
  • Separate Prep Connections task.
  • Streamlined Grout Connection flow: Prep -> Save & Continue to Grouting / Save & Close -> Mark Placed -> later closeout documentation.
  • Work lists can be built before or after a batch is received.
  • Selected connections do not get permanent batch association until their individual grout documentation is saved.
  • Carry-forward support when a selected connection does not receive grout from the current batch.
  • Partial batch handoff after Finish Placement. The original batch-age clock is preserved.
  • A transferred batch can be used by a second foreman while the first foreman completes documentation for his own Work Order.
  • Work Order cannot close until every selected connection is documented or carried forward.
  • Connection primary statuses: Not Started, Ready, Complete, Needs Work.
  • Separate flags: On Hold, Needs Cleaning, Needs Attention.
  • Dashboard counts: Ready for Grout Prep, Ready for Grout, Needs Cleaning, On Hold, Needs Attention, and Available Super Sacks.
  • Field issue reporting using PM/Super-editable English and Spanish controlled responses.
  • Connection Viewer mirrors the drawing set and opens a connection history/timeline.
  • Batch reports with date filtering, source sack, transfers, weather, component weights, and documented connections.
  • Material Inventory, Needs Work/Hold view, Added Connection review, Override log.
  • Foreman connection corrections through 12:00 PM on the next configured project workday.
  • Completed batch corrections restricted to PM/Super/Admin and audited as Corrected.
  • Required override reason and PM/Super-visible override log.
  • Optional notes stored exactly as entered in English or Spanish; no automatic translation.

Deliberately deferred from v0.0.3

  • Photos / driver paperwork images / connection photos.
  • Real testing procedure and test-set configuration.
  • Offline synchronization.
  • Procore integration.
  • Production PostgreSQL / object-storage architecture.

Local persistence

The Docker container is disposable. Persistent mounts are separate:

  • /data -> SQLite database (precast_connection_manager.db)
  • /storage -> original PDF plan sets plus rendered plan pages now; photos/documents later

For the proof of concept, both can live on a low-latency NVMe dataset.

Environment

Copy/edit the compose file before deployment. Replace:

/mnt/YOUR_NVME_POOL/Precast_Connection_Manager/...

with the real TrueNAS dataset path.

Important environment variables:

  • PCM_SECRET_KEY
  • PCM_ADMIN_USER
  • PCM_ADMIN_PASSWORD
  • TZ

On the first startup, the app creates the configured admin account if the user table is empty.

Run

docker compose up -d --build

Open:

http://<server-ip>:8080

Weather

Weather retrieval is deliberately non-blocking. The app geocodes the configured jobsite address and requests weather data. If either request fails, the batch stores Weather Unavailable rather than asking the foreman to enter weather manually.

Suggested v0.0.3 smoke test

  1. Sign in as the first-run Admin.
  2. Set the project name, jobsite address, and project workdays.
  3. Add two or three Foremen; give one a Spanish UI preference.
  4. Add a Vendor and Material.
  5. Upload a multi-page PDF plan set from Plan Sheets (drag/drop or file picker).
  6. Open a connection sheet in Plan Sheets, tap Add Connections, place several circles, drag any draft marks as needed, then finalize them.
  7. Mark the appropriate sheet as a Site Plan and test a material storage-location tap.
  8. Receive a load and add several QR values such as GS-000001, GS-000002, and GS-000003.
  9. From a Foreman login, open Mix Batch, scan/enter GS-000001, create a batch using Dry Grout and Water weights in pounds, and transfer the batch to another Foreman.
  10. From the installing Foreman login, start Grout Connections, select several plan circles, prep one inside the grout flow, mark placed connections, finish placement, document each placed connection, carry forward any connection that did not receive grout, and close the Work Order.
  11. Return to PM/Super and review the Connection Viewer, Batch Report, Material Inventory, and traceability links.