NexorFlow — Field Service SaaS
Multi-tenant platform for electrical contractors: quotes, work orders, field inspections with digital signatures, maintenance contracts, inventory, fiscalization-ready invoicing and a client portal.
- Client / industry: Own product · multi-tenant SaaS for Croatian electrical contractors
- My role: Founder & sole engineer — product, multi-tenant architecture, Symfony API, Angular SPA, marketing site, deployment.
- Challenge: Contractors run on paper and spreadsheets — quotes in Word, inspections on clipboards, maintenance intervals in someone's head. Serving many companies from one platform meant tenant data could never leak into another's, and Croatian invoicing rules had to hold.
- Solution: One PostgreSQL database per tenant, resolved from the subdomain, behind a Symfony 7 + API Platform backend and an Angular 18 SPA. A module entitlement system switches capabilities — workforce/HR, site diary, HSE reporting, subcontractors, photo documentation — on per company, enforced centrally instead of controller by controller.
- Result: 68 tenant entities across 27 feature modules: quotes and work orders, inspections signed on a phone, maintenance contracts that generate their own periodic work, inventory, attendance and leave that export to payroll, and a client portal — Croatian-first UI with an English toggle.
- Tech stack: PHP 8.2 · Symfony 7 · API Platform · Angular 18 · PrimeNG · Tailwind · PostgreSQL · Astro · Docker
Architecture
- CONTRACTOR · CLIENT PORTAL
- ANGULAR 18 SPA
- API PLATFORM · JWT
- SYMFONY 7 · TENANT KERNEL
- POSTGRESQL — DB PER TENANT
All projects · Nikola Grdanjski