On scan, prompt login and check if the user is an officer.
If not --> FAIL STATE (not an officer)
If yes --> check n_checkpoints vs. number of checkpoints the user of the qr code has passed.
If number of checkpoints the user of the qr code has passed > n_checkpoints --> REDEEMED STATE
Else:
--> FAIL STATE
Redeemed state should also call the following logic:
- n_checkpoints incrementation method
- redemptions array addition method