- Invoice OCR migrated from Ollama (GPU-bound, local) to Gemini 2.5 Flash via new targo-hub /vision/invoice endpoint with responseSchema enforcement. Ops VM no longer needs a GPU. - Ops /j/* now has full camera scanner (TechScanPage) ported from apps/field with 8s timeout + offline queue + auto-link to Dispatch Job context on serial/barcode/MAC 3-tier lookup. - New TechDevicePage reached via /j/device/:serial showing every ERPNext entity related to a scanned device: Service Equipment, Customer, Service Location, active Subscription, open Issues, upcoming Dispatch Jobs, OLT info. - New docs/VISION_AND_OCR.md (full pipeline + §10 relationship graph + §8.1 secrets/rotation policy). Cross-linked from ARCHITECTURE, ROADMAP, HANDOFF, README. - Nginx /ollama/ proxy blocks removed from both ops + field. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
99 lines
5.2 KiB
Markdown
99 lines
5.2 KiB
Markdown
# Gigafibre FSM — Handoff Index
|
|
|
|
> **Purpose:** one-page map of every doc in this repo. Pick the path for your role, read in order, stop when you have enough.
|
|
|
|
**Last refreshed:** 2026-04-18
|
|
|
|
---
|
|
|
|
## Start here (everyone)
|
|
|
|
| # | Doc | Why |
|
|
|---|---|---|
|
|
| 1 | [STATUS_2026-04-18.md](STATUS_2026-04-18.md) | 10-minute snapshot: where the system stands today, what just shipped, what's next |
|
|
| 2 | [ARCHITECTURE.md](ARCHITECTURE.md) | Service map: ERPNext, Ops PWA, targo-hub, DocuSeal, Authentik, Traefik |
|
|
| 3 | [ROADMAP.md](ROADMAP.md) | Phases 1 → 5 with completion status |
|
|
|
|
If you only have 15 minutes, read those three.
|
|
|
|
---
|
|
|
|
## By role
|
|
|
|
### New engineer joining the project
|
|
1. [STATUS_2026-04-18.md](STATUS_2026-04-18.md) — orientation
|
|
2. [ARCHITECTURE.md](ARCHITECTURE.md) — services and how they talk
|
|
3. [DATA_AND_FLOWS.md](DATA_AND_FLOWS.md) — ERPNext doctypes + wizard flows
|
|
4. [APP_DESIGN_GUIDELINES.md](APP_DESIGN_GUIDELINES.md) — UI conventions (light mode default, dispatch dark mode exception)
|
|
5. Clone the repo, read `README.md`, then the `apps/ops` and `services/targo-hub` READMEs
|
|
|
|
### Stakeholder / non-technical reader
|
|
1. [STATUS_2026-04-18.md](STATUS_2026-04-18.md) — TL;DR + "Where we are" table
|
|
2. [Gigafibre-FSM-Features.pptx](Gigafibre-FSM-Features.pptx) — feature deck
|
|
3. [Gigafibre-Billing-Handoff.pptx](Gigafibre-Billing-Handoff.pptx) — billing migration deck
|
|
4. [ROADMAP.md](ROADMAP.md) — what's done vs. queued
|
|
|
|
### Accountant / billing ops
|
|
1. [BILLING_AND_PAYMENTS.md](BILLING_AND_PAYMENTS.md) — full billing architecture, Stripe flow, subscription logic
|
|
2. [STATUS_2026-04-18.md](STATUS_2026-04-18.md) §"ERPNext customizations" — custom fields on Item / Quotation Item / Sales Invoice Item
|
|
3. [Gigafibre-Billing-Handoff.pptx](Gigafibre-Billing-Handoff.pptx) — visual walkthrough
|
|
|
|
### Dispatcher / field ops lead
|
|
1. [STATUS_2026-04-18.md](STATUS_2026-04-18.md) §"Features inventory" — Ops, Dispatch, Field
|
|
2. [DATA_AND_FLOWS.md](DATA_AND_FLOWS.md) — Issue → Job → Technician flow
|
|
3. [CPE_MANAGEMENT.md](CPE_MANAGEMENT.md) — CPE lifecycle, GenieACS, modem-bridge
|
|
4. [VISION_AND_OCR.md](VISION_AND_OCR.md) — camera scanning workflow (barcodes, equipment labels, invoices) and offline queue
|
|
|
|
### Infrastructure / DevOps
|
|
1. [ARCHITECTURE.md](ARCHITECTURE.md) — network + container map
|
|
2. [STATUS_2026-04-18.md](STATUS_2026-04-18.md) §"Integrations" — external services and credentials location
|
|
3. [CPE_MANAGEMENT.md](CPE_MANAGEMENT.md) — GenieACS + OLT + SNMP
|
|
4. [VISION_AND_OCR.md](VISION_AND_OCR.md) — Gemini pipeline, AI_API_KEY config, hub `/vision/*` endpoints
|
|
|
|
---
|
|
|
|
## Document catalog
|
|
|
|
| Doc | What it covers | When to read |
|
|
|---|---|---|
|
|
| [STATUS_2026-04-18.md](STATUS_2026-04-18.md) | Full state snapshot, features, integrations, known issues, gotchas | **Always first** |
|
|
| [ARCHITECTURE.md](ARCHITECTURE.md) | Services, containers, networks, routes | Onboarding or infra changes |
|
|
| [ROADMAP.md](ROADMAP.md) | Phase plan with checkboxes | Planning or standups |
|
|
| [DATA_AND_FLOWS.md](DATA_AND_FLOWS.md) | Data model and user/workflow flows | Building features that touch ERPNext |
|
|
| [BILLING_AND_PAYMENTS.md](BILLING_AND_PAYMENTS.md) | Subscription lifecycle, invoice generation, Stripe, payment reconciliation | Billing work |
|
|
| [CPE_MANAGEMENT.md](CPE_MANAGEMENT.md) | CPE database, GenieACS, provisioning, diagnostics | CPE or network work |
|
|
| [VISION_AND_OCR.md](VISION_AND_OCR.md) | Gemini-via-hub pipeline: barcode/equipment/invoice endpoints, scanner composable, offline retry queue | Camera/scan/OCR work, onboarding anyone who'll touch `/vision/*` |
|
|
| [APP_DESIGN_GUIDELINES.md](APP_DESIGN_GUIDELINES.md) | UI tokens, theming, component conventions | Frontend work |
|
|
| [Gigafibre-FSM-Features.pptx](Gigafibre-FSM-Features.pptx) | Feature deck for demo / training | Sharing with non-engineers |
|
|
| [Gigafibre-Billing-Handoff.pptx](Gigafibre-Billing-Handoff.pptx) | Billing deck for finance handoff | Sharing with finance team |
|
|
| [archive/](archive/) | Deprecated docs kept for reference | Historical questions only |
|
|
|
|
---
|
|
|
|
## Conventions used across these docs
|
|
|
|
- **Status emoji:** ✅ shipped · 🚧 in progress · 🆕 just shipped this cycle · ⏸ paused · 🗃 legacy/read-only
|
|
- **Brand:** "Gigafibre" = consumer-facing brand, "TARGO" = parent company (both appear; not a rename)
|
|
- **Environments:** production-only at erp.gigafibre.ca. Legacy DB on 10.100.80.100 is read-only.
|
|
- **Dates:** always ISO (YYYY-MM-DD). "Current" means 2026-04-18 unless noted.
|
|
|
|
---
|
|
|
|
## Where things live outside this repo
|
|
|
|
- **Memory notes:** `~/.claude/projects/-Users-louispaul-Documents-testap/memory/` — context for Claude across sessions
|
|
- **Production server:** `ssh root@96.125.196.67` (ssh-agent + `~/.ssh/proxmox_vm`)
|
|
- **ERPNext containers:** `frappe_docker-backend-1`, `frappe_docker-db-1` (PostgreSQL)
|
|
- **targo-hub:** `/opt/targo-hub/` on prod (volume-mounted `lib/`)
|
|
- **DocuSeal:** `/opt/docuseal/` on prod
|
|
|
|
---
|
|
|
|
## Next doc-writing priorities
|
|
|
|
- [ ] `PROVISIONING.md` — ONT/OLT/GenieACS workflow when onboarding a new subscriber
|
|
- [ ] `DEPLOY.md` — step-by-step deploy for each app (currently scattered across feedback memory)
|
|
- [ ] `INCIDENTS.md` — post-mortem log format + template
|
|
|
|
Add new docs to the catalog table above when you create them.
|