# QuoteForge Local-first desktop web app for server configuration, quotation, and project work. Runtime model: - user work is stored in local SQLite; - MariaDB is used only for setup checks and background sync; - HTTP server binds to loopback only. ## What the app does - configuration editor with price refresh from synced pricelists; - projects with variants and ordered configurations; - vendor BOM import and PN -> LOT resolution; - revision history with rollback; - rotating local backups. ## Run ```bash go run ./cmd/qfs ``` Useful commands: ```bash go run ./cmd/qfs -migrate go test ./... go vet ./... make build-release ``` On first run the app creates a minimal `config.yaml`, starts on `http://127.0.0.1:8080`, and opens `/setup` if DB credentials were not saved yet. ## Documentation - Shared engineering rules: [bible/README.md](bible/README.md) - Project architecture: [bible-local/README.md](bible-local/README.md) - Release notes: `releases//RELEASE_NOTES.md` `bible-local/` is the source of truth for QuoteForge-specific architecture. If code changes behavior, update the matching file there in the same commit. ## Repository map ```text cmd/ entry points and migration tools internal/ application code web/ templates and static assets bible/ shared engineering rules bible-local/ project architecture and contracts releases/ packaged release artifacts and release notes config.example.yaml runtime config reference ```