PACTT Volunteer Management
Portland Area Canine Therapy Teams — volunteer management system (pro bono)
Notes
No notes yet.
Open Tasks (6)
- 0/3 items0%
- plannedmedium3/12 items25%
- plannedlow0/7 items0%
- 0/8 items0%
- plannedlow0/3 items0%
- 1/10 items10%
Next Actions (39)
Kathy reviews + resolves the 10 flagged series in-app
Edit-event sheet doesn't yet expose `MONTHLY_BY_WEEKDAY` pattern (only the create form does) — small follow-up
Two open questions from top of Kathy's spreadsheet, deferred to next conversation:
Visit reminder: automated email 3 days before a scheduled visit event (once event is CONFIRMED and team is assigned)
Cert expiry: email X days before expiry with options to book a recert session
Cert reminder: email before scheduled cert/recert date
Final cert reminder: email 2-3 days before scheduled cert date
Training reminder: email to handlers in practice stage (onboarding pipeline)
Build email scheduling/queue system or cron-based trigger (depends on how HubSpot API is wired)
Admin UI to configure reminder timing (days before) and toggle on/off per type
All stubs: log to console + store in MessageLog with PENDING status until HubSpot API available
Specific reminder-template copy still to be authored in-app by Kathy/Molly (system supports it now):
Confirm hosting/auth scope with Casey before building
Field list confirmed with Kathy
Public route added with Cloudflare Access exception
Submissions create `Site` records with a `PENDING_REVIEW` status flag (or a separate `FacilityIntake` model — decide schema)
In-app "Pending facility submissions" queue with approve/reject actions
Submission confirmation email to the requester
Anti-spam: at minimum a honeypot field; consider Cloudflare Turnstile if abuse appears
Pick Phase 2 auth approach with Casey (magic-link via Resend, Cloudflare Access self-serve, NextAuth + email provider, etc.)
Build handler-scoped session middleware
Handler dashboard view (mobile-friendly — PWA)
"Confirm visit" action on assigned planned-visit cards → creates HoursLog entry pre-filled with handler+dog+facility+date
NEW: "Submit new visit" action where the handler creates a HoursLog entry from scratch (facility + date + dog + duration) — goes into a `pending_approval` queue for Kathy
NEW: Admin view: pending-visit approval queue with one-click approve / reject (rejection asks for reason)
Editable visit-detail fields (actual duration, notes) before final submit
Kathy can still mark a visit confirmed on the handler's behalf
Ask Kathy in next session: what is the current pain point on the hours-log entry sheet? Too many fields? Too slow? Too many clicks per entry?
Time her doing a batch of 10 entries on the current flow, identify friction
If a "quick entry" is wanted, scope: maybe a single-row inline form at the top of the hours-log table with sensible defaults (today, last-used facility, last-used team)
Add `currentCardImageUrl` field to Team (or to Handler — decide which is canonical; trading cards are per-team in the existing model)
Render current card image on team detail / handler detail when present
Card edit-request form: image upload + text fields + free-form notes
`CardEditRequest` model with status enum (PENDING, IN_DESIGN, PRINTED, RECEIVED, CANCELLED)
Notification stub: log who would be emailed; wire to HubSpot / Resend once email delivery is resolved
Admin queue page for card edit requests with status transitions
Handler profile page shows current card image
"Request restock" button → flips needs-restock flag
"Request card edit" → opens same form admin uses
Hours
Recent Commits
- Add Event vs Visit distinction; exclude visits from staffing alertsCasey Hettman4d ago
- Fix calendar sort: CalendarEvent uses 'label' not 'title'Casey Hettman5d ago
- Sort calendar day-panel chronologically (by start time, untimed last)Casey Hettman5d ago
- Update changelog (1.17–1.21) and feature page for the May 29–31 workCasey Hettman6d ago
- Rename dashboard stat tiles to 'Active Handlers' / 'Active Dogs' (Option A)Casey Hettman6d ago
- Communication templates (Tranche 1): schema + CRUD UI + 10 starter templatesCasey Hettman7d ago
- Extend import-team-documents script with --source-dir + --skip-duplicatesCasey Hettman7d ago
- Surface event-review flag: dashboard alert, list filter, detail bannerCasey Hettman7d ago
- Fix import script: rename 'flag' to needsReview in SQL commentCasey Hettman7d ago
- Bulk-import 60 recurring visits from Kathy's spreadsheetCasey Hettman7d ago
- Add MONTHLY_BY_WEEKDAY recurrence patternCasey Hettman7d ago
- Show up to 5 possible facility matches; drop create-new columnCasey Hettman8d ago
- Add scripts to reconcile Recurring Visits.xlsx facility names against prodCasey Hettman8d ago
- Refine 'needs staffing' alert to honor the soft-target modelCasey Hettman8d ago
- Collapse destructive actions behind a ⋯ menu; gate Confirm on having teamsCasey Hettman8d ago