Away
01 Übersicht
Away ist eine webbasierte SaaS-Lösung für die digitale Urlaubsplanung in Teams und Organisationen. Sie automatisiert den gesamten Workflow von der Antragstellung über die Genehmigung bis zur Dokumentation.
| Rolle | Beschreibung |
|---|---|
| Mitarbeiter | Anträge stellen, Antragshistorie, Kalender einsehen |
| Genehmiger | Anträge anderer genehmigen oder ablehnen |
| Administrator | Organisation verwalten, Nutzer einladen, Rollen zuweisen |
| Super-Admin | Plattform-übergreifende Subscription-Verwaltung (WAMOCON intern) |
02 Business Model: Lite & Pro
Away ist in zwei Plänen verfügbar. Beide können 30 Tage kostenlos getestet werden.
2.1 Planübersicht
| Feature | Lite | Pro |
|---|---|---|
| Urlaubsanträge stellen & genehmigen | ✓ | ✓ |
| In-App Kalender | ✓ | ✓ |
| Rollen: Mitarbeiter, Genehmiger, Admin | ✓ | ✓ |
| Benutzereinstellungen & Urlaubsquote | ✓ | ✓ |
| DSGVO-Consent & Rechtliches | ✓ | ✓ |
| Max. Benutzer | 50 | Unbegrenzt |
| Organisationen | 1 (fest) | Unbegrenzt |
| Externer Kalender-Sync (Outlook / Google) | ✗ | ✓ |
| E-Mail-Integration & Versand | ✗ | ✓ |
| Dokumentvorlagen (PDF / DOCX) | ✗ | ✓ |
| Reports & Analytics | ✗ | ✓ |
| Multi-Organisations-Verwaltung | ✗ | ✓ |
| DSGVO-Admin-Panel | ✗ | ✓ |
| Kalender-Einladungen (Outlook) | ✗ | ✓ |
2.2 Trial-System
Jede Registrierung startet automatisch einen 30-Tage-Trial für den gewählten Plan.
Registrierung → Trial (30 Tage) → Ablauf → Grace Period (30 Tage) → Datenlöschung
Bei Bestellung während Trial oder Grace Period: → Aktiv (unbegrenzt)
| Status | Bedeutung | Zugang |
|---|---|---|
trial | Testzeitraum läuft | ✓ Voll |
active | Bezahltes Abo aktiv | ✓ Voll |
pending_order | Upgrade beantragt, Trial läuft noch | ✓ Bis Trial-Ende |
grace | Nachfrist läuft (30 Tage) | ✗ Gesperrt |
expired | Abgelaufen | ✗ Gesperrt |
2.3 Upgrade-Prozess
- Klick auf „Auf Pro upgraden“ in
/settings/subscription - Status wird auf
pending_ordergesetzt - Mit E-Mail-Provider: automatische Benachrichtigung an WAMOCON
- Ohne Provider: System-Mail-Client öffnet sich mit vorausgefüllter E-Mail
- Super-Admin schaltet Plan manuell im
/admin/subscriptions-Panel frei
03 Tutorials – Erste Schritte
3.1 Mitarbeiter: Ersten Antrag stellen
- Einladungslink in der E-Mail anklicken
- Passwort vergeben (min. 8 Zeichen)
- AGB, Datenschutzerklärung und DSGVO akzeptieren
- Dashboard öffnet sich → „Neuer Antrag“ klicken
- Start- und Enddatum wählen
- Grund optional eintragen
- „Absenden“ – Genehmiger wird informiert
- Status unter Meine Anträge verfolgen
3.2 Administrator: Neue Organisation registrieren
/auth/registeröffnen- Plan wählen: Lite oder Pro
- Organisations-Name, E-Mail und Passwort eingeben
- Alle rechtlichen Bedingungen akzeptieren
- „30 Tage kostenlos starten“ klicken
3.3 Admin: Ersten Genehmiger einladen
- Zu
/admin/settingsnavigieren - „Benutzer einladen“ klicken
- E-Mail eingeben, Rolle Genehmiger wählen
- „Einladung senden“
04 How-to Guides
4.1 Urlaubsantrag per E-Mail einreichen (ohne Provider)
- Antrag im Wizard stellen
- „Per E-Mail einreichen“ klicken
- System-Mail-Client öffnet sich: Empfänger = Genehmiger, Betreff + Text vorausgefüllt
- E-Mail prüfen und senden
4.2 Genehmiger: Antrag genehmigen oder ablehnen
- „Genehmigungen“ in der Navigation klicken
- Antrag anklicken → Detailansicht
- „Genehmigen“ oder „Ablehnen“ klicken
- Optional: Kommentar hinterlassen
4.3 Administrator: Probeabo upgraden
/settings/subscriptionöffnen- „Auf Pro upgraden“ klicken
- Mit E-Mail-Provider: automatisch versandt; ohne Provider: Mail-Client öffnet sich
- WAMOCON schaltet Plan frei
4.4 Pro: Kalender-Sync konfigurieren
/settings→ Tab OAuth / Kalender öffnen- Anbieter wählen (Outlook oder Google)
- E-Mail und Token eingeben → Speichern
- Externe Termine erscheinen im Kalender
4.5 Super-Admin: Plan manuell freischalten
/admin/subscriptionsöffnen- Organisation in der Liste suchen
- „Lite aktiv“ oder „Pro aktiv“ klicken → sofortige Freischaltung
- „+30d Trial“ verlängert den Testzeitraum um 30 Tage
- „Sperren“ setzt Status auf
expired
05 Funktionsreferenz
5.1 Routen-Übersicht
| Route | Beschreibung | Zugriff |
|---|---|---|
/auth/login | Anmeldung | Alle |
/auth/register | Trial-Registrierung | Öffentlich |
/auth/accept-invite | Einladung annehmen | Eingeladene |
/dashboard | Startseite | Alle |
/dashboard/requests | Meine Anträge | Alle |
/dashboard/admin-requests | Genehmigungsuebersicht | Genehmiger+ |
/dashboard/calendar | Teamkalender | Alle |
/dashboard/organizations | Organisations-Verwaltung | Admin [Pro] |
/dashboard/reports | Reports & Analytics | Genehmiger+ [Pro] |
/settings/subscription | Abonnement & Plan | Alle |
/admin/settings | Organisations-Admin | Admin, CIO |
/admin/consents | DSGVO-Audit-Panel | Admin [Pro] |
/admin/subscriptions | Subscription-Verwaltung | Super-Admin only |
5.2 Rollen & Berechtigungen
| Berechtigung | Employee | Approver | Admin | CIO |
|---|---|---|---|---|
| Eigene Anträge stellen | ✓ | ✓ | ✓ | ✓ |
| Anträge genehmigen | ✗ | ✓ | ✓ | ✓ |
| Nutzer einladen | ✗ | ✗ | ✓ | ✓ |
| Admin-Einstellungen | ✗ | ✗ | ✓ | ✓ |
| Reports [Pro] | ✗ | ✓ | ✓ | ✓ |
| DSGVO-Panel [Pro] | ✗ | ✗ | ✓ | ✓ |
06 Technische Architektur
Away baut auf einem modernen, serverlosen Stack auf, der auf Performance, Skalierbarkeit und Datensicherheit ausgelegt ist.
6.1 Stack
| Schicht | Technologie | Aufgabe |
|---|---|---|
| Frontend | Next.js 15 (App Router) | SSR/SSG, Routing, Server Actions |
| Auth | Supabase Auth | E-Mail-Login, Invite-Flow, JWT |
| Datenbank | Supabase PostgreSQL | Multi-Schema (dev/test/prod), RLS |
| Styling | Tailwind CSS | Utility-first, Dark Mode |
| Hosting | Vercel | Edge Functions, Cron Jobs, CDN |
| Docs | GitHub Pages | Statisches HTML-Handbuch |
6.2 Subscription-Middleware
Die Middleware prüft bei jedem Request:
- Ist der Nutzer authentifiziert?
- Hat seine Organisation ein aktives Abo (
activeoder laufendertrial)? - Hat der Plan Zugriff auf die angefragte Route (Lite vs. Pro-only)?
Bei Datenbankfehler während der Subscription-Prüfung wird der Zugang gewährt (fail-open), um Ausfälle nicht auf Nutzer abzuwälzen.
6.3 Cron Job: Automatischer Ablauf
Vercel führt täglich um 02:00 UTC den Endpunkt /api/cron/check-subscriptions aus:
- Abgelaufene Trials (
trial_end < now()) werden aufexpiredgesetzt - Expired-Orgs erhalten eine Grace Period von 30 Tagen (
grace_end) - Nach Grace-Ablauf: Urlaubsanträge, Rollen und Einstellungen werden gelöscht; Org wird soft-deleted
07 Compliance & DSGVO
7.1 Einwilligungsverwaltung
Jeder Nutzer muss beim Eintritt in eine Organisation explizit AGB, Datenschutzerklärung und DSGVO-Einwilligung akzeptieren. Die Zustimmungen werden versioniert in der Datenbank gespeichert.
7.2 Audit-Trail
Administratoren können im DSGVO-Panel (/admin/consents, Pro-Feature) einsehen:
- Wer hat wann welche Version akzeptiert?
- Gibt es Accounts ohne vollständige Zustimmung (Legacy)?
- Zeitstempel aller Einwilligungen
7.3 Row Level Security (RLS)
Alle Tabellen sind durch PostgreSQL-RLS geschützt. Nutzer können ausschließlich Daten ihrer eigenen Organisation lesen und schreiben. Schema-Isolation (dev/test/prod) verhindert Datenlecks zwischen Umgebungen.
7.4 Datenlöschung (Recht auf Vergessenwerden)
Nach Ablauf der Grace Period werden automatisch gelöscht:
- Alle Urlaubsanträge der Organisation
- Alle Benutzerrollen und -einstellungen
- Die Organisation wird soft-deleted (Name:
[DELETED] {id})
Auth-User-Accounts bleiben bestehen (Supabase Auth). Nur organisationsbezogene Daten werden entfernt.
08 Glossar
| Begriff | Erklärung |
|---|---|
| Trial | 30-tägige kostenlose Testphase nach Registrierung |
| Grace Period | 30-tägige Nachfrist nach Trial-/Abo-Ablauf; kein Zugang, aber keine sofortige Löschung |
| PlanGate | React-Komponente, die Inhalte nur bei genügender Plan-Berechtigung anzeigt |
| Super-Admin | WAMOCON-interner Account, der Subscriptions plattformweit verwalten kann |
| Subscription | Datenbankzeile, die Plan, Status und Laufzeit einer Organisation speichert |
| pending_order | Status nach Upgrade-Anfrage; Trial läuft weiter bis zum Ende |
| RLS | Row Level Security – PostgreSQL-Mechanismus zur Zeilensicherheit |
| Cron Job | Automatisch ausgeführte Aufgabe (hier: täglich Subscription-Ablauf prüfen) |
| Mailto-Fallback | Öffnet nativen Mail-Client, wenn kein OAuth-Provider konfiguriert ist |
| Soft-Delete | Organisation wird nicht gelöscht, sondern als [DELETED] markiert |
| fail-open | Bei Systemfehler wird Zugang gewährt statt gesperrt (keine Betriebsunterbrechung) |