User interaction sequence
The system shall have (at least) three states:
- Closed: Only select members can open the door
- Open for members: All members can open the door
- Open for public: Door is automatically opened with front button
flowchart LR
press(Press button) --> open_for_public{Open for public?}
open_for_public --"no"--> reading(Read card)
open_for_public --"yes"--> open(Open door)
reading --"authenticate"--> member{is member?}
member --"no"--> do_nothing(Do nothing)
member --"yes"--> open_for_members{Open for members?}
open_for_members --"no"--> authorized{Authorized?}
open_for_members --"yes"-->open
authorized --"no"-->do_nothing
authorized --"yes"-->open