Changelog

A complete history of features, fixes, and improvements across all releases

61
Releases
73
Pull Requests
225
Commits
2
Contributors

Release Groups

  1. v0.6.0 – v0.12.5 — i18n, Translations & Data Management
  2. v0.1.0 – v0.5.8 — Dynamic Forms & BI-API v2
  3. v0.0.48 – v0.0.61 — Security & Admin Polish
  4. v0.0.40 – v0.0.47 — Visualization & UX
  5. v0.0.30 – v0.0.39 — Analytics & Infrastructure
  6. v0.0.20 – v0.0.29 — Documentation & Quality
  7. v0.0.10 – v0.0.19 — Core Features
  8. v0.0.1 – v0.0.9 — Foundation

v0.6.0 – v0.12.5 i18n, Translations & Data Management

Latest
+ Added
  • Full internationalization (i18n) support with German and English via @nuxtjs/i18n
  • LanguageSwitch component for frontend language toggling
  • LocaleTabs component for bilingual editing in block and template editors
  • useTranslations and useApiLocale composables for translation management and locale-aware API calls
  • TranslationController with 5 API endpoints for CRUD, import, and export of translations
  • Translation model for database-backed multilingual content
  • Locale-aware layout settings (header, footer, sections, buttons per language)
  • AI-powered test data generation via LLM prompt (/admin/testdata/prompt)
  • Test data import from JSON (/admin/testdata/import)
  • Per-template submission clearing (/admin/meldungen/clear-by-template)
  • App name configuration endpoint (/api/app-name, /api/admin/app-name)
  • Editor role added to the role hierarchy (user → editor → admin → developer)
  • SimpleHtmlEditor, ValidationErrors, DashboardViewSelector components
  • DynamicChart component replacing legacy hardcoded chart components
~ Changed
  • Field type count increased from 17 to 18 (added toggle as distinct type)
  • Test data endpoints refactored: /testdata/seed replaced by /testdata/prompt + /testdata/import
  • Block editor and template editor now support bilingual field labels (DE/EN tabs)
  • Layout settings extended with per-locale content for all sections
  • Role system expanded from 3 to 4 roles with editor role
Fixed
  • Locale-aware form rendering with correct language fallback
  • Translation import/export preserving all locale data
  • Dashboard charts adapted to multilingual field labels

v0.1.0 – v0.5.8 Dynamic Forms & BI-API v2

+ Added
  • Dynamic form block system with 17 field types, reusable blocks, and template editor
  • FormRenderer and DynamicField components for rendering forms from templates
  • /meldung/:slug page for dynamic form URLs
  • Template import/export as JSON bundles with block reuse
  • Template duplication (inactive copy)
  • Block editor with drag & drop UI, field previews, and extended field types
  • Developer role with block editor access; Editor role for admin access to templates
  • Dynamic BI-API v2: /bi/felder (field discovery), /bi/daten, /bi/stats/feld/{slug}
  • BiFieldRegistry service for automatic field discovery from form blocks
  • Dashboard template selector with per-template statistics
  • Secure math-based CAPTCHA system (3 difficulty levels, SVG rendering, honeypot)
  • WYSIWYG page layout editor with logo upload (header, footer, content sections)
  • Configurable index page with editable cards, sections, and buttons
  • Pre-commit hooks running Pint, ESLint, and Prettier
  • Comprehensive GitHub Pages documentation update (40+ API endpoints, 17 pages, 25 components)
~ Changed
  • BI-API refactored from static endpoints to dynamic field-based queries
  • Dashboard uses Submission model with JSONB storage instead of FallMeldung
  • Admin sidebar reorganized with grouped sections (Formulare, System)
  • "Seiten" renamed to "Seitendesign" in admin navigation
Fixed
  • Admin messages display adapted to block-based storage logic
  • Middleware guard for block editor and template pages
  • Form scroll behavior when filling required fields
  • CAPTCHA cache fallback and error handling
  • Block editor layout with wider panels and draggable resizers
  • DynamicField Bundesland options and dependency support

v0.0.48 – v0.0.61 Security & Admin Polish

PR #61 – #78
+ Added
  • TOTP-based two-factor authentication (2FA) for the admin area
  • Confirmation modal and "Delete All Reports" bulk action
  • Mobile-ready admin menu with hamburger toggle for small screens
  • Test data seeder generating ~100 realistic incident reports for development
  • Admin sidebar help button linking to GitHub Pages documentation
  • CHANGELOG.md and visual changelog page for GitHub Pages
~ Changed
  • Editable maintenance text via admin HTML editor
  • PR title parsed as fallback for version bump type detection
Fixed
  • Multiple Laravel Pint code style violations (concat_space, blank_line_before_return, single_quote)
  • 2FA encryption failures in CI environment
  • Test data seeder wrapped in DB transaction with error handling

v0.0.40 – v0.0.47 Visualization & UX

PR #50 – #58
+ Added
  • Pie chart toggle for all dashboard widgets (switch between bar and pie views)
  • Tooltips on pie chart segment hover with percentage and count
  • Admin profile page for editing own user data
~ Changed
  • Profile, logout, and version info moved to sidebar footer
Fixed
  • Date formatting in report list (datum_vorfall)
  • Bracket artifacts in Gefaehrdung field display
  • Sidebar footer pushed to bottom with margin-top: auto
  • Notification timestamps display

v0.0.30 – v0.0.39 Analytics & Infrastructure

PR #40 – #49
+ Added
  • BI statistics API with token-based authentication and documentation
  • API token management page in admin panel (generate and revoke tokens)
  • Version number display in admin sidebar
  • Accessibility and BI-API feature cards on GitHub Pages homepage
~ Changed
  • Admin seeder only runs when no admin user exists (skip on re-deploy)
Fixed
  • Dashboard not displaying messages due to double JSON encoding
  • Form submission failure from NOT NULL constraints on optional fields
  • NULL/empty rows filtered in Gewaltart JSON query

v0.0.20 – v0.0.29 Documentation & Quality

PR #26 – #39
+ Added
  • GitHub Pages documentation site (technical docs, user manual, accessibility guide)
  • Pre-commit and pre-push git hooks for lint and test checks
  • Admin panel with role-based access control and user management
  • Frontend accessibility improvements (WCAG 2.1 AA compliance)
  • Inline form validation with field-level error messages
  • Version display on backend welcome page
~ Changed
  • Deployment scripts moved to scripts/ directory
Removed
  • Legacy Django project (3G/ directory)
Fixed
  • ESLint warnings and errors across entire frontend codebase
  • Laravel Pint style issues (single_quote, class_definition)

v0.0.10 – v0.0.19 Core Features

PR #14 – #25
+ Added
  • Semantic versioning (v0.0.1) with auto-bump GitHub Action on PR merge
  • Admin-configurable maintenance mode via database toggle
  • Configurable maintenance page for demo deployments
  • Automated API tests for auth, meldung, dashboard, and anonymization endpoints
  • Quality infrastructure: testing, linting, and coverage tooling
  • Standard project files: README, CONTRIBUTING, LICENSE, Makefile
Fixed
  • Let's Encrypt SSL: activate nginx config after certificate retrieval
  • LETSENCRYPT_DOMAIN and EMAIL read from .env instead of hardcoding
  • Default Laravel ExampleTest removed (failed due to encryption bootstrap)
  • HasFactory trait added to FallMeldung model
  • APP_KEY added to phpunit.xml for test environment

v0.0.1 – v0.0.9 Foundation

PR #1 – #13
+ Added
  • Complete rewrite from Django to Laravel 13 + Nuxt 3
  • CI/CD pipeline with GitHub Actions (syntax checks, tests, deployment)
  • Hetzner Docker deployment with Docker Compose orchestration
  • Let's Encrypt SSL setup with Certbot auto-renewal
  • Nginx reverse proxy configuration
  • Anonymous incident reporting form with multi-step layout
  • PII anonymization service (names, emails, phone numbers, dates, room numbers)
  • Admin login with Laravel Sanctum token authentication
  • Dashboard with incident statistics and report listing
  • Mobile-first responsive form design
Fixed
  • Form submission: map camelCase field names to snake_case
  • Login: correct API endpoint URLs, add HasApiTokens trait
  • Double-hashed password in AdminSeeder
  • SSH deployment: clone script execution on remote server
  • YAML syntax error in deployment workflow