System Health Check

One-click validation of core services, QR generation, configs, and pages

What this checks and why it matters

Core platform

  • Database connectivity: App can reach Postgres, if this fails, nothing works.
  • Config files: Required configs exist to avoid silent misconfigurations.
  • PHP extensions: curl (Stripe), gd (QR/images), pdo_pgsql (DB), json.

QR flow

  • Directories: qr_codes, temp_qr_codes, vendor/phpqrcode present for IO.
  • QR library: phpqrcode loadable.
  • Active location: At least one active location to exercise flows.
  • Default template on location: Ensures surveys render after scans.
  • Survey URL: Uses location + institution (no template in URL).
  • QR PNG generation: Generates a real QR (scannable prerequisites).

Surface/UI footprint

  • Critical pages exist: index, how‑it‑works, faq, locations, survey, org/superadmin dashboards, blog, analytics.
  • Core APIs present: qr, locations, surveys, auth, superadmin, stripe‑webhook, backups, business types.
  • HTTP reachability probes: Lightweight checks verify key pages/APIs are reachable without returning server errors.
  • Automation scripts: Verifies required cron-driven scripts exist and are readable.
  • Stripe config: Keys present for payment/webhook paths.
  • Email utils: PHPMailer loads for notifications.
Confidence boosters: one‑click, broad coverage, clear pass/fail with details, aligned to current QR design, repeatable after any deploy.
Data safety: Deep test creates temporary records inside a transaction and then rolls everything back. No persistent test records are kept (ID gaps are normal due to DB sequences).