69 Commits
Author SHA1 Message Date
9e5a5ab722 Notification shows who canceled an appointment (#317)
* Notification shows who canceled an appointment -wip

* Added solution arcitecture for decrypting notification payload

* Use encrypted tunnel key to decrypt encrpyted notification payload

* Fix tests

---------

Co-authored-by: Karl Ludwig Weise <ludwig@ludwigweise.de>
2026-08-13 10:54:01 +02:00
Karl Ludwig WeiseandGitHub becc78a1ce Calendar: Move Appointment (#320) 2026-08-12 20:40:17 +02:00
Karl Ludwig Weise ba8c2dcc5d Allow admins to resend invite emails without deleting a staff member first 2026-07-21 20:24:21 +02:00
Karl Ludwig Weise 46a33263c8 Rename regular absences to recurring absences 2026-07-21 16:51:11 +02:00
Karl Ludwig Weise 8a167b3d84 Complete regular absences management 2026-07-20 19:57:37 +02:00
Karl Ludwig Weise 02d0ef3810 Renamed ongoing to regular 2026-07-03 12:50:00 +02:00
Karl Ludwig Weise af8734974d Added ongoing absences to add absence form 2026-07-02 19:26:06 +02:00
Karl Ludwig Weise d6a527b89f Calendar: Added week view 2026-06-30 20:31:34 +02:00
Karl Ludwig Weise 24ea9ae792 Calendar: Added month overview and navigation 2026-06-25 20:46:20 +02:00
Karl Ludwig Weise d21f6855f5 Fix typo 2026-06-19 16:04:09 +02:00
Karl Ludwig Weise 171d236080 Update translations 2026-06-18 17:20:43 +02:00
Hendrik BelitzandKarl Ludwig Weise 76d27e2364 Simplified server route code. Added utility to check if chosen appointment ist still available. Added new error to UI. 2026-06-18 17:20:43 +02:00
Karl Ludwig Weise fce3438033 Added copy buttons to appointment details 2026-06-12 17:43:52 +02:00
Karl Ludwig Weise 2419f9e87a Make logout a front-end only fetch to fix race conditions and make sure access_token is gone 2026-06-05 16:02:19 +02:00
Karl Ludwig Weise 5cdc0fa15c Merge remote-tracking branch 'origin/main' into 273-bug-tenantdomain-is-interpreted-inconsistently-confirm-invite-urls-are-malformed 2026-05-31 19:45:28 +02:00
Karl Ludwig Weise dfabcc05fc Send notifications for appointment requests via email 2026-05-29 22:20:58 +02:00
Karl Ludwig Weise bad2fe2ddb Unify confirmation emails, fixing issue #273 2026-05-29 21:26:31 +02:00
Karl Ludwig Weise 0a0a6dca95 Claiming an account is now a manual step to not trigger it by previews from email apps 2026-05-29 17:32:38 +02:00
Karl Ludwig Weise 7a955b3a70 Fix: Granting staff access to appointments 2026-04-28 20:54:47 +02:00
Karl Ludwig Weise 758e0d5ddd Fix: Dashboard does not auto-logout when session refresh races with other calls 2026-04-07 14:39:59 +02:00
Karl Ludwig Weise 816b7ee7de Added title to settings page 2026-04-04 19:20:43 +02:00
Karl Ludwig Weise c1bd9e3b66 Added translation fixes 2026-04-04 19:20:43 +02:00
09ffc21523 Added flow for staff members to create appointments (#204)
* Added flow for staff members to create appointments

* Add calendar page title

* Remove security check npm audit for pull-requests

* Fix docker build to be multi-platform

* Attempt to fix tests

* Remove obsolete test

* Refresh session every 3 minutes

---------

Co-authored-by: Karl Ludwig Weise <ludwig@ludwigweise.de>
2026-03-06 10:22:28 +01:00
513b706877 Staff: Grant access to existing clients front-end implementation -wip (#201)
* Staff: Grant access to existing clients front-end implementation -wip

* WIP

* Use correct keyhsare when decrypting tunnels for new users.

* Set ACCESS_GRANTED even when all tunnel keys are already there

* Finalized granting access to staff members

* Fix lint

* Re-added logs

---------

Co-authored-by: Karl Ludwig Weise <ludwig@ludwigweise.de>
Co-authored-by: Hendrik Belitz <hendrik@innovation-through-understanding.de>
2026-02-26 17:29:27 +01:00
Karl Ludwig WeiseandGitHub 7b1a4da662 Added front-end for clients to cancel appointments (#196)
* Added front-end for clients to cancel appointments -wip

* Completed front-end implementation for cancelling an appointment

* Review changes
2026-02-18 16:23:10 +01:00
Karl Ludwig Weise fe9ea0703c Added dummy flow to add appointments using the calendar 2026-02-12 22:04:03 +01:00
Karl Ludwig Weise 168e2d5a6c Merge remote-tracking branch 'origin/main' into 160-book-appointment-confirm-appointment-requests-front-end 2026-02-10 12:05:52 +01:00
Hendrik Belitz 97332c617a Added Cancellation Email template 2026-02-02 14:21:07 +01:00
Karl Ludwig Weise 6124398696 Added appointment confirmation and prepared denial 2026-01-28 21:56:03 +01:00
Karl Ludwig Weise bf9d642f0c Added notification front-end 2026-01-27 22:10:13 +01:00
Karl Ludwig Weise ffdd0ef20f Added automatic fallback link to emails 2026-01-27 17:17:45 +01:00
Karl Ludwig Weise 5c86a9907d Added ui for staff members to cancel appointments 2026-01-26 21:34:58 +01:00
Karl Ludwig Weise 3f550af281 Added custom domains for tenants 2026-01-23 21:38:06 +01:00
a64afbd297 160 book appointment confirm appointment requests (#179)
* Extension of tenant schema

* Notification service

* Notification endpoints

* Format errors

* Update src/lib/server/db/tenant-schema.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update src/lib/server/services/notification-service.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Explicit where clause in delete notification

* Update tenant-migrations/0008_neat_swarm.sql

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Sort notifivcations by creation date. Do not explicitly check for existance in mark as read.

* Fixed tests

* Mail templates appointment cancellation

* Appointment cancellation notification texts

* Delete appointment by staff

* Deletion endpoint for staff

* My Appointments endpoint for clients

* Delete appointment by client

* Copilot review fixes

* Fixes after notification changes and updates.

* Fixed limiting errors

* Rejection email template

* Send out request, confirmed notifications, send out confirmed, denied emails.

* Fix test

* MIgration files

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-01-22 11:39:12 +01:00
25f10462da Added salutation field (#183)
* Added salutation field

* Handle honeypot in backend

---------

Co-authored-by: Karl Ludwig Weise <ludwig@ludwigweise.de>
Co-authored-by: Hendrik Belitz <hendrik@innovation-through-understanding.de>
2026-01-22 11:28:17 +01:00
Karl Ludwig Weise b352ce4b48 Merge remote-tracking branch 'origin/main' into dependabot/npm_and_yarn/sveltejs/kit-2.49.5 2026-01-21 20:56:22 +01:00
Hendrik Belitz df50955d8c Merge branch 'main' of github.com:open-reception/appointment-booking-software into 153-book-appointment-allow-clients-to-select-if-they-want-email-notifications 2026-01-21 17:16:10 +01:00
Karl Ludwig Weise e570ecef51 Add confirm to prime user for PRF output retrieval 2026-01-19 20:51:18 +01:00
Karl Ludwig Weise 95d0180c0b Added link to home from login 2026-01-16 15:47:49 +01:00
Karl Ludwig Weise 0c0ef46989 Improve decrypting error message 2026-01-16 15:35:56 +01:00
Karl Ludwig Weise 439d1d198f Show proper label on settings form 2026-01-16 15:35:29 +01:00
Karl Ludwig Weise d004556ff5 Update more packages 2026-01-16 13:38:06 +01:00
Karl Ludwig Weise 082435c1fb Added Popover to explain why checkbox is there 2026-01-16 12:59:59 +01:00
Karl Ludwig Weise 9c2254215e Added front-end flow to make email sending optional 2026-01-14 17:19:54 +01:00
8c0343b1ec Feat/email renderer (#172)
* Added poc of new email renderer

* Completed email renderer poc for appointment confirmation

* Changed phone description in add-personal-data-form

* Added used email types to new email system

* Switched email templates to the new template engine.

---------

Co-authored-by: Karl Ludwig Weise <ludwig@ludwigweise.de>
Co-authored-by: Hendrik Belitz <hendrik@innovation-through-understanding.de>
2026-01-12 10:03:22 +01:00
CopilotGitHubhbelcopilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>Hendrik Belitz
337fc2e70b Add throttling to challenge APIs for brute force protection (#145)
* Initial plan

* Add throttling implementation for challenge APIs

Co-authored-by: hbel <7416029+hbel@users.noreply.github.com>

* Add tests for throttling and fix linting issues

Co-authored-by: hbel <7416029+hbel@users.noreply.github.com>

* Address code review feedback - improve error handling and documentation

Co-authored-by: hbel <7416029+hbel@users.noreply.github.com>

* Consolidate throttle storage to central DB per review feedback

Co-authored-by: hbel <7416029+hbel@users.noreply.github.com>

* Fixed errors in challenge-throlle.

* Add throttling to frontend.

* incorporated Reviewer comments

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: hbel <7416029+hbel@users.noreply.github.com>
Co-authored-by: Hendrik Belitz <hendrik@innovation-through-understanding.de>
2026-01-02 13:14:40 +01:00
Karl Ludwig WeiseandGitHub 56b7d4a9b2 Feat/calendar (#129) 2025-11-19 14:42:45 +01:00
316d7ef25b Feat/book appointment (#121)
* Adding book appointment workflow -wip

* Load channels

* Added channel and agent selection

* Provide optional filter criteria for agents and channels in schedule endpoint.

Return agent info for free schedule slots.

* Select slot

* Added personal data form

* Added login and register step

* Empty PIN input when crypto fails

* Added summary and complete steps

* Format errors in otp component

* Format error in otp component

* Store staff keypairs for appointment encryption

* storeStaffKeyPair during passkey setup

* Fix lint

* Allow access to tenants for tenant admins

* Removed centralised route-based authorization.

* Use setupState from back-end

* First tenant admin is ACCESS_GRANTED.

* load local argon2 directly in central html file

* Make sure cookie is deleted on logout

* Allow WASM execution

* Staff key is base64 encoded, not hex encoded

* Fix proceeding to summary

* Fix TunnelId. Fix Appointment Date. Fix missing AgentId for Tunnel Creation call.

* Fix book appoint flow for new users

* Fix design issues

* Show only slots that have not passed

* Reimplemented ShamirsSecretSharing with Laplacian Interpolation

* Check for existing users before creating new client tunnels. Corrected base64 decoding of challenge.

* Properly deal with existing client errors (422)

* Use new shamir implementation for shard construction and key reconstruction.

* Fix lint and check

* Fix csp header test

* Fixed tests

---------

Co-authored-by: Karl Ludwig Weise <ludwig@ludwigweise.de>
Co-authored-by: Hendrik Belitz <hendrik@innovation-through-understanding.de>
2025-11-13 14:55:11 +01:00
8f927ba5d7 Pages for managing my account set up (#131)
Co-authored-by: Karl Ludwig Weise <ludwig@ludwigweise.de>
2025-11-12 14:30:07 +01:00
85e642fa89 Added onboarding dashboard (#128)
* Added onboarding dashboard

* Improve onboarding expericene

---------

Co-authored-by: Karl Ludwig Weise <ludwig@ludwigweise.de>
2025-11-12 14:28:35 +01:00