PROJECT / 2025
Oversee
Ops & AI Dashboard
Multi-tenant workshop management platform with role-based access, an AI assistant that can parse Excel files and manage reports through tool-calling, and Swedish-first analytics dashboards.
- stack
- TypeScript · Next.js 16 · React 19 · Supabase · shadcn/ui · TanStack Table · Vercel AI SDK · Z.AI GLM-4.7 · Zod · react-hook-form · Recharts · MDX · Framer Motion · Playwright
How it works
Excel files
uploaded reportsassistant
GLM with tool callingSupabase
scoped per org and roledashboards
analytics in Swedish
01 / Overview
Workshop management system where organizations track vehicle repairs, assign technicians, and monitor performance. Users create reports with registration numbers, problem descriptions, categories, and time tracking. An org-scoped AI assistant powered by Z.AI GLM-4.7 handles multi-step workflows — parsing Excel uploads into reports, querying the database, generating charts, and bulk-updating records — with human-in-the-loop approval before any destructive action. The whole interface is Swedish-first, built for field teams who may not be familiar with AI tools.
02 / Key features
- –Role-based multi-tenancy: owners, admins, members, and technicians each see different data and controls, enforced by Supabase RLS
- –AI assistant with 10+ tools for database queries, report CRUD, Excel parsing, chart generation, and web search — all scoped to the active organization
- –Human-in-the-loop approval dialogs before the AI creates, updates, or deletes reports
- –Report management with registration numbers, categories, technician assignment, time tracking, and bulk operations via drag-reorderable data tables
- –Dashboard analytics: KPI cards, daily/weekly/monthly trend charts, category distribution, technician performance bars, and top reported issues
- –Vehicle inspection tracking (Bilkollen) for recurring check-ups alongside ad-hoc repair reports
- –Invitation system with join requests, org creation flow, and onboarding for new users
03 / Challenges
- –Z.AI's GLM-4.7 only supports Chat API, rejects system role messages, and doesn't handle images — so the integration needed workarounds for message formatting and graceful degradation when users attach files
- –Multi-step AI workflows like Excel import (fetch technician names → category names → parse → create reports) had to preserve context across 5+ tool calls without blowing up the token budget
- –Technicians should only see their own reports while admins see everything — getting RLS policies right for that asymmetry across all query paths took careful testing
- –Base64 images from screenshots can exceed Vercel's 8MB request limit, so the client compresses them iteratively before sending
04 / Solution
System prompt gets prepended to the first user message to work around GLM's missing system role. AI tools use names_only flags and pagination to keep token usage low during multi-step operations. RLS policies enforce org + role scoping at the database level, and server actions validate membership before any mutation. Client-side Canvas API compression reduces image payloads by 60-80% with iterative quality reduction. Rate limiting (30 req/hour per user per org) prevents abuse without blocking normal usage.
05 / Outcome
Used in production by a workshop organization to track repairs and technician workload. The AI assistant handles the bulk of data entry — field technicians snap a photo or paste an Excel export and the assistant turns it into structured reports after confirmation. What started as a KPI dashboard grew into the primary tool for day-to-day operations.