feat: complete CMS v2 with Docker, Fischerei, Meetings, Verband modules + UX audit fixes
Some checks failed
Workflow / ʦ TypeScript (push) Failing after 6m26s
Workflow / ⚫️ Test (push) Has been skipped

Major changes:
- Docker Compose: full Supabase stack (11 services) equivalent to supabase CLI
- Fischerei module: 16 DB tables, waters/species/stocking/catch books/competitions
- Sitzungsprotokolle module: meeting protocols, agenda items, task tracking
- Verbandsverwaltung module: federation management, member clubs, contacts, fees
- Per-account module activation via Modules page toggle
- Site Builder: live CMS data in Puck blocks (courses, events, membership registration)
- Public registration APIs: course signup, event registration, membership application
- Document generation: PDF member cards, Excel reports, HTML labels
- Landing page: real Com.BISS content (no filler text)
- UX audit fixes: AccountNotFound component, shared status badges, confirm dialog,
  pagination, duplicate heading removal, emoji→badge replacement, a11y fixes
- QA: healthcheck fix, API auth fix, enum mismatch fix, password required attribute
This commit is contained in:
Zaid Marzguioui
2026-03-31 16:35:46 +02:00
parent 16648c92eb
commit ebd0fd4638
176 changed files with 17133 additions and 981 deletions

159
pnpm-lock.yaml generated
View File

@@ -256,14 +256,13 @@ catalogs:
importers:
.:
dependencies:
'@measured/puck':
specifier: 'catalog:'
version: 0.20.2(@types/react@19.2.14)(immer@11.1.4)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(use-sync-external-store@1.6.0(react@19.2.4))
devDependencies:
'@manypkg/cli':
specifier: 'catalog:'
version: 0.25.1
'@measured/puck':
specifier: 'catalog:'
version: 0.20.2(@types/react@19.2.14)(immer@11.1.4)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(use-sync-external-store@1.6.0(react@19.2.4))
'@react-pdf/renderer':
specifier: 'catalog:'
version: 4.3.2(react@19.2.4)
@@ -587,12 +586,21 @@ importers:
specifier: 'catalog:'
version: 4.3.6
devDependencies:
'@kit/fischerei':
specifier: workspace:*
version: link:../../packages/features/fischerei
'@kit/site-builder':
specifier: workspace:*
version: link:../../packages/features/site-builder
'@kit/sitzungsprotokolle':
specifier: workspace:*
version: link:../../packages/features/sitzungsprotokolle
'@kit/tsconfig':
specifier: workspace:*
version: link:../../tooling/typescript
'@kit/verbandsverwaltung':
specifier: workspace:*
version: link:../../packages/features/verbandsverwaltung
'@next/bundle-analyzer':
specifier: 'catalog:'
version: 16.2.1
@@ -1298,6 +1306,54 @@ importers:
specifier: 'catalog:'
version: 4.3.6
packages/features/fischerei:
devDependencies:
'@hookform/resolvers':
specifier: 'catalog:'
version: 5.2.2(react-hook-form@7.72.0(react@19.2.4))
'@kit/next':
specifier: workspace:*
version: link:../../next
'@kit/shared':
specifier: workspace:*
version: link:../../shared
'@kit/supabase':
specifier: workspace:*
version: link:../../supabase
'@kit/tsconfig':
specifier: workspace:*
version: link:../../../tooling/typescript
'@kit/ui':
specifier: workspace:*
version: link:../../ui
'@supabase/supabase-js':
specifier: 'catalog:'
version: 2.100.0
'@types/react':
specifier: 'catalog:'
version: 19.2.14
lucide-react:
specifier: 'catalog:'
version: 1.7.0(react@19.2.4)
next:
specifier: 'catalog:'
version: 16.2.1(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(@playwright/test@1.58.2)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
next-safe-action:
specifier: 'catalog:'
version: 8.1.8(next@16.2.1(@opentelemetry/api@1.9.1)(@playwright/test@1.58.2)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
react:
specifier: 'catalog:'
version: 19.2.4
react-hook-form:
specifier: 'catalog:'
version: 7.72.0(react@19.2.4)
recharts:
specifier: 'catalog:'
version: 3.7.0(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react-is@16.13.1)(react@19.2.4)(redux@5.0.1)
zod:
specifier: 'catalog:'
version: 4.3.6
packages/features/member-management:
devDependencies:
'@hookform/resolvers':
@@ -1515,6 +1571,51 @@ importers:
specifier: 'catalog:'
version: 4.3.6
packages/features/sitzungsprotokolle:
devDependencies:
'@hookform/resolvers':
specifier: 'catalog:'
version: 5.2.2(react-hook-form@7.72.0(react@19.2.4))
'@kit/next':
specifier: workspace:*
version: link:../../next
'@kit/shared':
specifier: workspace:*
version: link:../../shared
'@kit/supabase':
specifier: workspace:*
version: link:../../supabase
'@kit/tsconfig':
specifier: workspace:*
version: link:../../../tooling/typescript
'@kit/ui':
specifier: workspace:*
version: link:../../ui
'@supabase/supabase-js':
specifier: 'catalog:'
version: 2.100.0
'@types/react':
specifier: 'catalog:'
version: 19.2.14
lucide-react:
specifier: 'catalog:'
version: 1.7.0(react@19.2.4)
next:
specifier: 'catalog:'
version: 16.2.1(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(@playwright/test@1.58.2)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
next-safe-action:
specifier: 'catalog:'
version: 8.1.8(next@16.2.1(@opentelemetry/api@1.9.1)(@playwright/test@1.58.2)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
react:
specifier: 'catalog:'
version: 19.2.4
react-hook-form:
specifier: 'catalog:'
version: 7.72.0(react@19.2.4)
zod:
specifier: 'catalog:'
version: 4.3.6
packages/features/team-accounts:
dependencies:
nanoid:
@@ -1606,6 +1707,54 @@ importers:
specifier: 'catalog:'
version: 4.3.6
packages/features/verbandsverwaltung:
devDependencies:
'@hookform/resolvers':
specifier: 'catalog:'
version: 5.2.2(react-hook-form@7.72.0(react@19.2.4))
'@kit/next':
specifier: workspace:*
version: link:../../next
'@kit/shared':
specifier: workspace:*
version: link:../../shared
'@kit/supabase':
specifier: workspace:*
version: link:../../supabase
'@kit/tsconfig':
specifier: workspace:*
version: link:../../../tooling/typescript
'@kit/ui':
specifier: workspace:*
version: link:../../ui
'@supabase/supabase-js':
specifier: 'catalog:'
version: 2.100.0
'@types/react':
specifier: 'catalog:'
version: 19.2.14
lucide-react:
specifier: 'catalog:'
version: 1.7.0(react@19.2.4)
next:
specifier: 'catalog:'
version: 16.2.1(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(@playwright/test@1.58.2)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
next-safe-action:
specifier: 'catalog:'
version: 8.1.8(next@16.2.1(@opentelemetry/api@1.9.1)(@playwright/test@1.58.2)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
react:
specifier: 'catalog:'
version: 19.2.4
react-hook-form:
specifier: 'catalog:'
version: 7.72.0(react@19.2.4)
recharts:
specifier: 'catalog:'
version: 3.7.0(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react-is@16.13.1)(react@19.2.4)(redux@5.0.1)
zod:
specifier: 'catalog:'
version: 4.3.6
packages/i18n:
dependencies:
next-intl:
@@ -14375,7 +14524,7 @@ snapshots:
caniuse-api@3.0.0:
dependencies:
browserslist: 4.28.1
caniuse-lite: 1.0.30001778
caniuse-lite: 1.0.30001780
lodash.memoize: 4.1.2
lodash.uniq: 4.5.0