m ac20c03f01 feat: email notifications + deadline reminder system
Database:
- notification_preferences table (user_id, tenant_id, reminder days, email/digest toggles)
- notifications table (type, entity link, read/sent tracking, dedup index)

Backend:
- NotificationService with background goroutine checking reminders hourly
- CheckDeadlineReminders: finds deadlines due in N days per user prefs, creates notifications
- Overdue deadline detection and notification
- Daily digest at 8am: compiles pending notifications into one email
- SendEmail via `m mail send` CLI command
- Deduplication: same notification type + entity + day = skip
- API: GET/PATCH notifications, unread count, mark read/all-read
- API: GET/PUT notification-preferences with upsert

Frontend:
- NotificationBell in header with unread count badge (polls every 30s)
- Dropdown panel with notification list, type-colored dots, time-ago, entity links
- Mark individual/all as read
- NotificationSettings in Einstellungen page: reminder day toggles, email toggle, digest toggle
2026-03-30 11:03:17 +02: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%