Track your construction
  • TypeScript 88.2%
  • CSS 4%
  • Shell 3.4%
  • Go 1.3%
  • JavaScript 0.8%
  • Other 2.3%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Kwila Dev Bot 6d5f9d1d8a refactor(frontend): introduce data store injection boundary (#16)
## Summary
- introduce a domain-facing `DataStore` interface and Angular injection token
- keep the abstraction independent from the in-memory implementation provider
- rename the mock implementation to `InMemoryDataStore`
- add an initialization lifecycle and async persistence commands for future remote stores
- move client, contractor, and job address/contact persistence behind aggregate save commands
- update application components and tests to use the new boundary
- keep PocketBase implementation out of scope for a follow-up PR

## Validation
- `npm run lint --prefix frontend`
- `npx ng build --no-progress` (from `frontend`)

Co-authored-by: Amp <[email protected]>
Reviewed-on: #16
2026-08-25 17:49:38 -04:00
.agents fix(setup): target Specture tools at Amp paths (#8) 2026-08-22 09:33:56 -04:00
.amp feat: add local development environment (#3) 2026-08-21 05:40:15 -04:00
.forgejo/workflows feat(ci): add pull request checks (#5) 2026-08-22 08:49:06 -04:00
backend test: basic setup (#4) 2026-08-22 08:04:53 -04:00
caddy feat(ci): add pull request checks (#5) 2026-08-22 08:49:06 -04:00
frontend refactor(frontend): introduce data store injection boundary (#16) 2026-08-25 17:49:38 -04:00
specs/001-mvp feat(frontend): add basic mock MVP UI (#10) 2026-08-22 20:55:43 -04:00
.envrc test: basic setup (#4) 2026-08-22 08:04:53 -04:00
.gitignore test: basic setup (#4) 2026-08-22 08:04:53 -04:00
AGENTS.md refactor(frontend): share form layout components (#14) 2026-08-25 10:02:02 -04:00
Caddyfile feat: add local development environment (#3) 2026-08-21 05:40:15 -04:00
compose.yaml feat(ci): add pull request checks (#5) 2026-08-22 08:49:06 -04:00
flake.lock test: basic setup (#4) 2026-08-22 08:04:53 -04:00
flake.nix test: basic setup (#4) 2026-08-22 08:04:53 -04:00
justfile test: basic setup (#4) 2026-08-22 08:04:53 -04:00
LICENSE Initial commit 2026-08-15 06:48:49 -04:00
README.md test: basic setup (#4) 2026-08-22 08:04:53 -04:00

Kalzar 🛠️

Track your construction

Kalzar is construction-management software for contractors of all sizes, including general contractors and subcontractors. It brings project records together and reduces bookkeeping, helping construction teams stay organized and focused on their work.

Roadmap

Initial MVP

  • Projects
  • Subcontractors
  • Contract amounts
  • Invoices and payments
  • Percentage paid and remaining balance
  • Import subcontractor payment forms and generate the general contractor's owner draw form

Next improvements

  • QuickBooks integration
  • Project access for contractors working on the same project
  • Documents and attachments
  • Better reporting and project overviews
  • Customer-specific workflows

Future expansion

  • Materials
  • Scheduling
  • Subcontractors creating and managing their own projects
  • Crew and subcontractor coordination
  • Integration with Kwilas separate scheduling and dispatch platform

Status

Kalzar is currently in the planning stage. Features and priorities may change as development progresses.

Local development

The local development environment runs the Angular frontend, Go/PocketBase backend, and Caddy reverse proxy through one port. Install Docker and just, then list the available recipes or start the environment:

just
just run

Nix users can enter the reproducible development shell instead:

nix develop
just install-deps

The shell provides the project toolchain and a Nix-compatible Playwright browser, avoiding downloads of dynamically linked browser binaries that cannot run directly on NixOS.

The application is available at http://localhost:8080 by default. Stop the environment with:

just stop

License

Kalzar is licensed under the MIT License.