diff --git a/README.md b/README.md index 6bd94cf..3e1e79f 100644 --- a/README.md +++ b/README.md @@ -8,8 +8,15 @@ connection. The only optional network feature is the ERPNext push, which you con Targets: Void Linux (xbps, WebKitGTK 2.50 or newer) and Windows 10/11 (NSIS installer, WebView2). +Current release: **1.0.2**. Installers and the Void package are attached to the release on the project's Gitea +page (see "Installing"). + ## Features +- **First-run setup.** A four-step wizard (business, branding, bank, numbering) starts blank: no vendor, bank or tax + details are pre-filled, and a business name and state are required. **Settings, Data, Run setup again** reopens it + with your current details; invoices, clients and backups are kept, and numbering carries on unless you change the + series prefix or digits. - **Invoices.** Automatic numbering in a persistent series (for example `INV/2026-001`) with a one-click new series, drafts, issue and cancel. An issued invoice is immutable: it stores a snapshot of the vendor, client, GST figures and layout. Line items are a fixed amount or rate x quantity (per second, minute, hour, session or unit), with @@ -67,13 +74,27 @@ npm run app:dev # tauri dev, served from localhost:1420 (does not exercis | `npm test` | `vitest run`, about 7 minutes; run on a quiet machine because load starves the sweep tests | | `npm run fonts:verify` | Checks the bundled fonts against `public/fonts/manifest.json` (`fonts:manifest` regenerates it) | | `npm run logo:measure` | Regenerates `src/pdf/templates/slots.generated.ts` from the Canva PDFs; must be idempotent | -| `npm run thumbnails` | Regenerates `public/templates/*.png` | +| `npm run thumbnails` | Regenerates `public/templates/*.png` from the synthetic sample invoice (neutral vendor and bank, generated wordmark) | +| `node scripts/logo/make-sample-logo.mjs` | Regenerates the synthetic sample logo in `src/pdf/testing/fixtures/` | | `npm run templates:compare` | Canva vs Voiced side-by-side PNGs under `/tmp` | | `cargo test --manifest-path src-tauri/Cargo.toml` | Rust unit tests | | `npm run app:build` | Production build for the current platform (custom-protocol) | The release procedure, including the manual first-run checklist, is in `docs/RELEASE.md`. +## Installing + +Download the files for your platform from the release page of the project on `git.bongbetic.com` (Releases, then +`v1.0.2`). + +- **Windows 10/11:** run `Voiced_1.0.2_x64-setup.exe`. It is a per-user install and is not code-signed, so Windows + SmartScreen may warn: choose "More info", then "Run anyway". +- **Void Linux:** install `voiced-1.0.2_1.x86_64.xbps` from a local repository (see "Installing on Void Linux"). + +On first launch the setup wizard asks for your business details, logo, bank account and invoice numbering. Nothing is +pre-filled. Uninstalling does not delete your data (see "Where data lives"); to start from scratch use +Settings, Data, Run setup again, or remove the data directory after taking a backup. + ## Where data lives The Tauri identifier is `com.bongbetic.voiced`. Voiced uses two directories, which differ only on Windows: @@ -184,7 +205,8 @@ Hosts without an `nsis` package (for example Void Linux): # from https://github.com/tauri-apps/nsis-tauri-utils/releases ``` -The installer has not been run on a real Windows machine. +The installer has been installed and run once in a Windows 11 virtual machine; it has not been tried on physical +hardware. ## Installing on Void Linux @@ -241,6 +263,7 @@ src/ React + Carbon frontend fonts/ Font registration, roles, glyph priming render/ renderCore, Web Worker, latest-wins client flatten.ts assemble.ts Rasterise at 300 DPI and rebuild an image-only PDF + testing/ Goldens (layout fingerprints), self-test fixtures, synthetic sample logo src-tauri/src/ Rust backend db.rs Schema as numbered migrations (copies the DB aside before migrating) gst.rs Integer-paise money and GST maths @@ -250,7 +273,7 @@ src-tauri/src/ Rust backend integrations/erpnext/ ERPNext client, mapping, discovery, push selftest.rs Unattended real-webview self-test public/fonts/ Bundled TTF families, OFL texts, manifest.json (plus legacy IBM Plex web fonts) -public/templates/ Template thumbnails +public/templates/ Template thumbnails (rendered from synthetic sample data) docs/ Template specs, voiced.invoice.v1, release checklist scripts/ Font, logo, template, thumbnail and ERPNext end-to-end tooling packaging/void/ xbps-src template, build-xbps.sh, desktop entry, INSTALL and REMOVE scripts @@ -272,9 +295,10 @@ Settings, Diagnostics. ## Known limitations -- Windows and WebView2 have never been run on a real machine; the NSIS installer is cross-compiled only. +- Windows and WebView2 have only been exercised in a Windows 11 virtual machine, not on physical hardware; the NSIS + installer is cross-compiled and unsigned. - The 13 Canva-derived templates are re-creations of Canva designs. Canva's content licence may restrict this, so - ship them only in this vendor's build until it is confirmed. + distribute them only to the intended customer until it is confirmed. - The SAC code for the vendor's services and the signature rule still need confirmation from a chartered accountant. - Now, Gotham and Open Sauce One are replaced by free look-alikes unless you import licensed files. - ERPNext: only v15 is verified; HTTP is allowed only for local hosts; see "Not covered" above.