// projekt ·
Iris: Web-App für den Betrieb einer Druckerei
Ein Ort für Arbeitsaufträge, Leute und das tägliche Chaos einer Druckerei, mit React-Frontend, Go-API und SQLite.
Rolle: Freelance · Full Stack · Jahr: 2026 - heute · Status: in Entwicklung
kurz: Iris ist eine App für den Betrieb einer Druckerei. Ein React-Frontend spricht mit einer Go-REST-API, die Authentifizierung, Arbeitsaufträge, Kunden, Reporting, öffentliche Auftragsverfolgung und SQLite-Persistenz verantwortet. Was ich mitnehme: OpenAPI-Spezifikation, Go-Typen und TypeScript-Modelle müssen sich gemeinsam ändern, sonst driftet der Client weg.
Problem
Eine Druckerei mit 15 Leuten führte Arbeitsaufträge, Kunden, Fristen und Abrechnung in Tabellen. Das Team brauchte schnelle Abläufe im Browser, und der Stand eines Auftrags (neu, in Arbeit, fertig, abgerechnet) musste klar sein, ohne dass Status von Person zu Person weitergegeben wird.
Rahmenbedingungen
- Aufträge haben einen Lebenszyklus. Jeder Übergang von neu bis abgerechnet muss in Formularen, Tabellen, Detailseiten und Dashboards gleich aussehen.
- Verträge driften. OpenAPI, Go-Domänentypen, TypeScript-Modelle, SQLite-Speicher und Fixtures müssen sich gemeinsam ändern.
- Mandantentrennung. Authentifizierung und jede Abfrage halten Nutzer und Daten jeder Druckerei in ihrem Mandanten.
- Serbischsprachige Bediener. Status, Datumsangaben, Währung und Formularlabels sind lokalisiert, ohne dass Sprachlogik in die Modelle wandert.
- Ein kleiner Betrieb führt sie. Installation und Backups müssen für den Inhaber machbar sein.
Entscheidungen
- Eine Go-API auf
chimit OpenAPI-Vertrag für Auth, Arbeitsaufträge, Kunden, Standorte, Katalog, Einstellungen, Reports und öffentliche Verfolgung. - HTTP-only Session-Cookies statt Tokens im Browser-Speicher.
- Mandantenbezogenes SQLite mit Schemamigrationen und einem Go-CLI für Seeding, CSV-Importe, Nutzerverwaltung und Backups.
- React Hook Form mit Zod hält dichte Auftrags- und Abrechnungsformulare flott und validiert gegen die Formen, die die API erwartet.
- Recharts-Dashboards für Umsatz, Auftragsvolumen, Bediener-Queues und Kunden, die Aufmerksamkeit brauchen.
Ergebnis
Iris hat die Tabellen ersetzt: rollenbasierter Zugriff, CRUD-Abläufe für Aufträge und Kunden, PDF-Auftragsberichte, öffentliche Auftragsverfolgung und ein Dashboard mit fünf Diagrammen. Der Druckerei spart das mehr als 10 Stunden Verwaltungsarbeit pro Woche. Zwei Kompromisse waren gewollt. Die Dashboard-Aggregation läuft im Client, was schnelle Iterationen an den Reports erlaubte. SQLite statt eines Datenbankservers hält Installation und Backup praktikabel, und mandantenbezogene Abfragen mit Migrationen lassen Raum zum Wachsen.
