dependabot[bot]
4132ba486d
build(deps-dev): bump typescript from 5.9.3 to 6.0.2 in /frontend
...
Bumps [typescript](https://github.com/microsoft/TypeScript ) from 5.9.3 to 6.0.2.
- [Release notes](https://github.com/microsoft/TypeScript/releases )
- [Commits](https://github.com/microsoft/TypeScript/compare/v5.9.3...v6.0.2 )
---
updated-dependencies:
- dependency-name: typescript
dependency-version: 6.0.2
dependency-type: direct:development
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Daniel Volz <mail@danielvolz.org >
2026-03-30 20:18:16 +02:00
dependabot[bot]
0faad5d28b
build(deps): bump i18next from 25.10.4 to 26.0.1 in /frontend
...
Bumps [i18next](https://github.com/i18next/i18next ) from 25.10.4 to 26.0.1.
- [Release notes](https://github.com/i18next/i18next/releases )
- [Changelog](https://github.com/i18next/i18next/blob/master/CHANGELOG.md )
- [Commits](https://github.com/i18next/i18next/compare/v25.10.4...v26.0.1 )
---
updated-dependencies:
- dependency-name: i18next
dependency-version: 26.0.1
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Daniel Volz <mail@danielvolz.org >
2026-03-30 20:17:55 +02:00
dependabot[bot]
218b9056fa
build(deps): bump lucide-react from 0.577.0 to 1.7.0 in /frontend
...
Bumps [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react ) from 0.577.0 to 1.7.0.
- [Release notes](https://github.com/lucide-icons/lucide/releases )
- [Commits](https://github.com/lucide-icons/lucide/commits/1.7.0/packages/lucide-react )
---
updated-dependencies:
- dependency-name: lucide-react
dependency-version: 1.7.0
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Daniel Volz <mail@danielvolz.org >
2026-03-30 20:17:28 +02:00
dependabot[bot]
a7bd353f75
build(deps): bump react-i18next from 16.6.1 to 17.0.1 in /frontend
...
Bumps [react-i18next](https://github.com/i18next/react-i18next ) from 16.6.1 to 17.0.1.
- [Changelog](https://github.com/i18next/react-i18next/blob/master/CHANGELOG.md )
- [Commits](https://github.com/i18next/react-i18next/compare/v16.6.1...v17.0.1 )
---
updated-dependencies:
- dependency-name: react-i18next
dependency-version: 17.0.1
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-30 20:16:49 +02:00
dependabot[bot]
4b8fa10b39
build(deps): bump picomatch from 4.0.3 to 4.0.4 in /frontend
...
Bumps [picomatch](https://github.com/micromatch/picomatch ) from 4.0.3 to 4.0.4.
- [Release notes](https://github.com/micromatch/picomatch/releases )
- [Changelog](https://github.com/micromatch/picomatch/blob/master/CHANGELOG.md )
- [Commits](https://github.com/micromatch/picomatch/compare/4.0.3...4.0.4 )
---
updated-dependencies:
- dependency-name: picomatch
dependency-version: 4.0.4
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-26 07:36:27 +01:00
dependabot[bot]
8372b7ec27
build(deps): bump the minor-and-patch group in /frontend with 5 updates
...
Squash merge PR #469
2026-03-25 07:11:36 +01:00
Daniel Volz
68ab79c713
feat: enable weekday-based medication scheduling
...
Closes #463
2026-03-20 14:58:25 +01:00
dependabot[bot]
fb62227154
build(deps-dev): bump jsdom from 28.1.0 to 29.0.0 in /frontend
...
Bumps [jsdom](https://github.com/jsdom/jsdom ) from 28.1.0 to 29.0.0.
- [Release notes](https://github.com/jsdom/jsdom/releases )
- [Changelog](https://github.com/jsdom/jsdom/blob/v29.0.0/Changelog.md )
- [Commits](https://github.com/jsdom/jsdom/compare/v28.1.0...v29.0.0 )
---
updated-dependencies:
- dependency-name: jsdom
dependency-version: 29.0.0
dependency-type: direct:development
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Daniel Volz <mail@danielvolz.org >
2026-03-16 08:36:53 +01:00
Daniel Volz
0f9458b7cb
chore: align vite 8 and plugin-react 6 stack
...
* chore: align vite 8 and plugin-react 6 stack
* fix: remove array index keys from intake rows
* chore: format shared schedule test fix
2026-03-16 08:26:50 +01:00
dependabot[bot]
b57dc0fb35
build(deps): bump undici from 7.21.0 to 7.24.1 in /frontend
...
Fixes multiple security vulnerabilities: CVE-2026-1525, CVE-2026-1528, CVE-2026-2581, CVE-2026-1527, CVE-2026-2229, CVE-2026-1526
2026-03-14 22:04:55 +01:00
dependabot[bot]
e0a50d01bb
build(deps): bump react-i18next from 15.7.4 to 16.5.6 in /frontend ( #395 )
...
* build(deps): bump react-i18next from 15.7.4 to 16.5.6 in /frontend
Bumps [react-i18next](https://github.com/i18next/react-i18next ) from 15.7.4 to 16.5.6.
- [Changelog](https://github.com/i18next/react-i18next/blob/master/CHANGELOG.md )
- [Commits](https://github.com/i18next/react-i18next/compare/v15.7.4...v16.5.6 )
---
updated-dependencies:
- dependency-name: react-i18next
dependency-version: 16.5.6
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
* test(e2e): harden selectors for PR #395 checks
* test(e2e): harden API key and share button assertions
* test: stabilize flaky playwright checks for settings and schedule
* test: skip env-dependent e2e assertions when controls are unavailable
---------
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Daniel Volz <mail@danielvolz.org >
2026-03-10 13:53:16 +01:00
dependabot[bot]
2db49e427a
build(deps): bump the minor-and-patch group in /frontend with 4 updates
...
Bumps the minor-and-patch group in /frontend with 4 updates: [i18next](https://github.com/i18next/i18next ), [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react ), [@biomejs/biome](https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome ) and [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node ).
Updates `i18next` from 25.8.13 to 25.8.14
- [Release notes](https://github.com/i18next/i18next/releases )
- [Changelog](https://github.com/i18next/i18next/blob/master/CHANGELOG.md )
- [Commits](https://github.com/i18next/i18next/compare/v25.8.13...v25.8.14 )
Updates `lucide-react` from 0.575.0 to 0.577.0
- [Release notes](https://github.com/lucide-icons/lucide/releases )
- [Commits](https://github.com/lucide-icons/lucide/commits/0.577.0/packages/lucide-react )
Updates `@biomejs/biome` from 2.4.4 to 2.4.6
- [Release notes](https://github.com/biomejs/biome/releases )
- [Changelog](https://github.com/biomejs/biome/blob/main/packages/@biomejs/biome/CHANGELOG.md )
- [Commits](https://github.com/biomejs/biome/commits/@biomejs/biome@2.4.6/packages/@biomejs/biome )
Updates `@types/node` from 25.3.3 to 25.3.5
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases )
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node )
---
updated-dependencies:
- dependency-name: i18next
dependency-version: 25.8.14
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: minor-and-patch
- dependency-name: lucide-react
dependency-version: 0.577.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: minor-and-patch
- dependency-name: "@biomejs/biome"
dependency-version: 2.4.6
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: minor-and-patch
- dependency-name: "@types/node"
dependency-version: 25.3.5
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: minor-and-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Daniel Volz <mail@danielvolz.org >
2026-03-09 22:11:32 +01:00
Daniel Volz
30c97e2f0d
fix: use per-intake reminder setting as single source of truth ( #384 )
...
- Filter intakes by per-intake intakeRemindersEnabled instead of falling
back to medication-level setting (fixes #383 )
- Add SMTP delivery validation with accepted/rejected recipient checks
- Enhance email success logging with recipient, messageId, SMTP response
- Simplify MedDetailModal reminder icon logic to match backend behavior
- Sync lockfile versions to 1.18.2
2026-03-06 19:50:45 +01:00
dependabot[bot]
8fdd79ff33
build(deps-dev): bump @types/node ( #370 )
...
Bumps the minor-and-patch group in /frontend with 1 update: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node ).
Updates `@types/node` from 25.3.2 to 25.3.3
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases )
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node )
---
updated-dependencies:
- dependency-name: "@types/node"
dependency-version: 25.3.3
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: minor-and-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-02 12:56:16 +01:00
Daniel Volz
cd8263e607
fix: align desktop intake labels and form field pairing ( #368 )
...
* fix: align desktop intake labels and form field pairing
* chore: align frontend lockfile version and include remaining local changes
2026-03-02 01:33:28 +01:00
dependabot[bot]
46d768dd4e
build(deps): bump the minor-and-patch group in /frontend with 5 updates ( #344 )
...
Bumps the minor-and-patch group in /frontend with 5 updates:
| Package | From | To |
| --- | --- | --- |
| [react](https://github.com/facebook/react/tree/HEAD/packages/react ) | `19.2.0` | `19.2.4` |
| [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react ) | `19.2.2` | `19.2.14` |
| [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom ) | `19.2.0` | `19.2.4` |
| [@types/react-dom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom ) | `19.2.2` | `19.2.3` |
| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node ) | `25.3.0` | `25.3.2` |
Updates `react` from 19.2.0 to 19.2.4
- [Release notes](https://github.com/facebook/react/releases )
- [Changelog](https://github.com/facebook/react/blob/main/CHANGELOG.md )
- [Commits](https://github.com/facebook/react/commits/v19.2.4/packages/react )
Updates `@types/react` from 19.2.2 to 19.2.14
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases )
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react )
Updates `react-dom` from 19.2.0 to 19.2.4
- [Release notes](https://github.com/facebook/react/releases )
- [Changelog](https://github.com/facebook/react/blob/main/CHANGELOG.md )
- [Commits](https://github.com/facebook/react/commits/v19.2.4/packages/react-dom )
Updates `@types/react-dom` from 19.2.2 to 19.2.3
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases )
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-dom )
Updates `@types/node` from 25.3.0 to 25.3.2
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases )
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node )
Updates `@types/react` from 19.2.2 to 19.2.14
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases )
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react )
Updates `@types/react-dom` from 19.2.2 to 19.2.3
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases )
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-dom )
---
updated-dependencies:
- dependency-name: react
dependency-version: 19.2.4
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: minor-and-patch
- dependency-name: "@types/react"
dependency-version: 19.2.14
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: minor-and-patch
- dependency-name: react-dom
dependency-version: 19.2.4
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: minor-and-patch
- dependency-name: "@types/react-dom"
dependency-version: 19.2.3
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: minor-and-patch
- dependency-name: "@types/node"
dependency-version: 25.3.2
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: minor-and-patch
- dependency-name: "@types/react"
dependency-version: 19.2.14
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: minor-and-patch
- dependency-name: "@types/react-dom"
dependency-version: 19.2.3
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: minor-and-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-27 01:28:55 +01:00
Daniel Volz
cc22f80209
fix: align frontend types and tests for react 19 ( #339 )
2026-02-27 01:01:48 +01:00
dependabot[bot]
8b3901c1e1
build(deps): bump rollup from 4.53.5 to 4.59.0 in /frontend ( #333 )
...
Bumps [rollup](https://github.com/rollup/rollup ) from 4.53.5 to 4.59.0.
- [Release notes](https://github.com/rollup/rollup/releases )
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rollup/rollup/compare/v4.53.5...v4.59.0 )
---
updated-dependencies:
- dependency-name: rollup
dependency-version: 4.59.0
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-26 06:29:10 +01:00
Copilot
2a9ca39c24
Allow medications with only a generic name (no commercial name required) ( #311 )
...
* Initial plan
* feat: allow generic name only for medications (frontend changes)
- Add getMedDisplayName() helper for consistent name display
- Update validation to require either commercial or generic name
- Update all display locations to use display name fallback
- Add i18n keys for nameOrGenericRequired in en.json and de.json
- Remove required attribute from commercial name field
- Update FIELD_LIMITS.name.min from 1 to 0
Co-authored-by: DanielVolz <3275994+DanielVolz@users.noreply.github.com >
* feat: allow generic name only for medications (backend changes)
- Update Zod schema to allow empty name with cross-field refinement
- Update reminder scheduler to use name || genericName for display
- Update planner routes to match medications by display name
- Update existing tests to match new validation behavior
Co-authored-by: DanielVolz <3275994+DanielVolz@users.noreply.github.com >
* fix: update placeholder text and fix FIELD_LIMITS test
- Remove "(optional)" from generic name placeholder in en/de
- Update types.test.ts to expect FIELD_LIMITS.name.min = 0
Co-authored-by: DanielVolz <3275994+DanielVolz@users.noreply.github.com >
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: DanielVolz <3275994+DanielVolz@users.noreply.github.com >
2026-02-25 21:29:25 +01:00
dependabot[bot]
05226cc500
build(deps): bump the minor-and-patch group in /frontend with 4 updates ( #291 )
...
Bumps the minor-and-patch group in /frontend with 4 updates: [i18next](https://github.com/i18next/i18next ), [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react ), [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom ) and [@biomejs/biome](https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome ).
Updates `i18next` from 25.8.10 to 25.8.13
- [Release notes](https://github.com/i18next/i18next/releases )
- [Changelog](https://github.com/i18next/i18next/blob/master/CHANGELOG.md )
- [Commits](https://github.com/i18next/i18next/compare/v25.8.10...v25.8.13 )
Updates `lucide-react` from 0.574.0 to 0.575.0
- [Release notes](https://github.com/lucide-icons/lucide/releases )
- [Commits](https://github.com/lucide-icons/lucide/commits/0.575.0/packages/lucide-react )
Updates `react-router-dom` from 7.13.0 to 7.13.1
- [Release notes](https://github.com/remix-run/react-router/releases )
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md )
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@7.13.1/packages/react-router-dom )
Updates `@biomejs/biome` from 2.4.1 to 2.4.4
- [Release notes](https://github.com/biomejs/biome/releases )
- [Changelog](https://github.com/biomejs/biome/blob/main/packages/@biomejs/biome/CHANGELOG.md )
- [Commits](https://github.com/biomejs/biome/commits/@biomejs/biome@2.4.4/packages/@biomejs/biome )
---
updated-dependencies:
- dependency-name: i18next
dependency-version: 25.8.13
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: minor-and-patch
- dependency-name: lucide-react
dependency-version: 0.575.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: minor-and-patch
- dependency-name: react-router-dom
dependency-version: 7.13.1
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: minor-and-patch
- dependency-name: "@biomejs/biome"
dependency-version: 2.4.4
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: minor-and-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-23 19:25:28 +01:00
Daniel Volz
088a6c1a05
chore: fix all Biome lint warnings and MedDetail intake bell icons ( #265 )
...
- Backend: refactor nested ternaries, remove unused imports/any types
- Frontend: fix exhaustive deps, a11y label associations, array index keys,
empty CSS blocks, unused vars, type annotations
- MedDetail modal: fix intake schedule bell icons not rendering (use unified
intake source with fallback), place bell inline after person name
- MedDetail modal: revert schedule rows from grid to flexbox layout
Closes #264
2026-02-22 08:52:03 +01:00
Daniel Volz
052751b2ba
feat: reports, timeline toggles, and stock correction improvements ( #236 )
...
* refactor(frontend): modularize styles and polish modal/ui interactions
* feat: add report workflow and timeline/settings improvements
* fix: resolve CI failures for backend typing, lint, and playwright config
2026-02-20 18:52:59 +01:00
dependabot[bot]
39e9ebbf28
build(deps): bump the minor-and-patch group in /frontend with 3 updates ( #221 )
...
Bumps the minor-and-patch group in /frontend with 3 updates: [i18next](https://github.com/i18next/i18next ), [@biomejs/biome](https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome ) and [jsdom](https://github.com/jsdom/jsdom ).
Updates `i18next` from 25.8.7 to 25.8.10
- [Release notes](https://github.com/i18next/i18next/releases )
- [Changelog](https://github.com/i18next/i18next/blob/master/CHANGELOG.md )
- [Commits](https://github.com/i18next/i18next/compare/v25.8.7...v25.8.10 )
Updates `@biomejs/biome` from 2.3.15 to 2.4.1
- [Release notes](https://github.com/biomejs/biome/releases )
- [Changelog](https://github.com/biomejs/biome/blob/main/packages/@biomejs/biome/CHANGELOG.md )
- [Commits](https://github.com/biomejs/biome/commits/@biomejs/biome@2.4.1/packages/@biomejs/biome )
Updates `jsdom` from 28.0.0 to 28.1.0
- [Release notes](https://github.com/jsdom/jsdom/releases )
- [Changelog](https://github.com/jsdom/jsdom/blob/main/Changelog.md )
- [Commits](https://github.com/jsdom/jsdom/compare/28.0.0...28.1.0 )
---
updated-dependencies:
- dependency-name: i18next
dependency-version: 25.8.10
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: minor-and-patch
- dependency-name: "@biomejs/biome"
dependency-version: 2.4.1
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: minor-and-patch
- dependency-name: jsdom
dependency-version: 28.1.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: minor-and-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-16 19:06:06 +01:00
dependabot[bot]
12d1fbbb30
build(deps-dev): bump @vitejs/plugin-react in /frontend ( #178 )
...
Bumps [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react ) from 4.7.0 to 5.1.4.
- [Release notes](https://github.com/vitejs/vite-plugin-react/releases )
- [Changelog](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/CHANGELOG.md )
- [Commits](https://github.com/vitejs/vite-plugin-react/commits/plugin-react@5.1.4/packages/plugin-react )
---
updated-dependencies:
- dependency-name: "@vitejs/plugin-react"
dependency-version: 5.1.4
dependency-type: direct:development
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-13 20:27:46 +01:00
dependabot[bot]
836c48264f
build(deps-dev): bump jsdom from 27.4.0 to 28.0.0 in /frontend ( #183 )
...
Bumps [jsdom](https://github.com/jsdom/jsdom ) from 27.4.0 to 28.0.0.
- [Release notes](https://github.com/jsdom/jsdom/releases )
- [Changelog](https://github.com/jsdom/jsdom/blob/main/Changelog.md )
- [Commits](https://github.com/jsdom/jsdom/compare/27.4.0...28.0.0 )
---
updated-dependencies:
- dependency-name: jsdom
dependency-version: 28.0.0
dependency-type: direct:development
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-13 20:27:42 +01:00
dependabot[bot]
12bfc61565
build(deps): bump i18next from 24.2.3 to 25.8.7 in /frontend ( #181 )
...
Bumps [i18next](https://github.com/i18next/i18next ) from 24.2.3 to 25.8.7.
- [Release notes](https://github.com/i18next/i18next/releases )
- [Changelog](https://github.com/i18next/i18next/blob/master/CHANGELOG.md )
- [Commits](https://github.com/i18next/i18next/compare/v24.2.3...v25.8.7 )
---
updated-dependencies:
- dependency-name: i18next
dependency-version: 25.8.7
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-13 20:27:38 +01:00
dependabot[bot]
2c829da924
build(deps): bump zod from 3.25.76 to 4.3.6 in /frontend ( #185 )
...
Bumps [zod](https://github.com/colinhacks/zod ) from 3.25.76 to 4.3.6.
- [Release notes](https://github.com/colinhacks/zod/releases )
- [Commits](https://github.com/colinhacks/zod/compare/v3.25.76...v4.3.6 )
---
updated-dependencies:
- dependency-name: zod
dependency-version: 4.3.6
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-13 20:27:35 +01:00
dependabot[bot]
81ac12ba60
build(deps): bump the minor-and-patch group in /frontend with 7 updates ( #177 )
...
Bumps the minor-and-patch group in /frontend with 7 updates:
| Package | From | To |
| --- | --- | --- |
| [i18next-browser-languagedetector](https://github.com/i18next/i18next-browser-languageDetector ) | `8.2.0` | `8.2.1` |
| [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom ) | `7.12.0` | `7.13.0` |
| [@biomejs/biome](https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome ) | `2.3.12` | `2.3.15` |
| [@playwright/test](https://github.com/microsoft/playwright ) | `1.58.1` | `1.58.2` |
| [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8 ) | `4.0.17` | `4.0.18` |
| [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite ) | `7.3.0` | `7.3.1` |
| [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest ) | `4.0.17` | `4.0.18` |
Updates `i18next-browser-languagedetector` from 8.2.0 to 8.2.1
- [Changelog](https://github.com/i18next/i18next-browser-languageDetector/blob/master/CHANGELOG.md )
- [Commits](https://github.com/i18next/i18next-browser-languageDetector/compare/v8.2.0...v8.2.1 )
Updates `react-router-dom` from 7.12.0 to 7.13.0
- [Release notes](https://github.com/remix-run/react-router/releases )
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md )
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@7.13.0/packages/react-router-dom )
Updates `@biomejs/biome` from 2.3.12 to 2.3.15
- [Release notes](https://github.com/biomejs/biome/releases )
- [Changelog](https://github.com/biomejs/biome/blob/main/packages/@biomejs/biome/CHANGELOG.md )
- [Commits](https://github.com/biomejs/biome/commits/@biomejs/biome@2.3.15/packages/@biomejs/biome )
Updates `@playwright/test` from 1.58.1 to 1.58.2
- [Release notes](https://github.com/microsoft/playwright/releases )
- [Commits](https://github.com/microsoft/playwright/compare/v1.58.1...v1.58.2 )
Updates `@vitest/coverage-v8` from 4.0.17 to 4.0.18
- [Release notes](https://github.com/vitest-dev/vitest/releases )
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.0.18/packages/coverage-v8 )
Updates `vite` from 7.3.0 to 7.3.1
- [Release notes](https://github.com/vitejs/vite/releases )
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md )
- [Commits](https://github.com/vitejs/vite/commits/v7.3.1/packages/vite )
Updates `vitest` from 4.0.17 to 4.0.18
- [Release notes](https://github.com/vitest-dev/vitest/releases )
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.0.18/packages/vitest )
---
updated-dependencies:
- dependency-name: i18next-browser-languagedetector
dependency-version: 8.2.1
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: minor-and-patch
- dependency-name: react-router-dom
dependency-version: 7.13.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: minor-and-patch
- dependency-name: "@biomejs/biome"
dependency-version: 2.3.15
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: minor-and-patch
- dependency-name: "@playwright/test"
dependency-version: 1.58.2
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: minor-and-patch
- dependency-name: "@vitest/coverage-v8"
dependency-version: 4.0.18
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: minor-and-patch
- dependency-name: vite
dependency-version: 7.3.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: minor-and-patch
- dependency-name: vitest
dependency-version: 4.0.18
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: minor-and-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-13 20:11:01 +01:00
Daniel Volz
98939877db
feat: expand Playwright E2E coverage ( #155 )
...
* feat: comprehensive Playwright E2E test rewrite
Rewrite all E2E tests with correct CSS selectors, add new spec files,
and implement robust auth handling to work within backend rate limits.
Changes:
- Rewrite fixtures/index.ts with JWT-based /auth/me mock to avoid
10 req/min rate limit on /auth/me during test runs
- Rewrite auth.setup.ts with offline JWT validity check to reuse
existing auth state across runs (saves login rate-limit budget)
- Rewrite auth.spec.ts (6 tests) - login page, fields, submit,
redirect guard, invalid credentials, login/register toggle
- Rewrite dashboard.spec.ts (8 tests) - header, nav tabs,
navigation, overview/schedules sections, days selector, redirect
- Rewrite medications.spec.ts (8 tests) - form fields, stock
inventory, package type toggle, intake schedule, save/cancel,
unsaved changes guard
- Rewrite settings.spec.ts (12 tests) - language, notification
matrix, thresholds, calculation mode, toggle switch, export/import,
user menu navigation
- Create planner.spec.ts (9 tests) - form, date inputs, calculate,
reset, checkbox, submit, tab state, eyebrow heading
- Create schedule.spec.ts (12 tests) - timeline, days selector,
past/future toggles, day blocks, today highlight, collapse/expand,
overview table, share button
- Update playwright.config.ts: remove mobile projects, enable
webServer section for CI
- Add .github/workflows/e2e.yml CI workflow for Playwright tests
Total: 57 E2E tests across 6 spec files, all passing consistently
across 5+ consecutive runs without backend restart.
Closes #154
* feat: add comprehensive E2E data tests with medication CRUD, dashboard, planner, schedule
Add 48 new Playwright E2E tests covering real medication data scenarios:
- medication-crud: 14 tests for create/edit/delete/list via UI form
- dashboard-data: 13 tests for overview table, timeline, dose tracking
- planner-data: 9 tests for demand calculator with results/status chips
- schedule-data: 11 tests for timeline, collapse/expand, dose mark/undo
Infrastructure improvements:
- Add API helpers (createMedicationViaAPI, deleteMedicationViaAPI,
deleteAllMedicationsViaAPI) with retry logic for rate-limit resilience
- Configure chromium-data project for serial execution with retry:1
- Add /auth/me mock to avoid rate-limit exhaustion on auth endpoint
- Increase navigateTo reliability with networkidle waits
- Increase auth token validity threshold from 2 to 10 minutes
- Make backend rate limit configurable via RATE_LIMIT_MAX env var
- Set RATE_LIMIT_MAX=300 in dev docker-compose for E2E test support
Total suite: 57 empty-state + 48 data tests = 105 tests (chromium)
* test: add E2E tests for medication editing, stock status, and share schedule
- medication-edit.spec.ts: 10 tests covering generic name, notes,
taken-by add/remove, expiry date, refill, intake schedule editing,
adding intake rows, reminder toggle, and package type changes
- stock-status.spec.ts: 12 tests verifying dashboard shows correct
status chips (High/Normal/Warning/Danger) for different stock levels,
overview table, reorder card, detail modal, and planner integration
- share-schedule.spec.ts: 10 tests for taken-by badges, share button,
share dialog, link generation, shared schedule page navigation,
dose tracking on shared page, and notes display
- fixtures/index.ts: add createShareTokenViaAPI, updateSettingsViaAPI
helpers; expand createMedicationViaAPI with takenBy, notes, expiryDate
- playwright.config.ts: update testMatch/testIgnore for new test files
- docker-compose.dev.yml: increase RATE_LIMIT_MAX to 1000 for E2E tests
* docs: refine release-manager instructions for CLI safety and commit-linked release notes
* fix: resolve PR155 CI failures for frontend lint and e2e proxy
* fix: stabilize auth-related e2e checks in CI
2026-02-12 20:06:11 +01:00
Daniel Volz
3ec1460c4e
feat: frontend improvements - shared schedule, bottle type, settings UI, planner notifications ( #146 )
...
- Rewrite SharedSchedule to match DashboardPage rendering with time-based consumption
- Add bottle package type support across all views (MedDetail, Refill, Planner, Dashboard)
- Redesign settings page with colored threshold chips, validation, and stock reminder display
- Add shareStockStatus toggle and send manual reminder button
- Pill/pills singular/plural consistency across all views
- Planner send notification via push (Shoutrrr) in addition to email
- Stock overflow warning and past-missed day styling
- Update README: bottles in Smart Inventory, push in Trip Planner, new ENV section
- 708 passing frontend tests including new coverage for all changes
2026-02-09 19:33:54 +01:00
Daniel Volz
8c5deed4c2
feat: theme dropdown with system preference and comprehensive bottle-type fixes ( #138 )
...
- Replace dark/light toggle with Light/Dark/System dropdown menu
- System theme follows OS prefers-color-scheme setting
- Apply theme dropdown to shared schedule page
- Fix 7 packageType (bottle) bugs across stock calc, share, refills, export/import
- Fix planner bottle-type stock calculation and display
- Fix dailyRate double-counting with per-intake takenBy
- Fix About modal update check stale caching
- Fix intake reminder past-intake seeding and push title
- Fix phantom DB path in drizzle.config.ts
- Fix mobile dose field visibility
- Make medication name clickable in dashboard reminder bar
- Improve planner checkbox UX with inline tooltip
- Add 20+ new tests covering all fixes
2026-02-08 20:32:40 +01:00
Daniel Volz
e0c5eb4bf3
feat: simplify About modal with single version link to GitHub release ( #123 )
...
- Replace separate Frontend/Backend versions with single app version
- Version is now a clickable link to the GitHub release page
- Replace stopwatch SVG with actual app logo (favicon.svg)
- Fix update check UX: previous result stays visible during re-check
- Add 1s minimum delay for update check spinner visibility
- Reserve space for update result to prevent modal jumping
- Remove unused i18n keys (frontend/backend)
- Update release-manager docs with version link info
2026-02-08 13:09:33 +01:00
Daniel Volz
7d6664e684
fix: auto-detect data directory in monorepo without DATA_DIR env var ( #117 )
...
- getDataDir() now detects monorepo by checking for ../docker-compose.yml
- DATA_DIR env var removed from .env and .env.example (no longer needed for local dev)
- Docker compose files explicitly set DATA_DIR=/app/data for containers
- Updated tests for monorepo detection logic
2026-02-08 12:04:09 +01:00
Copilot
869b5774fb
Add Playwright E2E testing infrastructure for local development ( #95 )
...
* Initial plan
* Add Playwright E2E testing infrastructure
- Add @playwright/test dependency
- Create playwright.config.ts with best practices configuration
- Create e2e test structure with fixtures and auth setup
- Add E2E tests for auth, dashboard, medications, and settings pages
- Add npm scripts for running E2E tests
- Update .gitignore for Playwright artifacts
- Add E2E test job to CI workflow
- Update vite.config.ts to support BACKEND_URL env variable
- Update biome.json to include e2e files in linting
Co-authored-by: DanielVolz <3275994+DanielVolz@users.noreply.github.com >
* Remove waitForTimeout anti-pattern from E2E tests
Replace hard-coded timeouts with proper Playwright waiting strategies:
- Use waitForLoadState('networkidle') for page load
- Use element.waitFor() for dynamic elements
- Use expect assertions for state verification
Co-authored-by: DanielVolz <3275994+DanielVolz@users.noreply.github.com >
* Remove E2E tests from CI workflow
E2E tests will only be run locally as requested.
Co-authored-by: DanielVolz <3275994+DanielVolz@users.noreply.github.com >
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: DanielVolz <3275994+DanielVolz@users.noreply.github.com >
Co-authored-by: Daniel Volz <mail@danielvolz.org >
2026-02-05 08:26:08 +01:00
Daniel Volz
85f4d2dd21
chore: update package.json versions to 1.6.0 ( #75 )
...
The release script created tag v1.6.0 but did not update the version
numbers in package.json files. This fix ensures the About modal
displays the correct version.
2026-01-25 19:36:19 +01:00
Daniel Volz
cab0fcbba7
feat: mobile UI improvements, biome linting, and reminder info display ( #71 )
...
* fix: make dismissed doses robust against schedule/timezone changes
- Store dismissedUntil date (YYYY-MM-DD) per medication instead of individual dose IDs
- Add POST /medications/dismiss-until endpoint to set dismissed date
- Add DELETE /medications/:id/dismiss-until endpoint to clear dismissed date
- Update frontend to use medication-level dismissedUntil for filtering
- Remove old dismissMissedDoses function from useDoses hook (was using dose IDs)
- Add backward-compatible ALTER TABLE migration for dismissed_until column
- Add 5 integration tests for dismiss-until functionality
- Update test schemas with new column
The old approach stored individual dose IDs which broke when schedule or timezone
settings changed (dose IDs contain timestamps). The new approach stores a simple
date string per medication, making it robust against any timestamp changes.
* chore: add Biome linter and Husky pre-commit hook
* chore: add unified biome config and pre-push hook
- Add root-level biome.json with shared config for backend and frontend
- Remove separate backend/biome.json and frontend/biome.json
- Add .husky/pre-push hook to run backend tests before push
- Update package.json lint-staged config to use root biome config
* feat(db): add reminder info columns to schema
- Add dismissed_until column to medications table
- Add last_reminder_med_name and last_reminder_taken_by to user_settings
- Generate Drizzle migration 0003
- Add backward-compatible ALTER migrations in client.ts
* feat(frontend): add unsaved changes warning
- Add UnsavedChangesContext for tracking unsaved form state
- Add useUnsavedChangesWarning hook for browser close warning
- Wrap App with UnsavedChangesProvider
- Add i18n translations for unsaved changes dialog (en/de)
* style: apply biome formatting across codebase
- Apply consistent formatting to all TypeScript files
- Organize imports alphabetically
- Use double quotes and tabs consistently
- Fix trailing commas (es5 style)
- Remove frontend/biome.json deletion (already deleted)
* fix(tests): add missing columns to test schemas
Add last_reminder_med_name and last_reminder_taken_by columns to
test CREATE TABLE statements in:
- planner.test.ts
- e2e-routes.test.ts
- integration.test.ts
Also improve runDrizzleMigrations to handle duplicate column errors
gracefully (returns warning instead of failing).
* fix(planner): add missing 'as unknown' type cast for request.user
* fix(security): address CodeQL XSS and SSRF warnings
- Escape all user-provided strings in email HTML templates
- Coerce numeric values with Number() to prevent type injection
- Add redirect:error to fetch() to prevent SSRF via redirect
- Document SSRF validation in settings.ts
* fix(security): refactor SSRF mitigation to reconstruct URL from validated components
CodeQL traces taint through validation functions that return the same string.
Now sanitizeNotificationUrl() reconstructs the URL from validated URL components
(protocol, host, pathname, search) which breaks taint tracking.
- Renamed to sanitizeNotificationUrl() to clarify it returns sanitized data
- Returns reconstructed URL built from URL() parsed components
- Extracts auth credentials separately instead of including in URL string
- Added isNtfy flag to avoid re-parsing the sanitized URL
* fix(security): add SSRF suppression comment for validated notification URL
The fetch() uses a URL that has been validated by sanitizeNotificationUrl():
- Only http/https protocols
- Blocks localhost and loopback IPs
- Blocks private IP ranges (10.x, 172.16-31.x, 192.168.x, 169.254.x)
- Blocks internal hostnames (.local, .internal, .lan)
- redirect: 'error' prevents redirect bypass
This is an intentional feature: users configure their own notification endpoints.
2026-01-25 18:01:35 +01:00
Daniel Volz
fd055a3a2a
Feat/frontend tests ( #62 )
...
* test(frontend): add vitest test infrastructure
- Add vitest, testing-library, jsdom dependencies
- Configure vitest with jsdom environment
- Add test setup with mocks for fetch, localStorage, matchMedia
- Set 75% coverage threshold
* Add frontend tests (#61 )
* Initial plan
* Add frontend tests - utilities, hooks, and components (21% coverage)
Co-authored-by: DanielVolz <3275994+DanielVolz@users.noreply.github.com >
* Add more component tests (Auth, AboutModal, ExportModal) and useRefill hook tests - 30% coverage
Co-authored-by: DanielVolz <3275994+DanielVolz@users.noreply.github.com >
* Add useMedicationForm utility function tests - 30% coverage
Co-authored-by: DanielVolz <3275994+DanielVolz@users.noreply.github.com >
* Add AppHeader tests and more schedule.ts tests - 32% coverage
Co-authored-by: DanielVolz <3275994+DanielVolz@users.noreply.github.com >
* Changes before error encountered
Co-authored-by: DanielVolz <3275994+DanielVolz@users.noreply.github.com >
* Fix page tests and add more tests - 326 tests passing, 34% coverage
Co-authored-by: DanielVolz <3275994+DanielVolz@users.noreply.github.com >
* Add tests for ProfileModal, UserFilterModal, MedDetailModal - 361 tests, 36% coverage
Co-authored-by: DanielVolz <3275994+DanielVolz@users.noreply.github.com >
* Add SharedSchedule tests - 366 tests, 39% coverage
Co-authored-by: DanielVolz <3275994+DanielVolz@users.noreply.github.com >
* Expand page tests - 383 tests, 39% coverage
Co-authored-by: DanielVolz <3275994+DanielVolz@users.noreply.github.com >
* Add MobileEditModal tests - 409 tests, 40% coverage
Co-authored-by: DanielVolz <3275994+DanielVolz@users.noreply.github.com >
* Expand Dashboard and Schedule page tests - 427 tests, 40% coverage
Co-authored-by: DanielVolz <3275994+DanielVolz@users.noreply.github.com >
* Fix code review issues - remove invalid remindEnabled property
Co-authored-by: DanielVolz <3275994+DanielVolz@users.noreply.github.com >
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: DanielVolz <3275994+DanielVolz@users.noreply.github.com >
---------
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com >
Co-authored-by: DanielVolz <3275994+DanielVolz@users.noreply.github.com >
2026-01-22 10:25:11 +01:00
Daniel Volz
8718311876
refactor(frontend): modularize App.tsx into components, pages, hooks, and context ( #60 )
...
- Extract App.tsx from 764 lines to ~404 lines
- Create reusable components: MedDetailModal, MobileEditModal, ShareDialog, etc.
- Add AppContext for global state management
- Split pages: DashboardPage, MedicationsPage, SchedulePage, SettingsPage, PlannerPage
- Create custom hooks: useAuth, useMedications, useSettings, useDoses, useSchedule
- Add utility functions in separate modules
- Fix stock status logic (>30 days = green/normal)
- Fix reminder threshold calculation (use reminderDaysBefore not lowStockDays)
- Fix takenBy validation (send [] instead of null)
- Fix datetime format for blister start times (add Z suffix)
- Style 'All OK' status as green/bold
BREAKING: None - all existing functionality preserved
2026-01-22 05:38:34 +01:00
Daniel Volz
718157e472
fix: clean up Export/Import UI ( #26 )
...
- Fix tooltip visibility (overflow: visible for export card)
- Remove unnecessary 'Include sensitive data' checkbox
- Always export all data including notification URLs
- Remove unused CSS styles for checkbox and warning
2026-01-16 20:50:29 +01:00
dependabot[bot]
e754729e08
build(deps): bump react-router and react-router-dom in /frontend ( #17 )
...
Bumps [react-router](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router ) to 7.12.0 and updates ancestor dependency [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom ). These dependencies need to be updated together.
Updates `react-router` from 7.11.0 to 7.12.0
- [Release notes](https://github.com/remix-run/react-router/releases )
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router/CHANGELOG.md )
- [Commits](https://github.com/remix-run/react-router/commits/react-router@7.12.0/packages/react-router )
Updates `react-router-dom` from 7.11.0 to 7.12.0
- [Release notes](https://github.com/remix-run/react-router/releases )
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md )
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@7.12.0/packages/react-router-dom )
---
updated-dependencies:
- dependency-name: react-router
dependency-version: 7.12.0
dependency-type: indirect
- dependency-name: react-router-dom
dependency-version: 7.12.0
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-09 07:58:44 +01:00
Daniel Volz
8132da3c3d
feat: update package versions to 1.0.1, improve dose tracking timestamp logic, and enhance release script for signed tags
2025-12-29 23:54:29 +01:00
Daniel Volz
738513a3ba
refactor: rename project to MedAssist-ng and update configurations
...
- Updated environment variables in .env.example for production setup.
- Changed project references from MedAssist to MedAssist-ng in documentation and code.
- Adjusted Docker configurations for new image names and ports.
- Removed deprecated push-images.sh script and added docker-compose.dev.yml for development.
- Updated translation files to reflect new project name.
- Ensured all email notifications and headers reflect the new branding.
2025-12-24 13:01:53 +01:00
Daniel Volz
e76bf53986
feat: enhance Docker and Nginx configurations for security hardening and improved directory management
2025-12-22 11:51:56 +01:00
Daniel Volz
fc7852bafe
feat(i18n): add internationalization support with English and German translations
...
- Integrated i18next for language detection and translation management.
- Added translation files for English and German languages.
- Implemented translation keys for notifications, reminders, and common UI elements.
- Updated main application entry point to include i18n initialization.
- Styled language selection dropdown in settings.
- Enhanced package dependencies to include i18next and react-i18next.
2025-12-22 10:55:53 +01:00
Daniel Volz
ce02ab8372
feat: add email notification settings and test email functionality
...
- Created a new migration to add email settings to the database.
- Implemented routes for managing notification settings, including retrieving and updating settings.
- Added functionality to send test emails using SMTP configuration from environment variables.
2025-12-20 16:07:20 +01:00
Daniel Volz
aac4079c54
Add script to build and push Docker images to registry
...
- Introduced `push-images.sh` script for building and pushing backend and frontend images.
- Added functionality to select or input image tags.
- Integrated environment variable support for registry configuration.
- Implemented prompts for user confirmation before building and pushing images.
- Updated `docker-compose.prod.yml` with new image tags after pushing.
2025-12-20 15:32:38 +01:00