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