m f81a2492c6 feat: UI polish — responsive, loading/empty/error states, German fixes (Phase 3Q)
- Responsive sidebar: collapses on mobile with hamburger menu, slide-in animation
- Skeleton loaders: dashboard cards, case table, case detail page
- Empty states: friendly messages with icons for cases, deadlines, parties, documents
- Error states: retry button on dashboard, proper error message on case not found
- Form validation: inline error messages on case creation form
- German language: fix all missing umlauts (Zurück, wählen, Anhängig, Verfügung, etc.)
- Status labels: display German translations instead of raw status values
- Transitions: fade-in animations on page load, hover/transition-colors on all interactive elements
- Focus states: focus-visible ring for keyboard accessibility
- Mobile layout: stacking for filters, forms, tabs; horizontal scroll for tables
- Extraction results: card layout on mobile, table on desktop
- Missing types: add DashboardData, DeadlineSummary, CaseSummary, ExtractedDeadline etc.
- Fix QuickActions links to use correct routes (/cases/new, /ai/extract)
- Consistent input focus styles across all forms
2026-03-25 14:16:30 +01:00

KanzlAI-mGMT

Kanzleimanagement online — law firm management for deadlines, appointments, and case tracking.

Structure

backend/     Go API server
frontend/    Next.js 15 (TypeScript, Tailwind CSS)

Development

make dev-backend    # Go server on :8080
make dev-frontend   # Next.js dev server
make build          # Build both
make lint           # Lint both
make test           # Test both

Tech Stack

  • Frontend: Next.js 15, TypeScript, Tailwind CSS
  • Backend: Go
  • Database: Supabase (PostgreSQL) — kanzlai schema
  • Deploy: Dokploy on mLake (kanzlai.msbls.de)
Description
AI-powered law firm tools
Readme 8.1 MiB
Languages
TypeScript 51.8%
Go 47.8%
Dockerfile 0.1%
CSS 0.1%