Demo: August 28
Agenda
- Demo: Client experience: from invite, to completion, and password reset
- Demo: Admin printable view of submitted form
- Discuss: client event tracking and logging
- Discuss: Admin account shadowing
Demo Walkthrough
Note: Actual email delivery is a background job. Staging job runner only wakes up once an hour to not burn up free dyno time (production is every 10 minutes). To have jobs run immediately for demo, spin up a one-off dyno:
heroku run rails jobs:work -a sc-portal-staging and quit when you’re done
- Create a user (set the password), property, and request; email the request
- View request in email; add pins, two properties; complete one, confirm; print confirmation;
- half complete other, see differences;
- As user, reset password
Event Tracking: “I want to know when the client did…”
Two approaches:
Event Sourcing
“We need to keep an audited record of all data changes over time.”
- Provides full history of data
- Events themselves become the single source of truth for data
- Blockchain is built on workflows this this
- Very complex
- cf: https://martinfowler.com/eaaDev/EventSourcing.html
Audit Logging
“I want a log of certain activities in the app.”
- Straightforward: we want a log of specific kinds of Client activities, that we’ll specify.
- Need to specify what actions should be logged
- Who and When are handled automatically
- Probably, display the log on the client record
Examples:
- 8/28/2019 5:00 pm — logged in
- 8/28/2019 5:05 pm — Confirmed RAVA for x
- 8/28/2019 5:00 pm — Completed RAVA section 1 for X
- 8/28/2019 5:00 pm — logged out
Account Shadowing
Do staff need to shadow or masquerade client accounts, such that they can see the portal views, as if they were themselves the client?
- means admins could make changes on the client behalf
- or, we could define unauthorized admin behaviors
What work remains?
- PIN validation on input
- Client sets their password, if not set
- CSV import to generate users, properties, RAVA requests, emails.
- Refined dashboard for “RAVAs all done” state. As a user, I can handle multiple properties.
- Client event tracking?
- Reminders to Clients?
Work completed this week
- Merged client and admin user authentication / authorization with roles: admin, client
- DevOps: deployment to staging server
- Research on event tracking and logging
- Print stylesheet for forms
- Business rules: post RAVA confirmation, no edits or deletes
- Client password reset
- Color of progress bar changed on form confirmation
Work completed last week, not demo’ed
- Single page, non-editing RAVA form for confirmation and admin views
- Added RAVA forms to admin UI
- Created emailer, welcome email; prototype interface to send
Test coverage report
