Context
A service visit starts in the office and ends in the field, but tracking it spans several tools: scheduling, customer details, work reports, and commercial documents. Axion brings these steps together around a single intervention, giving each role the relevant information and actions.
Challenge and constraints
Keep scheduling, assignments, status changes, and signed completion consistent while isolating each organization’s data. On mobile, technicians need to find their rounds and write reports through an interface suited to field work.
Approach
Next.js and TypeScript power the screens and APIs, while Drizzle structures a libSQL database, using local SQLite or remote Turso. Better Auth provides sessions and roles; every API checks the organization and access to the intervention again. Reports combine a work summary, materials, photos, and a vector signature, with PDF export. Finalization is transactional, and attachment fingerprints are recorded in an audit log.
Decisions and tradeoffs
Keeping photos in libSQL simplifies deployment but requires file-size limits and a quota per organization. The PWA prioritizes confidentiality: APIs and authenticated pages are never cached. Already loaded data remains visible when connectivity drops, but business operations require a connection.
Observable outcome
The project covers the journey from scheduling to a signed report, with a manager dashboard, mobile technician rounds, and customer tracking. It persists interventions, customers and their sites, reports, quotes, and invoices with sequential numbering. The repository includes validation, persistence, and authorization tests; no real-world productivity gain is claimed.