From d0c5249bcb6584899f6c973d16c63f6d5d9599d6 Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 24 May 2026 18:25:19 +0000 Subject: [PATCH] Add user, admin, dev documentation and CLAUDE.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit docs/user-guide.md — end-user guide covering the full invoice workflow docs/admin-guide.md — config.yml reference for setting up the app docs/dev-guide.md — codebase guide: architecture, state, functions, localStorage, i18n, FX convention, PDF generation CLAUDE.md — project briefing for Claude Code sessions --- CLAUDE.md | 113 +++++++++++++++ docs/admin-guide.md | 327 ++++++++++++++++++++++++++++++++++++++++++++ docs/dev-guide.md | 183 +++++++++++++++++++++++++ docs/user-guide.md | 109 +++++++++++++++ 4 files changed, 732 insertions(+) create mode 100644 CLAUDE.md create mode 100644 docs/admin-guide.md create mode 100644 docs/dev-guide.md create mode 100644 docs/user-guide.md diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..b975b60 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,113 @@ +# CLAUDE.md — Freelance Invoicing App + +## Project overview + +Single-file browser app for generating freelance invoices as PDF or print preview. No backend, no build step. All app logic lives in `app/index.html` (~1600 lines: HTML + embedded CSS + embedded JS). Runtime config is loaded from `app/config.yml` via `fetch()`. + +## Running locally + +Must be served over HTTP — `fetch()` for `config.yml` fails on `file://`. + +``` +npx serve app # recommended +python3 -m http.server 8000 # run from app/ +``` + +No `package.json`, no bundler, no install step. + +## Architecture + +``` +app/ + index.html — entire application + config.yml — runtime config (recipients, products, translations, etc.) +docs/ + devdocs/Specs.md + user-guide.md / admin-guide.md / dev-guide.md +``` + +**CDN dependencies** (loaded via `