Skip to content

UC-003: Meetup Organizer Access

Actor: Meetup Organizer (non-member) Priority: Must Status: Implemented (protocol + firmware allow-list evaluation)

Summary

An external meetup organizer can enter the space on recurring evenings to set up and run their event.

Preconditions

  • Admin has registered the organizer with a scheduled access rule
  • Rule defines recurring time slots (e.g., every Tuesday 17:00–22:00)
  • Organizer has an NFC card with the rule reflected in the allow-list

Main Flow

  1. Organizer arrives Tuesday at 17:30
  2. Scans NFC card at the terminal
  3. ESP32 finds entry: SCHEDULED, time slot matches (Tuesday, 17:00–22:00)
  4. Access granted, door unlocks

Alternative Flows

A1: Organizer initiates space shutdown, then returns (grace period)

  1. Event runs past the 22:00 window end, attendees leaving around 22:30
  2. Organizer presses shutdown button at 22:35 (space shutdown)
  3. Grace period (15 min) starts from shutdown (22:35), runs until 22:50
  4. At 22:40, organizer realizes they forgot their laptop, scans card — GRANTED_GRACE
  5. Grace period resets from 22:40, now runs until 22:55
  6. Anomaly notification queued if NOTIFY_ON_ANOMALY is set

A2: Organizer returns too late after shutdown

  1. Space shutdown at 22:15 after event ends
  2. At 22:35, organizer returns — 20 min after shutdown, past 15-min grace
  3. Access denied
  4. Scanning card outside is always allowed for locking: LOCK_ONLY decision

A3: Organizer tries on wrong day

  1. Organizer scans card on Wednesday
  2. Time slot day_mask only includes Tuesday
  3. Access denied

Error Flows

E1: Organizer arrives too early

  1. Organizer scans card at 16:00 on Tuesday
  2. Time slot starts at 17:00 — outside window
  3. Access denied

Postconditions

  • Door unlocks during the scheduled time window
  • Grace period allows finishing up after the window ends
  • Space shutdown is always possible

Access Rule

  • Access type: SCHEDULED
  • Time slots: Slot 1: Tue 17:00–22:00
  • Notifications: NOTIFY_ON_ANOMALY
  • Grace period: 15 minutes

Notes

  • For complex recurring patterns (e.g., "last Saturday of the month"), the backend pre-computes the next occurrence and generates a date-ranged entry.
  • Multiple time slots can be used for organizers with events on different days (up to 4 slots per entry).