feat: add WannPassts booking app with Go backend and Vue frontend

Initial project setup for a privacy-focused, self-hosted scheduling app:

- Go backend with JWT auth, SQLite storage, and chi router
- Calendar integrations via Google OAuth (FreeBusy), CalDAV, and ICS links
- Public booking pages with configurable slots and booking requests
- AES-256-GCM encryption for stored provider tokens
- Vue 3 + TypeScript frontend with Vite, Pinia, and Vue Router
- Docs, .gitignore, and .env.example for local development
This commit is contained in:
Tronax 2026-08-25 18:50:28 +02:00
commit cb30223fd4
Signed by: Tronax
SSH key fingerprint: SHA256:2pKKXDZucWvaF/GzXNz0FY53EAO1YDLN80bqS+TTz/o
47 changed files with 6599 additions and 0 deletions

View file

@ -0,0 +1,22 @@
<template>
<svg class="logo" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
<defs>
<linearGradient id="wp-lg" x1="0" y1="0" x2="1" y2="1">
<stop offset="0" stop-color="#7db0ff" />
<stop offset="1" stop-color="#b78cff" />
</linearGradient>
</defs>
<rect x="4.75" y="6.75" width="38.5" height="36.5" rx="10.5" fill="rgba(255,255,255,0.06)" stroke="url(#wp-lg)" stroke-width="2.2" />
<path d="M5 16h38" stroke="url(#wp-lg)" stroke-width="2.2" opacity="0.7" />
<path d="M15 3.5v6M33 3.5v6" stroke="url(#wp-lg)" stroke-width="3" stroke-linecap="round" />
<path d="M15 27l6.5 6.5L33.5 21" stroke="url(#wp-lg)" stroke-width="3.6" stroke-linecap="round" stroke-linejoin="round" />
</svg>
</template>
<style scoped>
.logo {
width: 34px;
height: 34px;
filter: drop-shadow(0 4px 14px rgba(125, 176, 255, 0.35));
}
</style>