TidyLinker.com
TypeScript
Pull Request Opened
PR #119 opened: feat: operational admin dashboard, nudge emails, and job notifications
Summary
- Job notifications: Cleaners now get emailed when a matching job is posted in their area
- Admin dashboard overhaul: Rebuilt as an operational command centre with:
- Cleaner pipeline funnel (signup → email verified → onboarded → ID verified → Stripe active → fully ready)
- Client pipeline funnel (signup → verified → posted job → completed job)
- Action items with per-user and bulk nudge buttons
- Marketplace health (jobs by status, cold jobs with no quotes, quotes, messages, revenue)
- Signup trend chart (last 6 months, cleaner/client split)
- Pre-launch signup stats (52 signups, 6 converted, 46 not contacted)
- Recent registrations with verification status and last login
- 4 nudge email types: verification reminder, onboarding nudge, Stripe setup reminder, profile completion
- Launch announcement command:
php artisan email:send-launch-announcementfor the 46 unconverted pre-launch signups - Login tracking:
last_login_atcolumn + migration, updated on every login
Test plan
- Run
php artisan test --filter=DashboardController— all 24 tests pass - Run
php artisan test --filter=SendLaunchAnnouncement— all 5 tests pass - Visit
/adminas admin user — verify funnel, action items, marketplace health all render - Click a nudge button — verify email is sent and button shows "Sent"
- Click "Nudge all" — verify bulk emails sent
- Run
php artisan email:send-launch-announcement --dry-runon production to verify recipient list - Verify job notification emails fire when a new job is posted
+2022
additions
-295
deletions
23
files changed