# Personas ## Event Organizer **Description:** A person who creates and manages an event using the app. **Goals and motivations:** - Create an event quickly without needing to register or log in - Share the event with friends via a simple link - Keep event details up to date - See who is attending and manage the guest list - Optionally personalize the event page's appearance **Capabilities:** - Create events (US-1) - Edit event details (US-5) - Cancel an event with an optional cancellation message (US-18) - Delete an event immediately and permanently (US-19) - View and manage the guest list — including removing entries (US-4) - Post update messages to the event (US-10a) - Choose a color theme for the event page (US-15) - Select a header image from Unsplash (US-16) - Generate and download a QR code for the event (US-11) - View local event overview (US-7, shared with Guest — story uses "user" role) - Switch between dark/light mode (US-17, shared with Guest — story uses "user" role) **Limitations:** - Organizer access is device-bound via the organizer token in localStorage (no cross-device organizer access without accounts) - Cannot moderate beyond their own event (no global admin role) - Losing the device or clearing localStorage means losing organizer access **Appears in:** US-1, US-4, US-5, US-7, US-10a, US-11, US-15, US-16, US-17, US-18, US-19 --- ## Guest **Description:** A person who receives an event link and interacts with the event page. May be attending, declining, or just browsing. **Goals and motivations:** - View event details (what, when, where, who else is coming) - RSVP to indicate attendance or non-attendance - Keep track of events they're interested in across devices (via bookmarks) - Add events to their personal calendar - Stay informed about event updates or changes **Capabilities:** - View the event landing page (US-2) - RSVP to an event (US-3) - Bookmark an event locally (US-6) - View the local event overview (US-7) - Download .ics / subscribe via webcal (US-8) - See highlighted changes to event details (US-9) - See organizer update messages (US-10a) - See new-update indicator for unread messages (US-10b) - Download QR code for the event (US-11) - Install the app as a PWA (US-14) - Switch between dark/light mode (US-17) **Limitations:** - Cannot edit event details or manage the guest list - Cannot post update messages - RSVP duplicate protection is device-bound (localStorage), not identity-bound - Local data (bookmarks, RSVP records, preferences) is device-bound and not synced across devices **Note on sub-states:** A guest may be in different states relative to an event (RSVPed attending, RSVPed not attending, bookmarked only, or just viewing). These are contextual states within the same persona — the same person moves between them. The user stories handle these states through their acceptance criteria rather than defining separate roles. **Appears in:** US-2, US-3, US-6, US-7, US-8, US-9, US-10a (as reader), US-10b, US-11, US-12, US-14, US-17 --- ## Self-Hoster **Description:** A technical person who deploys and operates an instance of the app on their own infrastructure. **Goals and motivations:** - Run a private, self-hosted event platform for their community - Control resource usage and prevent abuse on their instance - Configure the app via environment variables without modifying code - Deploy easily using Docker **Capabilities:** - Configure maximum active events (US-13) - Configure Unsplash API key for image search (US-16) - Configure database connection and other runtime settings (T-2) - Deploy using Docker with docker-compose (T-2) **Limitations:** - Not a user role in the app's UI — interacts only through deployment and configuration - Cannot moderate individual events (that is the organizer's role) - App design decisions are not influenced by the self-hoster at runtime **Appears in:** US-13, US-16 (configuration aspect)