- StorageClient for Supabase Storage REST API (upload, download, delete)
- DocumentService with CRUD operations + storage integration
- DocumentHandler with multipart form upload support (50MB limit)
- Routes: GET/POST /api/cases/{id}/documents, GET/DELETE /api/documents/{docId}
- file_path format: {tenant_id}/{case_id}/{uuid}_{filename}
- Case events logged on upload/delete
- Added SUPABASE_SERVICE_KEY to config for server-side storage access
- Fixed pre-existing duplicate writeJSON/writeError in appointments.go
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) —
kanzlaischema - Deploy: Dokploy on mLake (kanzlai.msbls.de)
Description
Languages
TypeScript
51.8%
Go
47.8%
Dockerfile
0.1%
CSS
0.1%