Integra ISP Billing & Network
In development: the back office an internet provider runs on, with customers and their packages, bills and resellers, stock, and the fibre network mapped from router to pole.
An internet provider's operations sprawl across spreadsheets: who's subscribed to what, who has paid, which reseller earns what, which router and which fibre box serve which street. This project is Integra's attempt to put all of it in one place.
It's still being built. The data model is designed end to end and the first modules work: regions, internet packages, MikroTik routers and NAS servers can be managed through the dashboard and a REST API. The network map and billing screens are next.
The data model
Customers and packages
Customers with their IP configuration and billing type, on internet packages defined by speed type and active period.
Money
Bills with payment status, billers paid by commission, resellers, and a ledger of financial transactions by type, category and method.
Stock
Items, categories, stock levels and item transactions that track who owns each piece of equipment.
The network
Regions, MikroTik routers and NAS servers, and the fibre plant itself: ODCs feeding ODPs, hung from mapped poles.
Quality
Speed-demand and anomaly records, so complaints can be tied to the part of the network causing them.
Where it stands
The Prisma schema is split into one file per domain (twenty of them) so each part of the business can evolve on its own. Services and Zod validators exist for customers, packages, MikroTik, NAS, ODC, ODP, poles, regions and users, with CRUD wired up for regions, packages, routers and NAS. The mapping page is laid out with Leaflet on OpenStreetMap tiles, layer controls, an asset list and network export, and is waiting for its markers.
Built with
- Next.js 16
- TypeScript
- Prisma (multi-file schema)
- PostgreSQL
- Clerk
- Leaflet
- React Leaflet
- TanStack Query
- Zod
Related Work
