Manual Tasks Queue¶
This document tracks all tasks requiring significant human intervention, browser-based work, or external service configuration. These are batched here for efficient completion rather than doing them piecemeal.
Status Key: - 🔴 BLOCKED - Implementation cannot proceed without this - 🟡 OPTIONAL - Enhances features but not critical - 🟢 READY - Can be done anytime, no dependencies
✅ COMPLETED: Alberta Scraper API Research¶
Why: Need to find the data API endpoint to complete Alberta scraper implementation Milestone: M10 Phase 1 - Alberta Scraper Status: Completed — Alberta scraper is implemented (Playwright-based, parses div.well.wt-well cards from rendered HTML), registered in scraper cron, and running in production. 22 Alberta hospitals active. Superseded by M16.
✅ COMPLETED: Upgrade Production Neon Project To Launch¶
Why: The free tier has already proven too fragile for production use. The project hit a real transfer-quota outage on 2026-03-28 and a storage warning at 89% of the free allocation on 2026-03-31. Milestone: Active ops follow-up Status: Confirmed completed on 2026-04-16
Verification outcome¶
- Neon billing now shows Launch active for the current billing period starting 2026-04-16.
- The production project summary confirms that the free-tier ceilings are no longer the live production plan.
- Live verification re-passed on 2026-04-18:
curl -fsS https://wait-time.ca/api/healthbash ./scripts/production-smoke.sh https://wait-time.ca
Reference¶
See docs/operations/neon-production-upgrade.md for the recorded runbook and post-upgrade monitoring guidance.
Result: Production no longer depends on the free tier's 0.5 GB storage and 5 GB/month public transfer ceilings.
✅ COMPLETED: Deploy Latest VPS Frontend Release And Verify Public Status Summaries¶
Why: Confirm the shared-VPS frontend is serving the hardened public status/data-quality filtering rather than an older release. Milestone: Active ops follow-up Status: Completed on 2026-04-17
Verification outcome¶
- The shared-VPS frontend was released from a clean workstation checkout to
main@2eb0faf. - The staged release was deployed on the VPS using
sudo ./scripts/deploy-vps-frontend.sh /etc/projects-merge/env/waittime-frontend.env. - Verification passed:
curl -fsS http://127.0.0.1:3400/api/healthcurl -fsS https://wait-time.ca/api/healthPRODUCTION_BASE_URL=https://wait-time.ca ./scripts/production-smoke.sh- Live
/api/statusand aggregate/api/data-qualitynow: - include the active live source IDs (
quebec-msss,ontario-health,alberta-ahs,bc-phsa) - do not include
manitoba-shared-healthoron-health - Production Ontario scope spot checks passed for:
/api/resources?kind=facility&province=QC&limit=1/api/resources?kind=facility&province=ON&q=Toronto%20General&limit=1/api/resources/system-context?province=ON&limit=1- Production was re-verified on 2026-04-23 on
main@b795f1a, including: /api/resources/system-context?province=ON&limit=1/api/resources/water-advisories?province=ON&limit=1- full
scripts/production-smoke.sh https://wait-time.ca
Result: The public VPS frontend is verified to be serving the hardened status/data-quality rollups in production.
Ontario completion handoff¶
Once the release above is verified, keep the remaining Ontario scope explicit:
/resourcesis intentionally Ontario-only for facilities, AED fallback, and naloxone guidance.- OSM-backed AED fallback remains the shipped AED posture until an official Ontario registry path has explicit permission or partnership coverage.
- Naloxone remains official Ontario link-out only; do not ingest, proxy, or republish the native dataset without clearer reuse rights.
- Ontario EMS/system-context remains analytics-only background context inside
/resources; do not present it as live dispatch or ambulance availability.
✅ COMPLETED: Apply To The Neon Open Source Program¶
Why: Offset Launch-plan costs with credits now that the repo explicitly documents Neon as the default hosted quick-start path. Milestone: Active cost follow-up Status: Application submitted; outcome recorded on 2026-04-18
Outcome¶
- The application was submitted.
- Neon did not approve the project into the program itself.
- Neon granted a one-time
$100credit instead.
Result: The optional credit/application follow-up is no longer pending. The remaining Neon work is Launch-window monitoring, not another application cycle.
🟡 OPTIONAL: Pushover Alert Configuration¶
Why: Enable push notifications for scraper health alerts Milestone: M12 Phase 2 - Dead Man's Switch (already implemented, just needs config) Estimated Time: 5 minutes Priority: MEDIUM (nice-to-have monitoring)
Steps:¶
- Create Pushover Account:
- Go to https://pushover.net
- Create free account
-
Note your User Key (shown on dashboard)
-
Create Application Token:
- Click "Create an Application/API Token"
- Name: "Wait Time Canada Heartbeat Monitor"
-
Note the API Token/Key
-
Add to GitHub Actions encrypted values:
- Go to: https://github.com/jerdaw/waittimecanada/settings/secrets/actions
- Add
PUSHOVER_USER_KEY= your user key - Add
PUSHOVER_API_TOKEN= your API token
Result: GitHub Actions will automatically send push notifications when scrapers fail.
🟡 OPTIONAL: StatsCan Census Data Download¶
Why: Required for Equity Layer (socioeconomic overlays on map) Milestone: M11 Phase 2 - Equity Layer Estimated Time: 20-30 minutes Priority: MEDIUM (strong Health Advocate feature) Current State: Map/API scaffold and tract-linkage summary are live with placeholder geometry; this task unlocks real-data replacement.
Steps:¶
- Download Census Data:
- Go to: https://www12.statcan.gc.ca/census-recensement/2021/dp-pd/prof/index.cfm
- Select: Income statistics by census tract
- Download GeoJSON or shapefile format
-
Focus on: Median household income, Low-income measure (LIM)
-
Save Files:
- Create directory:
frontend/public/data/census/ -
Save files with clear names:
census-income-2021.geojson -
Document Metadata:
Next Steps After Completion: - Replace placeholder payload in /api/equity-layer - Keep legend attribution synchronized with final StatsCan source metadata - Extend equity insights summary using tract-level linkage
✅ COMPLETED: Production Deployment¶
Why: Get live URL for portfolio/applications Milestone: M9 Phase 1 - Portfolio Launch Estimated Time: 45-60 minutes Priority: CRITICAL (needed for applications)
Production Outcome:¶
- Platform: Shared VPS frontend via Caddy + Docker loopback runtime
- Canonical URL:
https://wait-time.ca - Redirects:
https://www.wait-time.ca→https://wait-time.ca/ - Latest verified production release:
main@b795f1a
GitHub Actions (Already Configured):¶
✅ Scraper cron already set up in .github/workflows/scraper-cron.yml ✅ Heartbeat monitor already set up ✅ Production smoke workflow set up in .github/workflows/production-smoke.yml ✅ Production readiness workflow set up in .github/workflows/production-readiness.yml ✅ DATABASE_URL secret is configured ✅ PRODUCTION_BASE_URL is configured ✅ Canonical-domain smoke checks have passed
Document Live URL:
Production Smoke Verification:¶
- Add GitHub Actions secret:
PRODUCTION_BASE_URL= your live site URL- Run workflow manually:
- GitHub Actions →
Production Smoke→ Run workflow - Confirm all checks pass for:
//methods/data-quality/analytics/resources/api/resources/alerts?limit=1/api/resources?kind=aed&province=ON&limit=1/api/resources?kind=facility&province=ON&q=Toronto%20General&limit=1/api/resources/system-context?province=ON&limit=1/api/resources/water-advisories?province=ON&limit=1/api/resources/aqhi?latitude=43.6532&longitude=-79.3832
Production Readiness Verification:¶
- Configure required/recommended secrets:
- Required:
DATABASE_URL - Recommended:
PUSHOVER_USER_KEY,PUSHOVER_API_TOKEN - Run workflow manually:
- GitHub Actions →
Production Readiness→ Run workflow - Confirm heartbeat freshness passes.
- Optional local audit with GitHub CLI:
./scripts/verify-production-ops.sh
🟡 OPTIONAL: Stakeholder Interviews¶
Why: Get real-world validation from ER professionals Milestone: M9 Phase 3 - Stakeholder Validation Estimated Time: 2-3 hours (prep + interviews) Priority: MEDIUM (strong Collaborator narrative)
Interview Targets:¶
- 1-2 ER nurses
- 1-2 ER physicians
- Focus on: Ontario/Quebec hospitals (since we have their data)
Interview Questions (15-minute format):¶
- "When you look at wait time data, what methodology details matter most to you?"
- "How would you react if you saw this warning: 'Ontario uses mean triage-to-doctor, Quebec uses average registration-to-doctor'?"
- "Would a tool showing these methodology differences be useful in your work?"
- "What concerns would you have about patients comparing wait times across provinces?"
Outreach Template:¶
Subject: Quick input on ER wait time transparency tool (medical student project)
Hi [Name],
I'm a medical student building a tool that audits Canadian ER wait time
methodologies. I'm looking for 15 minutes of your time to validate whether
exposing methodology differences (mean vs rolling averages, triage vs registration)
would be useful for professionals or patients.
Would you be available for a brief call/coffee chat?
Thanks,
[Your name]
Document Results: - Save interview notes in docs/stakeholder-interviews/ - Extract 1-2 testimonial quotes (with permission) - If publishing a quote, include publishedAt + approvalReference metadata in frontend/content/stakeholderTestimonials.ts - Keep at most one published: true testimonial entry (guardrail-enforced)
Toolkit Status: - [x] Outreach template prepared (docs/stakeholder-interviews/outreach-template.md) - [x] Intake template prepared (docs/stakeholder-interviews/participant-intake-template.md) - [x] Interview script prepared (docs/stakeholder-interviews/interview-template.md) - [x] Feedback log template prepared (docs/stakeholder-feedback.md) - [x] Testimonial UI/data pipeline prepared (frontend/components/Testimonial.tsx, frontend/content/stakeholderTestimonials.ts)
Current posture: Parked until explicit user go-ahead.
🟢 READY: Screenshot Capture for Portfolio¶
Why: Need high-quality screenshots for LinkedIn, applications, README Milestone: M9 Phase 4 - Launch Materials Estimated Time: 30 minutes Priority: HIGH (needed for applications)
Reference Guide: docs/screenshot-guide.md (already created)
Automation Status: - [x] Baseline screenshot workflow implemented (.github/workflows/portfolio-screenshots.yml) - [x] Automated captures generated as CI artifact (portfolio-screenshots) - [ ] Curated manual captures still needed for divergence warning/modal storytelling shots
Priority Screenshots:¶
- Hero landing page - Full page view
- Interactive map with markers - Zoomed to Toronto/Ottawa area
- Hospital comparison modal - Showing methodology divergence warning
- Methods page - Comparability matrix
- Data export UI - Download component
Specifications:¶
- LinkedIn: 1200x627px
- Twitter: 1200x675px
- GitHub: 1280x640px
- High-DPI: 2x resolution for retina displays
Save to: docs/screenshots/ (create directory)
⏸️ PARKED: LinkedIn Launch Post¶
Why: Announce project to network, potential admissions committees Milestone: M9 Phase 4 - Launch Materials Estimated Time: 15 minutes (review and publish) Priority: HIGH (visibility for applications)
Draft Ready: docs/linkedin-launch-post.md (final recommended post prepared; publish only when explicitly activated)
Steps:¶
- Refresh publish-ready copy in
docs/linkedin-launch-post.mdto match the live mission/equity/stewardship posture - Set live demo URL to
https://wait-time.ca - Add 2-3 screenshots
- Publish
Hashtags: #HealthInformatics #EmergencyMedicine #PublicHealth #OpenData #HealthSystems #Canada
✅ COMPLETED: Application Summary Artifact¶
Milestone: M9 Phase 4 - Launch Materials Status: Completed 2026-02-08
File: docs/application-summary.md
Contains: - Primary application paragraph - 60-second interview version - Technical summary - CanMEDS mapping summary
🟢 READY: GitHub Repository Polish¶
Why: First impression for technical reviewers Milestone: M9 Phase 4 - Launch Materials Estimated Time: 10 minutes Priority: MEDIUM
Checklist:¶
- Add repository description
- Add topics/tags:
healthcare,wait-times,canada,data-visualization,postgresql,nextjs - Pin repository to profile
- Add website URL (once deployed)
- Verify README badges are accurate
- Add social preview image (use screenshot)
🟡 OPTIONAL: Occupancy Statistics Research¶
Why: Determine if "patients waiting" data is available Milestone: M12 Phase 3 - Occupancy Statistics Estimated Time: 15-20 minutes Priority: LOW (nice-to-have feature)
Research Questions:¶
- Does Health Quality Ontario provide "patients waiting" or "patients in treatment" counts?
- Does Quebec MSSS provide similar data?
- Are these counts in the same data source or separate?
- What is the update frequency?
Where to Look:¶
- Ontario: https://www.hqontario.ca/System-Performance/Time-Spent-in-Emergency-Departments
- Quebec: https://www.msss.gouv.qc.ca/professionnels/statistiques-donnees-services-sante/
- Check browser network tab when viewing wait times
- Look for additional API endpoints
Document Findings:
Province: _______
Data Available: Yes / No
Fields: _______________________
Update Frequency: _______
API Endpoint (if any): _______________________
Batch Completion Workflow¶
When ready to knock out manual tasks:
- Sort by Priority: Start with 🔴 BLOCKED, then 🟢 READY, then 🟡 OPTIONAL
- Time-box: Set aside 2-3 hours for efficient batch processing
- Document: Fill in all the blanks as you complete each task
- Update Status: Mark completed tasks with ✅
- Notify: Let me know which tasks are complete so I can proceed with implementation
Last Updated: 2026-02-11 Tasks Pending: Tracked inline Tasks Completed: Tracked inline