← all projects

TechTool — project management for office and field

Next.js · .NET · Flutter · Azure · C# · MS SQL

Context

Two populations, one system. Administrators work at a desk in a browser and need breadth — projects, customers, employees, invoicing, material and absence management. Field employees work on a phone, often with poor connectivity, and need a handful of things to work perfectly: time tracking, document upload, project status.

Building one responsive app for both would have compromised each. Building two disconnected apps would have split the data model.

The decision

One .NET backend, two purpose-built clients: Next.js for the admin dashboard, Flutter for the field app. The backend owns the domain; each client owns only its own presentation concerns. The field app's surface is deliberately narrow — it does not attempt to be a small version of the dashboard.

Provisioning via Entra ID

User accounts provision automatically through Microsoft Entra ID rather than being created by hand in the app. For a client whose staff already lives in Microsoft identity, this removes the entire class of problems where someone leaves the company but keeps an active application account. Offboarding happens in one place.

Scope

Project, customer and employee management; time tracking; document uploads; project status monitoring; multilingual support; absence and material management; integrated chat; invoicing.

Stack

Next.js · .NET · C# · Flutter · Azure · MS SQL Server · Microsoft Entra ID