7.6 KiB
7.6 KiB
Seiten und UI-Design für die Tenant Admin App
Status
- Version: 1.0.0 (2025-09-13)
- Fokus: Mobile-First Design mit Framework7 v8+ für native iOS/Android-Look & Feel.
Allgemeines UI-Prinzipien
- Framework7-Komponenten: Toolbar (Navigation), List (Datenlisten), Card (Karten für Events/Photos), Modal (Details/Actions), Pull-to-Refresh (Sync), Infinite-Scroll (Pagination).
- Theming: System-Dark-Mode-Support; Tenant-spezifische Farben (Primary/Secondary aus Settings).
- Navigation: Tabbar unten (Dashboard, Events, Photos, Settings); Side-Menu für Profile/Logout.
- Offline-Indikator: Banner oben ("Offline-Modus: Änderungen werden synchronisiert").
- Loading: Spinner für API-Calls; Skeleton-Screens für Listen.
- i18n: Rechts-nach-Links für de/en; Icons von Framework7-Icons (Material).
Benötigte Seiten und Komponenten
1. Auth-Seiten (OAuth-Flow)
Login-Seite
- Zweck: OAuth-Authorization (PKCE-Challenge generieren, Redirect zu /oauth/authorize).
- Layout:
- Zentrale Card mit Logo, App-Name, "Mit Google/Email anmelden"-Buttons.
- Footer: "Noch kein Account? Registrieren" (Redirect zu Register).
- Framework7-Komponenten:
f7-pagemitf7-navbar(Titel: "Willkommen zur Event Photo App").f7-blockfür Content;f7-button(large, filled) für OAuth-Start.f7-preloaderwährend Redirect.
- Wireframe-Beschreibung:
[Navbar: Logo | Willkommen] [Block: App-Beschreibung] [Button: Anmelden mit Google] [Button: Anmelden mit Email] [Footer: Registrieren-Link] - API: Kein direkter Call; Browser-Redirect zu Backend.
Register-Seite (ähnlich Login)
- Unterschiede: Form für Email/Password + Terms-Checkbox; Submit zu
/oauth/register.
2. Dashboard (Home)
- Zweck: Übersicht über aktive Events, Stats, schnelle Actions.
- Layout:
- Top: Willkommens-Banner mit Tenant-Name, Credit-Balance.
- Stats-Cards: Aktive Events, Ungeprüfte Photos, Tasks-Fortschritt.
- Quick-Actions: "Neues Event erstellen", "Photos moderieren".
- Framework7-Komponenten:
f7-toolbarunten: Tabs (Home, Events, Photos, Settings).f7-cardfür Stats (mitf7-iconund Zahlen).f7-listfür Quick-Actions (link mit Arrow).f7-pull-to-refreshfür Sync.
- Wireframe-Beschreibung:
[Toolbar: Home | Events | Photos | Settings] [Banner: Hallo [Name]! 3 Credits übrig] [Row: Card(Events: 2 aktiv) | Card(Photos: 15 neu) | Card(Tasks: 80%)] [List: > Neues Event | > Moderieren | > Einstellungen] - API:
GET /tenant/dashboard(Stats);GET /tenant/credits/balance.
3. Events-Übersicht
- Zweck: Liste aller Events mit Filter (aktiv/archiviert), Suche.
- Layout:
- Navbar: Suche-Feld, Filter-Button (Dropdown: Status, Datum).
- Infinite-Scroll-Liste von Event-Cards (Titel, Datum, Status-Tag, Photo-Count).
- FAB: "+" für Neues Event.
- Framework7-Komponenten:
f7-searchbarin Navbar.f7-listmitf7-list-item(Thumbnail, Title, Subtitle: Datum, Badge: Status).f7-fab(floating action button).f7-segmentedfür Filter-Tabs.
- Wireframe-Beschreibung:
[Navbar: Suche | Filter ▼] [Segmented: Alle | Aktiv | Archiviert] [List-Item: [Thumb] Hochzeit Müller (15.09.) [Tag: Aktiv] 45 Photos] [List-Item: ...] [+ FAB unten rechts] - API:
GET /tenant/events?page=1&status=active(paginiert).
4. Event-Details-Seite
- Zweck: Vollständige Event-Info, Edit-Modus, zugehörige Tasks/Photos.
- Layout:
- Tabs: Details, Tasks, Photos, Members, Stats.
- Edit-Button (öffnet Modal für Update).
- QR-Code-Section für Join-Link.
- Framework7-Komponenten:
f7-tabsmitf7-tabfür Subseiten.f7-cardfür Details (Datum, Ort, Beschreibung).f7-qrcode(via Plugin) für Share-Link.f7-button(edit-icon) →f7-modalmit Form.
- Wireframe-Beschreibung:
[Navbar: Event-Titel | Edit-Icon] [Tabs: Details | Tasks | Photos | Members | Stats] [Details-Tab: Card(Datum: 15.09., Ort: Berlin) | QR-Code: Scan zum Beitreten] [Tasks-Tab: Checklist (Drag-to-reorder)] [Photos-Tab: Grid von Thumbs] - API:
GET /tenant/events/{id};PATCH /tenant/events/{id}(ETag).
5. Photo-Gallery-Seite (pro Event)
- Zweck: Moderation von Photos; Grid-View mit Lightbox.
- Layout:
- Filter: Neu/Ungeprüft/Featured; Sortierung (Datum, Likes).
- Masonry-Grid von Photo-Cards (Thumb, Timestamp, Like-Count).
- Long-Press: Multi-Select für Bulk-Actions (Approve/Delete).
- Framework7-Komponenten:
f7-photosetoder custom Grid mitf7-card(small).f7-lightboxfür Fullscreen-View.f7-checkboxfür Multi-Select.f7-popoverfür Actions (Approve, Feature, Delete).
- Wireframe-Beschreibung:
[Navbar: Photos (Event) | Filter ▼] [Grid: 3xN Cards [Thumb | Zeit | Likes] [Checkbox]] [Lightbox: Fullscreen Photo mit Zoom, Actions] [Bottom-Bar (bei Select): Approve All | Delete Selected] - API:
GET /tenant/events/{id}/photos;PATCH /tenant/photos/{id}(Batch).
6. Members-Seite
- Zweck: Verwalten von Event-Mitgliedern (Hinzufügen per Email, Rollen).
- Layout: Liste von User-Cards (Name, Rolle, Joined-At); Invite-Button.
- Framework7-Komponenten:
f7-listmitf7-list-item(Avatar, Name, Badge: Rolle).f7-modalfür Invite-Form (Email-Input, Send-Button).
- Wireframe-Beschreibung:
[Navbar: Members | + Invite] [List: Anna (Admin) | Ben (Member) | ...] [Modal: Email eingeben | Rolle wählen | Senden] - API:
GET /tenant/events/{id}/members;POST /tenant/events/{id}/members.
7. Tasks-Seite
- Zweck: Bibliothek verwalten, zu Events zuweisen, Fortschritt tracken.
- Layout: Tabs: Meine Tasks, Bibliothek; Drag-and-Drop zwischen Listen.
- Framework7-Komponenten:
f7-tabs;f7-sortable-listfür Drag-and-Drop.f7-checkboxfür Zuweisung.
- Wireframe-Beschreibung:
[Tabs: Events | Bibliothek] [Sortable List: Task1 [Checkbox] | Task2 ...] [Drag: Von Bibliothek zu Event-Liste] - API:
GET /tenant/tasks;POST /tenant/events/{id}/tasks.
8. Settings-Seite
- Zweck: Tenant-Einstellungen bearbeiten (Theme, Limits, Legal).
- Layout: Accordion-Sections (Theme, Notifications, Legal, App).
- Framework7-Komponenten:
f7-accordionfür Sections.f7-toggle,f7-select,f7-color-pickerfür Optionen.
- Wireframe-Beschreibung:
[Navbar: Einstellungen] [Accordion: Theme ▼ [Color-Picker] | Notifications [Toggle Push]] [Legal: Impressum-Link bearbeiten] [App: Logout-Button] - API:
GET/PATCH /tenant/settings. Details in settings-config.md.
9. Billing-Seite
- Zweck: Credit-Balance anzeigen, Packs kaufen.
- Layout: Balance-Card; Liste von Purchase-Options; Ledger-Historie.
- Framework7-Komponenten:
f7-cardfür Balance (mit Warning bei niedrig).f7-listfür Packs (Preis, Events-Count, Buy-Button).f7-infinite-scrollfür Ledger.
- Wireframe-Beschreibung:
[Card: Balance: 3 Credits | [Warning: Niedrig!]] [List: 5 Events (29€) [Buy] | 10 Events (49€) [Buy]] [Ledger: Kauf 29.09. +5 | Event-Erstellung -1] - API:
GET /tenant/credits/balance;POST /tenant/purchases/intent.
Zusätzliche UI-Elemente
- Modals: Confirm-Delete, Photo-Preview, Error-Alerts.
- Notifications:
f7-notificationfür Sync-Erfolg, neue Photos. - Offline-Handling:
f7-blockmit "Syncing..." Progress-Bar. - Accessibility: ARIA-Labels für alle interaktiven Elemente; VoiceOver-Support.
Für Capacitor-spezifische UI-Anpassungen siehe capacitor-setup.md.