2025-05-30 - 2026-05-30

Overview

95 Active Pull Requests
108 Active Issues
Excluding merges, 2 authors have pushed 124 commits to main and 130 commits to all branches. On main, 330 files have changed and there have been 75035 additions and 3624 deletions.

16 Releases published by 1 user

Published v0.5.2 v0.5.2 2026-04-22 20:28:09 +02:00

Published v0.3.2 v0.3.2 2026-04-22 10:16:05 +02:00

Published v0.3.1 v0.3.1 2026-04-22 09:50:32 +02:00

Published v0.3.0 v0.3.0 2026-04-22 08:54:29 +02:00

Published v0.2.11 v0.2.11 — Allergien per Klick in der Mitgliederliste 2026-04-17 21:58:15 +02:00

Published v0.2.10 v0.2.10 — Manuelles Update via Datei-Upload 2026-04-17 21:37:53 +02:00

Published v0.2.9 v0.2.9 — Fehler-Diagnose + Sub-Entity-Speicherung 2026-04-17 21:31:07 +02:00

Published v0.2.8 v0.2.8 — Abfrage-Builder: NOT, Klammern, vollständige Feldabdeckung 2026-04-17 20:17:08 +02:00

Published v0.2.7 v0.2.7 2026-04-12 18:11:49 +02:00

Published v0.2.6 v0.2.6 2026-04-12 16:20:40 +02:00

Published v0.2.5 v0.2.5 2026-04-11 16:02:27 +02:00

Published v0.2.4 v0.2.4 2026-04-11 15:56:14 +02:00

Published v0.2.3 v0.2.3 2026-04-11 15:48:11 +02:00

Published v0.2.2 v0.2.2 2026-04-11 15:39:53 +02:00

Published v0.2.1 v0.2.1 2026-04-11 15:24:42 +02:00

Published v0.2.0 v0.2.0 2026-04-10 23:13:07 +02:00

95 Pull requests merged by 1 user

Merged #204 refactor(MemberService): extract generic syncSubEntities() method 2026-04-30 08:14:04 +02:00

Merged #203 fix(MemberService): wrap multi-step writes in database transactions 2026-04-29 22:11:03 +02:00

Merged #202 Fix findArchived() filtering all members in memory (Closes #202) 2026-04-29 21:14:56 +02:00

Merged #201 Fix countArchived() loading all members into memory (Closes #201) 2026-04-29 19:17:36 +02:00

Merged #200 Fix N+1 query problem in MemberService (Closes #200) 2026-04-28 22:00:54 +02:00

Merged #198 feat: bulk-reveal encrypted Allergien on member list (admin-only) 2026-04-17 21:58:16 +02:00

Merged #197 feat: manual update via tarball + signature upload 2026-04-17 21:37:53 +02:00

Merged #196 fix: surface real errors + restore sub-entity saves on member update 2026-04-17 21:31:08 +02:00

Merged #195 feat: Abfrage-Builder NOT + visual brackets + full field coverage (#194) 2026-04-17 20:17:09 +02:00

Merged #193 feat: database portability — support PostgreSQL and SQLite (Closes #192) 2026-04-12 13:46:22 +02:00

Merged #191 feat: add Juleica number and expiry date with calendar reminder (Closes #160) 2026-04-10 19:43:07 +02:00

Merged #190 feat: make Geburtsdatum optional for members (Closes #162) 2026-04-10 19:38:26 +02:00

Merged #189 fix: imported records cannot be edited after import (Closes #161) 2026-04-10 19:33:18 +02:00

Merged #188 security: enforce access control on CalendarSync and ContactsSync (Closes #170) 2026-04-10 18:56:16 +02:00

Merged #187 security: enforce CSRF protection on POST/DELETE export endpoints (Closes #171) 2026-04-10 18:50:26 +02:00

Merged #186 fix: standardize frontend date formatting with shared utility (Closes #175) 2026-04-10 18:45:25 +02:00

Merged #185 fix: prevent CSV injection by escaping formula characters (Closes #174) 2026-04-10 16:27:40 +02:00

Merged #184 fix: add X-Content-Type-Options nosniff header to downloads (Closes #173) 2026-04-10 16:25:41 +02:00

Merged #183 fix: use generic error messages in ImportController 500 responses (Closes #172) 2026-04-10 16:24:01 +02:00

Merged #182 fix: set restrictive permissions (0600) on temp files (Closes #169) 2026-04-10 16:21:55 +02:00

Merged #181 fix: reject ZIP entries with path traversal sequences (Closes #168) 2026-04-10 16:20:41 +02:00

Merged #180 fix: normalize URI by stripping query params in rate limiter (Closes #167) 2026-04-10 16:19:49 +02:00

Merged #179 feat: add AuthorizationMiddleware for endpoint permission checks (Closes #166) 2026-04-10 16:18:36 +02:00

Merged #178 fix: throw exception instead of returning plaintext when encryption fails (Closes #165) 2026-04-10 16:15:31 +02:00

Merged #177 fix: read DSGVO export password from POST body only (Closes #164) 2026-04-10 16:14:32 +02:00

Merged #176 fix: wire InputSanitizer into ApiControllerTrait.getRequestData() (Closes #163) 2026-04-10 16:13:09 +02:00

Merged #159 feat: content-based matching for cross-instance migration (Closes #153) 2026-04-09 20:43:58 +02:00

Merged #158 feat: per-field conflict resolution UI for duplicate records (Closes #152) 2026-04-09 20:40:05 +02:00

Merged #157 feat: ZIP bundle import with dependency-aware auto-ordering (Closes #151) 2026-04-09 20:35:25 +02:00

Merged #156 feat: per-entity CSV import with German header auto-mapping (Closes #150) 2026-04-09 20:30:44 +02:00

Merged #155 feat: add full ZIP bundle export with sensitive data toggle (Closes #149) 2026-04-09 20:23:53 +02:00

Merged #154 feat: per-entity CSV export for all data types (#148) 2026-04-09 20:18:22 +02:00

Merged #146 feat: add Lagerhistorie and Verletzungsprotokoll reports (Closes #129) 2026-04-09 15:58:32 +02:00

Merged #145 feat: seed default Stufen on fresh install (Closes #128) 2026-04-09 15:55:45 +02:00

Merged #144 fix: various UX polish improvements (Closes #136) 2026-04-09 15:54:06 +02:00

Merged #143 fix: define appName/appVersion globals via webpack (Closes #130, #131) 2026-04-09 15:51:42 +02:00

Merged #142 feat: add missing pages to sidebar navigation (Closes #135) 2026-04-09 15:49:33 +02:00

Merged #141 fix: resolve Stufe names in member list table (Closes #134) 2026-04-09 15:47:41 +02:00

Merged #140 fix: use Vue 3 model-value for inline member search (Closes #133) 2026-04-09 15:46:11 +02:00

Merged #139 fix: resolve member names in fee table (Closes #127) 2026-04-09 15:44:54 +02:00

Merged #138 fix: use Vue 3 modelValue bindings in MemberForm (Closes #125) 2026-04-09 15:43:19 +02:00

Merged #137 fix: wire AuditService into all CRUD operations (Closes #126) 2026-04-09 15:40:37 +02:00

Merged #132 fix: use :to prop for sidebar navigation instead of @click handlers (Closes #124) 2026-04-07 21:43:47 +02:00

Merged #122 feat: add app icon for Nextcloud navigation bar (Closes #115) 2026-04-07 17:15:26 +02:00

Merged #121 fix: improve button styling and prevent text overflow (Closes #116) 2026-04-07 17:13:51 +02:00

Merged #120 fix: replace ASCII Umlaut substitutes with proper German characters (Closes #117) 2026-04-07 17:10:40 +02:00

Merged #119 fix: make sidebar navigation clickable (Closes #118) 2026-04-07 16:58:37 +02:00

Merged #114 feat: Import wizard with CSV parsing and duplicate detection (Closes #58) 2026-04-07 16:27:39 +02:00

Merged #113 feat: Visual query builder with AST-to-SQL engine (Closes #53) 2026-04-07 16:22:15 +02:00

Merged #112 feat: FileLinkService + FileExplorer component (Closes #52) 2026-04-07 16:16:25 +02:00

Merged #111 feat: add ContactsSyncService with VCard sync to address book (Closes #51) 2026-04-07 16:06:43 +02:00

Merged #110 feat: add CalendarSyncService with queue-based birthday sync (Closes #50) 2026-04-07 16:00:43 +02:00

Merged #109 test: add integration test suite for API endpoints (Closes #65) 2026-04-07 15:57:42 +02:00

Merged #108 feat: add security hardening with rate limiting and pentest prep (Closes #64) 2026-04-07 15:54:14 +02:00

Merged #107 test: add comprehensive data validation tests (Closes #66) 2026-04-07 15:36:11 +02:00

Merged #106 feat: add injury tracking backend and frontend (Closes #57) 2026-04-07 15:33:23 +02:00

Merged #105 feat: add DB migration for injuries tracking tables (Closes #56) 2026-04-07 15:28:06 +02:00

Merged #104 feat: add membership milestone detection (Jubilaeen) (Closes #59) 2026-04-07 15:21:18 +02:00

Merged #103 feat: add Stufe change suggestions based on age ranges (Closes #63) 2026-04-07 15:18:18 +02:00

Merged #102 feat: add Lager (camp) system with DB, backend, and frontend (Closes #54, Closes #55) 2026-04-07 15:15:54 +02:00

Merged #101 feat: add DSGVO data export and irreversible hard-delete (Closes #62) 2026-04-07 15:10:39 +02:00

Merged #100 feat: add soft deletion logic with sensitive data purge and archive (Closes #61) 2026-04-07 15:07:03 +02:00

Merged #99 feat: add Reports UI with type selection, preview, and download (Closes #49) 2026-04-07 15:02:20 +02:00

Merged #98 feat: add ReportService and PDF generation with TCPDF (Closes #46) 2026-04-07 14:58:56 +02:00

Merged #97 feat: add encrypted export with password-protected ZIP (Closes #48) 2026-04-07 14:55:26 +02:00

Merged #96 feat: add EncryptionService for field-level encryption (Closes #60) 2026-04-07 14:11:11 +02:00

Merged #95 feat: add CSV export with UTF-8 BOM for Excel compatibility (Closes #47) 2026-04-07 14:06:28 +02:00

Merged #94 feat: add preset quick filter chips to member list (Closes #34) 2026-04-07 14:01:32 +02:00

Merged #93 feat: add global search bar with full-text member search (Closes #33) 2026-04-07 13:57:18 +02:00

Merged #92 feat: add fee overview view with records table and batch actions (Closes #44) 2026-04-07 13:52:20 +02:00

Merged #91 feat: add fee rules DSL editor UI in settings (Closes #43) 2026-04-07 13:41:04 +02:00

Merged #90 test: add comprehensive unit tests for FeeCalculationService (Closes #45) 2026-04-07 13:38:02 +02:00

Merged #89 feat: add Audit log viewer UI with filters and entity navigation (Closes #40) 2026-04-07 13:28:22 +02:00

Merged #88 feat: add Permission management UI and API endpoints (Closes #37) 2026-04-07 13:26:09 +02:00

Merged #87 feat: add Stufen management UI in Settings page (Closes #32) 2026-04-07 13:22:59 +02:00

Merged #86 feat: add IBAN MOD-97 validation with country format checks (Closes #26) 2026-04-07 13:20:59 +02:00

Merged #85 feat: add E.164 phone validation and PhoneInput component (Closes #25) 2026-04-07 13:19:02 +02:00

Merged #84 feat: add Family Vue components with list, detail, and navigation (Closes #29) 2026-04-07 13:16:03 +02:00

Merged #83 feat: add FeeCalculationService with family discounts and batch processing (Closes #42) 2026-04-07 12:48:47 +02:00

Merged #82 feat: add PermissionService with access level checks (Closes #36) 2026-04-07 12:33:11 +02:00

Merged #81 feat: add AuditService with field-level change tracking (Closes #39) 2026-04-07 12:30:31 +02:00

Merged #80 feat: add Stufen backend with entity, service, controller (Closes #31) 2026-04-07 12:06:24 +02:00

Merged #79 feat: add DB migrations for fee rules and records tables (Closes #41) 2026-04-07 12:04:21 +02:00

Merged #78 feat: add DB migration for audit log table (Closes #38) 2026-04-07 12:03:40 +02:00

Merged #77 feat: add DB migration for permissions table (Closes #35) 2026-04-07 12:02:58 +02:00

Merged #76 feat: add DB migrations for Stufen and Stufe history tables (Closes #30) 2026-04-07 12:02:08 +02:00

Merged #75 feat: add Family entity, mapper, service, and controller (Closes #28) 2026-04-07 12:01:15 +02:00

Merged #74 feat: add DB migration for families table (Closes #27) 2026-04-07 11:59:22 +02:00

Merged #73 feat: add Member detail Vue component with tabbed form (Closes #24) 2026-04-07 11:58:20 +02:00

Merged #72 feat: add Member list Vue component with store and router (Closes #23) 2026-04-07 11:55:34 +02:00

Merged #71 feat: add MemberController REST API endpoints (Closes #22) 2026-04-07 11:41:37 +02:00

Merged #70 feat: add MemberService with CRUD, validation, and soft-delete (Closes #21) 2026-04-07 11:39:43 +02:00

Merged #69 feat: add Member entity, mapper, and sub-entity classes (Closes #20) 2026-04-07 11:37:05 +02:00

Merged #68 feat: add DB migrations for addresses, phones, emails tables (Closes #19) 2026-04-07 11:34:39 +02:00

Merged #67 feat: add DB migration for members table (Closes #18) 2026-04-07 11:29:54 +02:00

108 Issues closed from 1 user

Closed #123 Black-Box UI Testing with Playwright 2026-04-22 08:59:26 +02:00

Closed #194 Abfrage-Builder: NOT-Operator, explizite Klammern und vollständige Feldabdeckung 2026-04-17 21:07:15 +02:00

Closed #192 Database portability: support PostgreSQL and SQLite alongside MySQL/MariaDB 2026-04-12 13:46:22 +02:00

Closed #160 feat: Juleica number and expiry date for members with calendar reminder 2026-04-10 19:43:07 +02:00

Closed #162 feat: make Geburtsdatum optional for members 2026-04-10 19:38:26 +02:00

Closed #161 bug: imported records cannot be edited after import 2026-04-10 19:33:18 +02:00

Closed #170 CalendarSync/ContactsSync bypass Nextcloud APIs and access control 2026-04-10 18:56:16 +02:00

Closed #171 CSRF protection disabled on export endpoints with side effects 2026-04-10 18:50:26 +02:00

Closed #175 Frontend date formatting inconsistency 2026-04-10 18:45:25 +02:00

Closed #174 CSV injection potential in exports 2026-04-10 16:27:40 +02:00

Closed #173 No Content-Security-Policy headers on file download responses 2026-04-10 16:25:41 +02:00

Closed #172 Error messages leak internal implementation details 2026-04-10 16:24:01 +02:00

Closed #169 Temp file permissions too permissive in export/import services 2026-04-10 16:21:55 +02:00

Closed #168 ZIP path traversal risk in BundleImportService 2026-04-10 16:20:41 +02:00

Closed #167 Rate limiter bypass via varying query parameters 2026-04-10 16:19:49 +02:00

Closed #166 No authorization checks on most controller endpoints 2026-04-10 16:18:36 +02:00

Closed #165 Encryption fallback returns plaintext silently 2026-04-10 16:15:31 +02:00

Closed #164 DSGVO export uses query parameter for password instead of request body 2026-04-10 16:14:32 +02:00

Closed #163 InputSanitizer exists but is never called from controllers 2026-04-10 16:13:09 +02:00

Closed #147 [Epic] Comprehensive Import/Export System for Backup and Migration 2026-04-09 20:49:37 +02:00

Closed #153 feat: content-based matching for cross-instance migration 2026-04-09 20:43:58 +02:00

Closed #152 feat: per-field conflict resolution UI for duplicate records 2026-04-09 20:40:05 +02:00

Closed #151 feat: ZIP bundle import with dependency-aware auto-ordering 2026-04-09 20:35:25 +02:00

Closed #150 feat: per-entity CSV import with German header auto-mapping 2026-04-09 20:30:44 +02:00

Closed #149 feat: full ZIP bundle export with sensitive data toggle 2026-04-09 20:23:53 +02:00

Closed #148 feat: per-entity CSV export for all data types 2026-04-09 20:18:24 +02:00

Closed #129 Missing Lagerhistorie and Verletzungsprotokoll report types 2026-04-09 15:58:32 +02:00

Closed #128 No default Stufen seeded on install 2026-04-09 15:55:45 +02:00

Closed #136 UX: Various minor UI polish issues 2026-04-09 15:54:06 +02:00

Closed #130 TypeError: e.find is not a function on every page load 2026-04-09 15:51:42 +02:00

Closed #131 @nextcloud/vue appName and appVersion not configured 2026-04-09 15:51:42 +02:00

Closed #135 Add missing pages to sidebar navigation (Injuries, Import, Queries) 2026-04-09 15:49:33 +02:00

Closed #134 Member list Stufe column shows raw stufeId instead of name 2026-04-09 15:47:41 +02:00

Closed #133 Inline member search does not filter the list 2026-04-09 15:46:11 +02:00

Closed #127 Fee table shows member IDs instead of names 2026-04-09 15:44:54 +02:00

Closed #125 Member detail form fields render blank despite data being loaded 2026-04-09 15:43:19 +02:00

Closed #126 Audit log not recording any events 2026-04-09 15:40:37 +02:00

Closed #124 Nav sidebar clicks don't navigate between views 2026-04-07 21:43:48 +02:00

Closed #115 Add app icon for Nextcloud navigation bar 2026-04-07 17:15:26 +02:00

Closed #116 Fix button styling and text overflow issues 2026-04-07 17:13:51 +02:00

Closed #117 Fix Umlauts: "Beitraege" should be "Beiträge" 2026-04-07 17:10:40 +02:00

Closed #118 Left sidebar navigation buttons are not clickable 2026-04-07 16:58:37 +02:00

Closed #17 Epic: Soft Deletion & DSGVO 2026-04-07 16:29:11 +02:00

Closed #16 Epic: Security & Encryption 2026-04-07 16:29:10 +02:00

Closed #14 Epic: Access Control 2026-04-07 16:29:09 +02:00

Closed #15 Epic: Audit Log 2026-04-07 16:29:09 +02:00

Closed #13 Epic: Files Integration 2026-04-07 16:29:08 +02:00

Closed #12 Epic: Contacts Integration 2026-04-07 16:29:07 +02:00

Closed #11 Epic: Calendar Integration 2026-04-07 16:29:06 +02:00

Closed #10 Epic: Injury Tracking 2026-04-07 16:29:05 +02:00

Closed #8 Epic: Milestones/Jubiläen 2026-04-07 16:29:04 +02:00

Closed #9 Epic: Lagertracking 2026-04-07 16:29:04 +02:00

Closed #7 Epic: Data Import 2026-04-07 16:29:03 +02:00

Closed #6 Epic: Reports & Exports 2026-04-07 16:29:02 +02:00

Closed #5 Epic: Search & Saved Queries 2026-04-07 16:29:01 +02:00

Closed #4 Epic: Fee System 2026-04-07 16:29:00 +02:00

Closed #3 Epic: Stufen Management 2026-04-07 16:28:59 +02:00

Closed #2 Epic: Family Management 2026-04-07 16:28:58 +02:00

Closed #1 Epic: Member Management 2026-04-07 16:28:58 +02:00

Closed #58 Import wizard (CSV/Excel) 2026-04-07 16:27:40 +02:00

Closed #53 Visual query builder (backend + frontend) 2026-04-07 16:22:16 +02:00

Closed #52 FileLinkService + FileExplorer component 2026-04-07 16:16:25 +02:00

Closed #51 ContactsSyncService 2026-04-07 16:06:43 +02:00

Closed #50 CalendarSyncService 2026-04-07 16:00:43 +02:00

Closed #65 Integration test suite for API endpoints 2026-04-07 15:57:42 +02:00

Closed #64 Security hardening & pentest prep 2026-04-07 15:54:14 +02:00

Closed #66 Data validation comprehensive tests 2026-04-07 15:36:12 +02:00

Closed #57 Injury tracking backend + frontend 2026-04-07 15:33:24 +02:00

Closed #56 DB migration for injuries tables 2026-04-07 15:28:06 +02:00

Closed #59 Membership milestones (Jubiläen) 2026-04-07 15:21:18 +02:00

Closed #63 Stufe change suggestions 2026-04-07 15:18:18 +02:00

Closed #54 DB migrations for Lager tables 2026-04-07 15:15:54 +02:00

Closed #55 Lager backend + frontend 2026-04-07 15:15:54 +02:00

Closed #62 DSGVO actions (export + hard-delete) 2026-04-07 15:10:39 +02:00

Closed #61 Soft deletion logic 2026-04-07 15:07:03 +02:00

Closed #49 Reports UI (selection + preview + download) 2026-04-07 15:02:20 +02:00

Closed #46 ReportService + PDF generation 2026-04-07 14:58:56 +02:00

Closed #48 Encrypted export (password-protected ZIP) 2026-04-07 14:55:26 +02:00

Closed #60 EncryptionService implementation 2026-04-07 14:11:11 +02:00

Closed #47 CSV export with UTF-8 BOM 2026-04-07 14:06:28 +02:00

Closed #34 Preset quick filters 2026-04-07 14:01:32 +02:00

Closed #33 Global search bar 2026-04-07 13:57:19 +02:00

Closed #44 Fee overview Vue component 2026-04-07 13:52:20 +02:00

Closed #43 Fee rules DSL editor UI 2026-04-07 13:41:05 +02:00

Closed #45 Unit tests for FeeCalculationService 2026-04-07 13:38:02 +02:00

Closed #40 Audit log viewer UI 2026-04-07 13:28:22 +02:00

Closed #37 Permission management UI 2026-04-07 13:26:09 +02:00

Closed #32 Stufen management UI in Settings 2026-04-07 13:22:59 +02:00

Closed #26 IBAN validation 2026-04-07 13:20:59 +02:00

Closed #25 Phone number E.164 validation 2026-04-07 13:19:03 +02:00

Closed #29 Family Vue components (list + detail) 2026-04-07 13:16:03 +02:00

Closed #42 FeeCalculationService 2026-04-07 12:48:47 +02:00

Closed #36 PermissionService implementation 2026-04-07 12:33:12 +02:00

Closed #39 AuditService implementation 2026-04-07 12:30:31 +02:00

Closed #31 Stufen backend (entity, service, controller) 2026-04-07 12:06:24 +02:00

Closed #41 DB migrations for fee rules and records 2026-04-07 12:04:21 +02:00

Closed #38 DB migration for audit log table 2026-04-07 12:03:40 +02:00

Closed #35 DB migration for permissions table 2026-04-07 12:02:58 +02:00

Closed #30 DB migrations for Stufen tables 2026-04-07 12:02:08 +02:00

Closed #28 Family entity, mapper, service, controller 2026-04-07 12:01:15 +02:00

Closed #27 DB migrations for families table 2026-04-07 11:59:22 +02:00

Closed #24 Member detail Vue component 2026-04-07 11:58:20 +02:00

Closed #23 Member list Vue component 2026-04-07 11:55:34 +02:00

Closed #22 Create MemberController API endpoints 2026-04-07 11:41:38 +02:00

Closed #21 Create MemberService with CRUD operations 2026-04-07 11:39:43 +02:00

Closed #20 Create Member entity and mapper 2026-04-07 11:37:05 +02:00

Closed #19 Set up DB migrations for addresses, phones, emails 2026-04-07 11:34:39 +02:00

Closed #18 Set up DB migrations for members table 2026-04-07 11:29:54 +02:00

108 Issues created by 0 users

Opened #3 Epic: Stufen Management 2026-04-07 11:12:46 +02:00

Opened #2 Epic: Family Management 2026-04-07 11:12:46 +02:00

Opened #1 Epic: Member Management 2026-04-07 11:12:46 +02:00

Opened #4 Epic: Fee System 2026-04-07 11:12:52 +02:00

Opened #5 Epic: Search & Saved Queries 2026-04-07 11:12:58 +02:00

Opened #6 Epic: Reports & Exports 2026-04-07 11:13:07 +02:00

Opened #7 Epic: Data Import 2026-04-07 11:13:11 +02:00

Opened #8 Epic: Milestones/Jubiläen 2026-04-07 11:13:16 +02:00

Opened #9 Epic: Lagertracking 2026-04-07 11:13:22 +02:00

Opened #10 Epic: Injury Tracking 2026-04-07 11:13:27 +02:00

Opened #11 Epic: Calendar Integration 2026-04-07 11:13:32 +02:00

Opened #12 Epic: Contacts Integration 2026-04-07 11:13:36 +02:00

Opened #13 Epic: Files Integration 2026-04-07 11:13:41 +02:00

Opened #14 Epic: Access Control 2026-04-07 11:13:48 +02:00

Opened #15 Epic: Audit Log 2026-04-07 11:13:53 +02:00

Opened #16 Epic: Security & Encryption 2026-04-07 11:14:01 +02:00

Opened #17 Epic: Soft Deletion & DSGVO 2026-04-07 11:14:08 +02:00

Opened #18 Set up DB migrations for members table 2026-04-07 11:14:23 +02:00

Opened #19 Set up DB migrations for addresses, phones, emails 2026-04-07 11:14:26 +02:00

Opened #20 Create Member entity and mapper 2026-04-07 11:14:31 +02:00

Opened #21 Create MemberService with CRUD operations 2026-04-07 11:14:36 +02:00

Opened #22 Create MemberController API endpoints 2026-04-07 11:14:40 +02:00

Opened #23 Member list Vue component 2026-04-07 11:14:44 +02:00

Opened #24 Member detail Vue component 2026-04-07 11:14:51 +02:00

Opened #25 Phone number E.164 validation 2026-04-07 11:14:55 +02:00

Opened #26 IBAN validation 2026-04-07 11:14:59 +02:00

Opened #27 DB migrations for families table 2026-04-07 11:15:07 +02:00

Opened #28 Family entity, mapper, service, controller 2026-04-07 11:15:12 +02:00

Opened #29 Family Vue components (list + detail) 2026-04-07 11:15:17 +02:00

Opened #30 DB migrations for Stufen tables 2026-04-07 11:15:22 +02:00

Opened #31 Stufen backend (entity, service, controller) 2026-04-07 11:15:28 +02:00

Opened #32 Stufen management UI in Settings 2026-04-07 11:15:31 +02:00

Opened #33 Global search bar 2026-04-07 11:15:36 +02:00

Opened #34 Preset quick filters 2026-04-07 11:15:41 +02:00

Opened #35 DB migration for permissions table 2026-04-07 11:15:50 +02:00

Opened #36 PermissionService implementation 2026-04-07 11:15:56 +02:00

Opened #37 Permission management UI 2026-04-07 11:16:00 +02:00

Opened #38 DB migration for audit log table 2026-04-07 11:16:06 +02:00

Opened #39 AuditService implementation 2026-04-07 11:16:11 +02:00

Opened #40 Audit log viewer UI 2026-04-07 11:16:15 +02:00

Opened #41 DB migrations for fee rules and records 2026-04-07 11:16:26 +02:00

Opened #42 FeeCalculationService 2026-04-07 11:16:36 +02:00

Opened #43 Fee rules DSL editor UI 2026-04-07 11:16:42 +02:00

Opened #44 Fee overview Vue component 2026-04-07 11:16:48 +02:00

Opened #45 Unit tests for FeeCalculationService 2026-04-07 11:16:56 +02:00

Opened #46 ReportService + PDF generation 2026-04-07 11:17:08 +02:00

Opened #47 CSV export with UTF-8 BOM 2026-04-07 11:17:12 +02:00

Opened #48 Encrypted export (password-protected ZIP) 2026-04-07 11:17:17 +02:00

Opened #49 Reports UI (selection + preview + download) 2026-04-07 11:17:23 +02:00

Opened #50 CalendarSyncService 2026-04-07 11:17:36 +02:00

Opened #51 ContactsSyncService 2026-04-07 11:17:41 +02:00

Opened #52 FileLinkService + FileExplorer component 2026-04-07 11:17:48 +02:00

Opened #53 Visual query builder (backend + frontend) 2026-04-07 11:18:02 +02:00

Opened #54 DB migrations for Lager tables 2026-04-07 11:18:08 +02:00

Opened #55 Lager backend + frontend 2026-04-07 11:18:17 +02:00

Opened #56 DB migration for injuries tables 2026-04-07 11:18:21 +02:00

Opened #57 Injury tracking backend + frontend 2026-04-07 11:18:27 +02:00

Opened #58 Import wizard (CSV/Excel) 2026-04-07 11:18:35 +02:00

Opened #59 Membership milestones (Jubiläen) 2026-04-07 11:18:42 +02:00

Opened #60 EncryptionService implementation 2026-04-07 11:18:55 +02:00

Opened #61 Soft deletion logic 2026-04-07 11:19:06 +02:00

Opened #62 DSGVO actions (export + hard-delete) 2026-04-07 11:19:17 +02:00

Opened #63 Stufe change suggestions 2026-04-07 11:19:26 +02:00

Opened #64 Security hardening & pentest prep 2026-04-07 11:19:36 +02:00

Opened #65 Integration test suite for API endpoints 2026-04-07 11:19:44 +02:00

Opened #66 Data validation comprehensive tests 2026-04-07 11:19:52 +02:00

Opened #115 Add app icon for Nextcloud navigation bar 2026-04-07 16:47:30 +02:00

Opened #116 Fix button styling and text overflow issues 2026-04-07 16:47:58 +02:00

Opened #117 Fix Umlauts: "Beitraege" should be "Beiträge" 2026-04-07 16:48:02 +02:00

Opened #118 Left sidebar navigation buttons are not clickable 2026-04-07 16:48:06 +02:00

Opened #123 Black-Box UI Testing with Playwright 2026-04-07 21:02:56 +02:00

Opened #124 Nav sidebar clicks don't navigate between views 2026-04-07 21:38:04 +02:00

Opened #125 Member detail form fields render blank despite data being loaded 2026-04-07 21:38:10 +02:00

Opened #126 Audit log not recording any events 2026-04-07 21:38:18 +02:00

Opened #127 Fee table shows member IDs instead of names 2026-04-07 21:38:21 +02:00

Opened #128 No default Stufen seeded on install 2026-04-07 21:38:25 +02:00

Opened #129 Missing Lagerhistorie and Verletzungsprotokoll report types 2026-04-07 21:38:30 +02:00

Opened #130 TypeError: e.find is not a function on every page load 2026-04-07 21:38:36 +02:00

Opened #131 @nextcloud/vue appName and appVersion not configured 2026-04-07 21:38:42 +02:00

Opened #133 Inline member search does not filter the list 2026-04-09 15:29:39 +02:00

Opened #134 Member list Stufe column shows raw stufeId instead of name 2026-04-09 15:29:46 +02:00

Opened #135 Add missing pages to sidebar navigation (Injuries, Import, Queries) 2026-04-09 15:29:53 +02:00

Opened #136 UX: Various minor UI polish issues 2026-04-09 15:30:04 +02:00

Opened #147 [Epic] Comprehensive Import/Export System for Backup and Migration 2026-04-09 18:29:50 +02:00

Opened #148 feat: per-entity CSV export for all data types 2026-04-09 18:30:14 +02:00

Opened #149 feat: full ZIP bundle export with sensitive data toggle 2026-04-09 18:30:31 +02:00

Opened #150 feat: per-entity CSV import with German header auto-mapping 2026-04-09 18:30:50 +02:00

Opened #151 feat: ZIP bundle import with dependency-aware auto-ordering 2026-04-09 18:31:09 +02:00

Opened #152 feat: per-field conflict resolution UI for duplicate records 2026-04-09 18:31:30 +02:00

Opened #153 feat: content-based matching for cross-instance migration 2026-04-09 18:31:51 +02:00

Opened #160 feat: Juleica number and expiry date for members with calendar reminder 2026-04-09 22:14:12 +02:00

Opened #161 bug: imported records cannot be edited after import 2026-04-09 22:15:54 +02:00

Opened #162 feat: make Geburtsdatum optional for members 2026-04-09 22:21:54 +02:00

Opened #165 Encryption fallback returns plaintext silently 2026-04-10 16:03:49 +02:00

Opened #166 No authorization checks on most controller endpoints 2026-04-10 16:03:49 +02:00

Opened #164 DSGVO export uses query parameter for password instead of request body 2026-04-10 16:03:49 +02:00

Opened #163 InputSanitizer exists but is never called from controllers 2026-04-10 16:03:49 +02:00

Opened #167 Rate limiter bypass via varying query parameters 2026-04-10 16:03:51 +02:00

Opened #168 ZIP path traversal risk in BundleImportService 2026-04-10 16:03:57 +02:00

Opened #169 Temp file permissions too permissive in export/import services 2026-04-10 16:04:01 +02:00

Opened #170 CalendarSync/ContactsSync bypass Nextcloud APIs and access control 2026-04-10 16:04:05 +02:00

Opened #171 CSRF protection disabled on export endpoints with side effects 2026-04-10 16:04:10 +02:00

Opened #172 Error messages leak internal implementation details 2026-04-10 16:04:14 +02:00

Opened #173 No Content-Security-Policy headers on file download responses 2026-04-10 16:04:17 +02:00

Opened #174 CSV injection potential in exports 2026-04-10 16:04:22 +02:00

Opened #175 Frontend date formatting inconsistency 2026-04-10 16:04:25 +02:00

Opened #192 Database portability: support PostgreSQL and SQLite alongside MySQL/MariaDB 2026-04-12 13:29:00 +02:00

Opened #194 Abfrage-Builder: NOT-Operator, explizite Klammern und vollständige Feldabdeckung 2026-04-17 19:58:36 +02:00