v0.0.4-alpha
Pre-releaseThis alpha release marks a major step toward beta readiness, with development concentrated on analytics, platform modernization, and operational hardening. The headline feature is the new Analysis Explorer — a flexible, self-service analytics workspace that replaces the legacy generic analysis and pivot-table stack, complemented by an executive overview dashboard, indication compare & groups, benchmarking UI refinements, and more precise transport-time KPIs. Surrounding the statistics work, the release adds hospital access grants, indication raw review, allocation CSV export, participant onboarding, monthly submission reminders, and import/projection deduplication.
On the platform side, the application was upgraded to Symfony 8.1 with broader modernization (attribute-based DI, console commands, Foundry 2.x, Swiss Knife, JS linting). Full German localization (locale switcher, user preferences, localized emails) landed alongside a security audit, test-suite improvements (DAMA rollbacks, parallel ParaTest), and beta-readiness ops work: health checks, backup/restore runbooks, environment validation, and SQL performance tuning.
What's Changed
Features
- feat(notifications): Add administrative email notifications by @nplhse in #189
- feat: Add hospital access grants and delegated access management by @nplhse in #190
- feat: Deduplicate statistics (including projections) and improve rebuild consistency by @nplhse in #192
- feat(import): Add duplicate detection during import processing by @nplhse in #193
- feat: Add monthly submission reminder workflow by @nplhse in #198
- feat(statistics): Add indication comparison and grouping features by @nplhse in #199
- feat(statistics): Add indication comparison groups by @nplhse in #203
- feat: Add executive overview dashboard by @nplhse in #205
- feat(statistics): Polish overview dashboard by @nplhse in #206
- feat(rector): Integrate Rector Swiss Knife into quality workflows by @nplhse in #208
- feat(js): Add JavaScript quality tooling by @nplhse in #210
- feat(statistics): Analysis Explorer v2 (Alpha MVP) by @nplhse in #220
- feat(statistics): Analysis Explorer: Hospitals, distribution profiles, and library expansion by @nplhse in #221
- feat(explorer): group edit drawer dropdowns by clinical category by @nplhse in #228
- feat(statistics): Improve Filters in Reports, Analysis Explorer and Allocation list by @nplhse in #229
- feat(user): add show/hide password toggle for password fields by @nplhse in #231
- feat(content): editable slugs for posts and pages by @nplhse in #232
- feat(indications): Indication raw review workflow by @nplhse in #235
- feat(export): Add scoped CSV export for owned hospital allocations by @nplhse in #238
- feat(allocations): Add explore allocation filters and closed-department highlighting by @nplhse in #240
- feat: Participant onboarding dashboard and “My hospitals” allocation filter by @nplhse in #241
- feat: Refresh overview materialized views only on structural projection changes by @nplhse in #242
- feat(i18n): German locale support and complete DE translations by @nplhse in #246
- feat(ops): backup and restore tooling for beta readiness by @nplhse in #248
- feat(install): add app:env:check for beta-readiness P0-2 by @nplhse in #249
- feat(shared): add GET /health endpoint for beta monitoring by @nplhse in #250
Bugfixes
- fix(hospital): Fix participating hospital handling in EasyAdmin by @nplhse in #191
- fix(statistics): break out of turbo frame for top report card links by @nplhse in #207
- fix(upgrade-dev): Clear test cache during upgrade workflows by @nplhse in #209
- fix(engagement): send monthly reminders on first working day only (#217) by @nplhse in #219
- fix(statistics): Align Overview dashboard charts with Analysis Explorer library views by @nplhse in #226
- fix(overview): merge scoped and all-time overview slice query by @nplhse in #227
- fix(migration): drop projection backfill from deploy migration by @nplhse in #233
- fix(allocation): Prevent Address embeddable Exception on rendering hospital data by @nplhse in #236
- fix: prevent Foundry factory classes from breaking prod deploy by @nplhse in #243
- fix(engagement): send monthly reminder in hospital owner locale by @nplhse in #252
- fix(mail): localize transactional and admin notification emails by @nplhse in #254
- fix: Widgets are displaying less recent blogposts then expected by @nplhse in #255
- fix(statistics): restore heatmap mode toggle on overview and benchmarking charts by @nplhse in #256
Security
Chore
- chore: Bump application version and update dependencies by @nplhse in #188
- chore: Remove pitch deck materials from repository by @nplhse in #195
- chore(deps): bump codecov/codecov-action from 6 to 7 by @dependabot[bot] in #173
- chore(deps): consolidate Dependabot updates for GHA and JS dev tooling by @nplhse in #218
- chore: Block wordpress scanner requests by @nplhse in #239
- chore(deps-dev): bump the eslint group with 2 updates by @dependabot[bot] in #245
- chore(deps): bump actions/cache from 5 to 6 by @dependabot[bot] in #244
Refactoring
- refactor(fixtures): Refactor seed data into Doctrine fixtures by @nplhse in #194
- refactor(statistics): Align benchmarking UI with statistics layout by @nplhse in #200
- refactor(symfony): Upgrade application to Symfony 8.1 by @nplhse in #201
- refactor(symfony): Modernize Symfony configuration and application structure by @nplhse in #202
- refactor(statistics): Refine transport time KPI calculations by @nplhse in #204
- refactor(symfony): Clean up services.yaml by @nplhse in #223
- refactor(console): migrate app commands to Symfony 8.1 invokable style by @nplhse in #224
- remove: Pivot tables from Statistics by @nplhse in #222
- refactor(allocation): SQL GROUP BY for countByMonthLast12Months (P0-4) by @nplhse in #251
Tests
- tests: Optimize test suite performance and reliability by @nplhse in #196
- refactor(tests): Use DAMA transaction rollbacks for faster tests by @nplhse in #197
Full Changelog: v0.0.3-alpha...v0.0.4-alpha