Commit graph

23 commits

Author SHA1 Message Date
King Omar
99d39e32d2 Add delete buttons for enquiries on admin dashboard 2026-07-14 21:12:55 +10:00
King Omar
fc76002715 Save WP images as static assets; multi-announcement carousel
Images (19 files):
- Downloaded all wp-content images referenced in source to public/
- Added [assets] binding in wrangler.toml — Cloudflare serves them as
  static files directly (CDN-cached, bypasses Worker), with the Worker
  proxy as fallback for any new uploads not yet saved

Announcements:
- Homepage now fetches all active non-expired announcements (up to 10)
- announcementBanner rewritten as rotating carousel: auto-advances
  every 5s, prev/next arrows, dot indicators, per-announcement dismiss
  stored in localStorage — dismissed ones skip in the rotation

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-10 15:19:53 +10:00
King Omar
639d1eaa49 Fix WP media proxy: use resolveOverride instead of raw IP fetch
Fetching https://[IP] fails SSL (cert is for the domain, not the IP).
Fetching http://[IP] may get upgraded to HTTPS by the zone policy.

resolveOverride lets Workers fetch the domain URL (TLS verifies correctly
against careersgateway.com.au) while routing the TCP connection directly
to the LiteSpeed origin at 62.169.17.14, bypassing the Worker route loop.
Allowed on any plan for hostnames belonging to the same zone.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-10 15:08:24 +10:00
King Omar
e7af09275a Add admin panel, announcements/specials system, homepage popup
- /admin: password-protected admin login (8-hour session cookie)
- /admin/dashboard: full inquiries table + announcement management
- Announcements: create promos with title, body, optional CTA button,
  optional expiry date; toggle active/inactive; delete
- Homepage: queries active non-expired announcement from D1 and renders
  a dismissible orange banner (localStorage persists per-announcement)
- D1 migration 004_announcements.sql: announcements table + index

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-10 15:00:16 +10:00
King Omar
f4d87a46fa Update VAC fees to 2026-27 schedule, add WP media proxy
- VAC_FEES updated to 1 July 2026 rates (DHA 2026-27 schedule)
- 482 renamed to Skills in Demand (SID); 187 RSMS removed (closed 2019)
- Added subclass 191 (Permanent Residence Skilled Regional)
- All fee page year labels bumped to 2026-27
- /wp-content/* proxy routes to 62.169.17.14 (LiteSpeed origin) so
  WordPress images and logos render through the Worker

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-10 14:57:23 +10:00
King Omar
ce771edec5 Add daily document expiry cron + update VAC fees to 2025-26
Document expiry notifications (NEW):
- Cloudflare Cron Trigger: runs daily at 9am AEST (23:00 UTC)
- Queries ALL users' documents expiring within 30 days
- Sends HTML email to Cgabijendra@gmail.com grouped by urgency:
  🔴 Already expired / 🟠 Within 7 days / 🟡 Within 30 days
- Includes client name, email, phone, expiry date in each row
- Also logs to Google Sheet for record

VAC Fees updated to 2025-26 (effective 1 July 2025):
- 189/190/491/186/187/494: $4,990 / $2,495 / $1,250
- 482 TSS: $3,270 / $1,635 / $1,635
- 500 Student: $750 / $375 / $375
- 485 Graduate: $1,985 / $995 / $500
- 820/309 Partner: $9,265 / $4,635
- 600 Visitor: $195
- Added "as at 1 July 2025" disclaimer with link to verify at DHA

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-10 14:46:00 +10:00
King Omar
adc1e2716c Health insurance widget: fullscreen + better fit
- iframe height increased to 820px
- Fullscreen button (top-right corner of widget) — uses native Fullscreen API
- CSS overlay fallback for browsers that block iframe fullscreen
- Escape key closes overlay
- "Open in new tab" link for mobile/fallback
- Second fullscreen CTA button in the security badge bar

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-10 14:28:53 +10:00
King Omar
cc708036fa Update email from info@ to contact@careersgateway.com.au
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-10 14:27:14 +10:00
King Omar
99b7b68ea9 Fix full customer flow integration gaps
Registration:
- New signup triggers Google Sheet row + email to Cgabijendra@gmail.com
- Subject: 🆕 New Account Registration with name/email/phone

Course saves:
- 💾 Save now notifies team via Google Sheet + email (high-intent signal)
- Deduplication: won't save same course twice for same user
- Save redirects back to search results (not dashboard) with green  toast
- Button shows " Saved" for the just-saved course

Dashboard:
- Saved courses split into own card with "Book Consultation" CTA per course
- Actual inquiries shown separately with Processing/Received status
- Empty state guides user to course search
- Quick-stat card shows saved courses count + consultation count separately

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-10 14:15:03 +10:00
King Omar
e773335034 Audit fixes: honest kondesk_sent tracking, remove unreachable kondesk.com endpoint
- kondesk_sent now only set to 1 when Google Sheet or email actually delivered
- pushLeadToKondesk returns per-channel success flags (sheetOk, emailOk, kondeskOk)
- Removed app.kondesk.com (unreachable); kept konpare.online endpoints for future
- Kondesk integration note: leads flow via Konpare OSHC widget at cga.konpare.online

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-10 13:57:47 +10:00
King Omar
3333c941c4 Add Instagram, Facebook socials to nav + footer; wire Google Sheet webhook
- Instagram (careersgatewayaus) + Facebook icons in nav header and footer
- WhatsApp also added to footer social row alongside Instagram + Facebook
- GOOGLE_SHEET_WEBHOOK set in wrangler.toml

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-10 13:51:00 +10:00
King Omar
91b7a948fd Add Google Sheets webhook, email to Cgabijendra@gmail.com, WhatsApp button
- Every inquiry fires 3 simultaneous destinations: Google Sheet, email, Kondesk
- Email to Cgabijendra@gmail.com with HTML template + reply-to set to the lead
- GOOGLE_SHEET_WEBHOOK env var (set once Google Apps Script is deployed)
- WhatsApp floating button bottom-right, links to +61 405 580 047

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-10 13:41:22 +10:00
King Omar
29cfa0b9ac Prepare for careersgateway.com.au domain migration
- Update BASE_URL canonical to careersgateway.com.au (OG tags, sitemaps)
- Add careersgateway.com.au + www as custom_domains in wrangler.toml
- Add www → apex 301 redirect middleware

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-10 13:35:58 +10:00
King Omar
32af32569b Fix dashboard to show all visa tracker tools
Main /dashboard now uses dashWrap sidebar (same as all tool pages), replacing
the old isolated dashboardPage template. Overview shows quick-stat cards for
points/timeline/expiring docs/inquiries, a full 12-tool grid, expiry alerts,
and recent inquiries — all in one unified layout.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-10 13:31:32 +10:00
King Omar
c3fa7fc96c Add Visa Tracker Pro features to user dashboard
9 new tools modelled on Visa Tracker Pro (iOS):
- Points Calculator: full 189/190/491 points test with live breakdown
- Visa Case Timeline: 7-stage tracker (Skills Assess → EOI → Invite → Lodge → Grant) with date + notes
- Document Expiry Tracker: passport/visa/English test/assessment with colour-coded countdown
- VAC Fee Calculator: all major subclasses, primary + partner + children, live JS calc
- Occupation Search: 55 MLTSSL/STSOL occupations with ANZSCO, authority, visa eligibility
- State Nomination Criteria: all 8 states/territories, SC 190 + 491 min points + notes
- Processing Times: P25/P50/P75/P90 percentile table for 11 visa subclasses
- English Requirements: IELTS/PTE/TOEFL/OET table for 6 visa types
- Student Fund Calculator: DHA 2025-26 living costs + tuition + partner/children, live JS calc

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-10 13:25:37 +10:00
King Omar
775e77ebe1 Add full OG and Twitter Card meta tags to all pages
- og:title, og:description, og:image, og:url, og:type, og:site_name per page
- twitter:card summary_large_image on all pages
- meta description + canonical URL on every page
- Page-specific images and descriptions for homepage, courses, contact, health insurance, services

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-10 13:17:20 +10:00
King Omar
d24c57b0e3 Add real phone numbers from careersgateway.com.au
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-10 13:13:18 +10:00
King Omar
3b3934ff75 Fix all broken images, add favicon
- Replace 7 space-filename Screenshot images (404 in browsers) with working URLs
- Nav/footer logo → cropped version with underscores (200)
- Service images → pexels, elementor thumbs, 2025/07 uploads (all 200)
- Testimonial + blog images → working replacements
- Add favicon (32x32) and apple-touch-icon (180x180) from careersgateway.com.au

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-10 13:09:16 +10:00
King Omar
e224610b67 test deploy hook fix 2026-07-10 13:01:57 +10:00
King Omar
3374ea72ef Make phone required on registration, fix deploy hook npx path
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-10 13:01:20 +10:00
King Omar
1e667b3e65 Gate CRICOS results behind auth, pull real images from careersgateway.com.au, fix Konpare URL
- CRICOS results now show 3 blurred teasers + register/login wall for guests
- Real logo, hero cutout, CEO photo, service images, testimonial photos, blog grid
- Konpare health insurance widget updated to https://cga.konpare.online/

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-10 13:00:34 +10:00
King Omar
53bcbf7050 Switch CRICOS to official data.gov.au D1 dataset (26K courses, 47K locations)
Replace unreliable JS-rendered scraper with fast D1 queries against the
official CRICOS government dataset, updated monthly from data.gov.au.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-10 12:52:25 +10:00
King Omar
158023df1a Initial build: CareersGateway portal with CRICOS search, auth, Konpare OSHC widget, Kondesk lead push
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-10 12:40:37 +10:00