Architectural decisions - open-reception/appointment-booking-software GitHub Wiki

Documentation of central architectural decisions

The following decisions were discussed and carefully decided by the team through the course of the project.

(DONE) Runtime and programming language

  • Runtime will be nodejs (at least 24.1.0)
  • Programming language will be TypeScript (at least 5.8.3)

(DONE) Framework and libraries

  • (DONE) Fullstack-Framework: SvelteKit

  • (DONE) UI Components: Bits UI

  • (DONE) Database and ORM: Drizzle with PostgreSQL

  • (DONE) Validation: zod

  • (DONE) Hashing: Argon2id via argon2 (node), argon2-browser (WASM, Browser), @noble/hashes (Pure JS Fallback)

  • (DONE) Synchronous Encryption for data encryption: AES256 via crypto (node), Web Crypto API (Browser)

  • (DONE) Asynchronous Encryption for key exchange: Crystal KYBER via @noble/post-quantum

  • (DONE) Shamir's secret sharing: secrets.js-34r7h

  • (DONE) Unit testing: vitest

  • (DONE) E2E testing: playwright