Page:
Feature Dokumentation
Clone
2
Feature Dokumentation
Daniel Krähenbühl edited this page 2026-05-20 08:26:32 +02:00
Table of Contents
- Feature-Dokumentation
Feature-Dokumentation
Authentifizierung
Registrierung
- E-Mail + Passwort (min. 8 Zeichen)
- Cloudflare Turnstile CAPTCHA
- Nach Registrierung: Bestätigungsmail mit Link (24h gültig)
- Route:
/register
Login
- E-Mail-basiert (kein Username), case-insensitiv
- "Angemeldet bleiben"-Checkbox:
localStorage(persistent) vs.sessionStorage - Bei aktivierter 2FA: zweistufiger Flow (Credentials → TOTP-Code)
- Route:
/login
Passwort vergessen
- E-Mail eingeben → Reset-Link per Mail (15min gültig)
- Anti-Enumeration: gleiche Antwort unabhängig ob Konto existiert
- Route:
/forgot-password
Passwort zurücksetzen
- Token aus Mail-Link, neues Passwort eingeben
- Bei Erfolg: alle aktiven Sessions werden invalidiert
- Route:
/reset-password?token=...
E-Mail-Verifikation
- Token aus Bestätigungsmail, automatische Verifikation beim Laden
- Route:
/verify-email?token=...
2-Faktor-Authentifizierung (2FA)
- Setup: QR-Code scannen mit Authenticator-App (Proton Pass, Aegis, Raivo OTP)
- Login: 6-stelliger TOTP-Code, wechselt alle 30 Sekunden
- Backup-Codes: 8 Codes im Format
XXXXXXXX-XXXXXXXX, SHA-256-Hash in DB; Copy + PDF-Download - Recovery: E-Mail-Code (15min) wenn Gerät verloren; deaktiviert 2FA
- Verwaltung unter:
/settings
Dashboard (/dashboard)
KPI-Cards
- Gesamteinnahmen, Fixkosten, Variable Ausgaben, Verfügbarer Betrag, Sparquote
Einnahmen vs. Ausgaben (Bar Chart)
- 3 Serien: Einnahmen, Fixkosten, Variable Ausgaben
- Jahres-Dropdown (öffnet nach oben)
- ApexCharts, custom Tooltip in Landessprache
Fixkostenaufschlüsselung (Pie Chart)
- %-Labels direkt auf Segmenten
- Toggle-Button wechselt zur Listenansicht (Name, CHF, %)
Sparquote
- Progress-Bar mit Violet Ziel-Marker
- Ziel personalisierbar über Settings-Toggle (gespeichert im Profil)
Jahresplanung (/financial-year)
- Jahres-Dropdown: verfügbare Jahre auswählen
- 3 Summary-Cards: Einnahmen, Fixkosten, Verfügbar + Sparquote
- Tab Einnahmen: Inline-CRUD für Einnahmequellen pro Jahr
- Tab Fixkosten: Inline-CRUD für Fixkostenpositionen pro Jahr
- Neues Jahr starten: max. 1 Jahr im Voraus, Daten aus Vorjahr kopierbar
- Haushalt: gemeinsamen Haushalt gründen, Mitglieder einladen, Rollen verwalten
Kalender (/calendar)
- Jahresansicht mit Monats-Klick für Detailansicht
- Schweizer Feiertage und Schulferien nach Kanton (OpenHolidays API, mit Fallback)
- Persönliche Termine (Deadlines) einpflegen
- iCal-Feed abonnieren (persönlicher Link unter Einstellungen)
Konten (/accounts)
- Drei Kontotypen: Asset (Bank/Cash), Expense (Empfänger), Revenue (Einnahmequelle)
- Vollständiges CRUD
Budgets (/budgets)
- 7 Kategorien: Fixkosten, Mobilfunk/Internet, Abonnements, Freizeit, Steuerrücklagen, Versicherungen, Kredite
- Info-Modal wenn keine Konten vorhanden
Ausgaben (/expenses)
- 10 Kategorien, optionales Fälligkeitsdatum
- Kategoriefilter
- Info-Modal wenn keine Konten vorhanden
Transaktionen (/transactions)
- Doppelte Buchführung (Source + Destination Account)
- Vollständiges CRUD
Einstellungen (/settings)
| Bereich | Beschreibung |
|---|---|
| Profil | Avatar, Name, Kanton, Sprache, Recovery-E-Mail |
| 2FA | Aktivieren/Deaktivieren, QR-Code, Backup-Codes |
| Aktive Sessions | Alle eingeloggten Geräte, einzeln widerrufbar |
| Benachrichtigungen | Toggles für Termine, Budget-Warnungen, Monatszusammenfassung |
| Datenexport | ZIP mit 6 PDFs (Profil, Konten, Budgets, Ausgaben, Transaktionen, Termine) |
| Danger Zone | Account löschen (dreistufig: Export → Passwort + Phrase → Redirect) |
E-Mail-Benachrichtigungen
| Trigger | Template | Gültigkeit |
|---|---|---|
| Registrierung | registration_confirm |
24h |
| Passwort zurücksetzen | password_reset |
15min |
| Passwort geändert | password_changed |
— |
| E-Mail-Adresse geändert | email_changed |
— |
| 2FA-Recovery | 2fa_recovery |
15min |
Alle Mails: HTML + Plaintext-Fallback, Absender noreply@armarium.ch via Brevo.
Lokalisierung
- 4 Sprachen: Deutsch, Englisch, Französisch, Italienisch
- Sprachwahl auf Login/Register und in den Einstellungen
- Browser-Sprache wird automatisch erkannt
- Schweizer Feiertage in der gewählten App-Sprache
Globale Suche
- Suche über Konten, Budgets, Ausgaben, Transaktionen, Termine
- Mindestlänge: 2 Zeichen
- Erreichbar via Suchfeld in der Navbar