# eHandyHire — Feature Recommendations

Recommendations grounded in the current codebase (customer/worker/admin flows, messaging, reviews, verification, QR analytics) and browser E2E testing. Last updated: June 2026.

---

## High impact — do these next

### 1. Job lifecycle completion flow

Statuses exist (`ACCEPTED` → `IN_PROGRESS` → `COMPLETED`), but the hire-to-done path is not obvious in the UI.

- Worker: **Start job** / **Mark complete**
- Customer: **Confirm work is done** (unlocks review eligibility)
- Status timeline on job detail pages

**Why:** Closes the marketplace loop, makes reviews and messaging feel complete.

### 2. Push + SMS reminders (beyond in-app socket)

Socket notifications only work when the app is open. For blue-collar workers especially:

- SMS when a new job matches skill + service area
- SMS/push when a quote is accepted or a message arrives
- Reminder if customer has not replied to a quote in 48h

**Why:** OTP/SMS infrastructure already exists in dev — natural extension.

### 3. Saved / favorite workers

Customers often re-hire the same plumber or electrician:

- **Save worker** from profile or after completed job
- **Hire again** shortcut → pre-fill category, open create-job with `?workerId=`

**Why:** Create-job already supports hiring a named worker via query params — surface it in UX.

### 4. Job photos & before/after portfolio

API supports job images; posting flow is mostly text:

- Customer uploads **problem photos** when posting
- Worker uploads **completion photos** when marking done
- Optional: add completion photos to worker portfolio (with consent)

**Why:** Trades work is visual; photos improve quote quality and trust.

### 5. Quote comparison & “best value” helpers

When multiple workers quote, customers get a list with little guidance:

- Side-by-side compare (price, ETA, rating, verified badge)
- Sort by price / rating / response time
- Highlight **verified** and **previously hired by you**

---

## Trust & safety (fits disclaimer model)

### 6. Dispute / report flow

Users need a path when things go wrong (platform disclaims liability but should still moderate):

- **Report user** or **Report job issue** (no-show, unsafe behavior, scam)
- Admin queue in `/admin/reports` (today mostly QR analytics)
- Optional: freeze messaging or flag accounts

### 7. Stronger verification badges in search

Verification exists in admin; trust signals could be louder on worker cards:

- **ID verified**, **Address verified**, **Top rated in [city]**
- Prominent **Verified only** filter on Find Workers

### 8. Review improvements

Reviews are restricted to hired + completed jobs (implemented). Next steps:

- **Worker response** to reviews (public reply)
- **Photo reviews** (optional)
- **Would hire again** yes/no separate from star rating

---

## Growth & monetization

README already hints at payments, featured listings, and commissions.

### 9. Featured worker listings

Simple v1:

- Workers pay (or admin grants) **featured** placement in category/region for 7/30 days
- **Sponsored** badge on map and worker list
- Admin toggle in worker management

### 10. Platform fee / booking fee (lightweight)

Full escrow is heavy; lighter starts:

- Optional **booking fee** recorded on accept (PayMongo/GCash later)
- Or **lead fee** per accepted quote for workers
- Admin revenue dashboard in reports

### 11. Referral program

Strong for Mindanao word-of-mouth:

- Customer refers customer → credit or discount on next job
- Worker refers worker → priority verification or featured days
- Track via `?ref=` or QR codes (QR infrastructure already exists)

---

## Worker productivity

### 12. Smart job alerts

Workers see a long “Available Jobs” list. Improve matching:

- **Notify only** jobs in categories + service areas
- **Digest mode**: daily SMS summary of new jobs
- **Mute** categories they do not want

### 13. Quote templates & quick reply

Workers repeat similar quotes (plumbing leak, AC install, etc.):

- Save **quote templates** (price range + message)
- One-tap apply to a job
- Estimated arrival date picker on quote form

### 14. Earnings dashboard

Worker dashboard additions:

- Quotes sent / accepted / win rate
- Earnings this month (from accepted quote amounts)
- Average rating trend

---

## Customer experience

### 15. Scheduled jobs & “needed by” date

`dateNeeded` exists in schema but is not central in UI:

- Required or prominent **when do you need this?**
- Calendar picker
- Sort jobs for workers by urgency

### 16. Guest → account upgrade path

Guest posting exists — tighten the funnel:

- After OTP verify: **Create password to manage quotes**
- Email/SMS link to claim guest jobs
- Reduces drop-off before hire

### 17. Request quote from worker profile

From `/workers/[id]`: obvious **Request quote** CTA → create job with category + worker pre-selected.

---

## Admin & ops

### 18. Richer admin reports

Expand `/admin/reports` beyond QR scans:

- Jobs by region/category/status over time
- Time to first quote, time to hire
- Verification backlog aging
- Churn: workers with 0 quotes in 30 days

### 19. Moderation tools

- Suspend user/worker from admin (`UserStatus.SUSPENDED` exists in schema)
- Bulk approve/reject verifications
- Export CSV for accounting or LGU partnerships

### 20. Content / SEO pages

Region and category pages exist. Add:

- **“Plumber in Koronadal”** landing pages (SEO)
- **Price guides** (e.g. typical plumbing rates in Davao) — trust + search traffic

---

## Technical polish (quick wins)

| Item | Why |
|------|-----|
| Fix region hydration mismatch | Cleaner dev UX; avoids flicker on login |
| PWA install prompt | Workers on mid-range Android phones |
| Unread message badge consistency | Header + sidebar sync |
| Auto-create thread on hire | Implemented — optional welcome system message |

---

## Suggested roadmap

### Phase 1 (2–4 weeks)

- Job completion flow UI
- Scheduled dates (`dateNeeded`)
- Job photos in create/post flow
- Saved workers + rehire shortcut

### Phase 2 (4–8 weeks)

- SMS/push notifications
- Quote comparison UI
- Dispute/report flow
- Worker earnings dashboard

### Phase 3 (8+ weeks)

- Payments / booking fee (PayMongo, GCash, Maya)
- Featured listings
- Referral program
- SEO landing pages

### Priority flow

```
Job completion flow
    → Push/SMS alerts
    → Saved workers + rehire
    → Job photos
    → Dispute/report
    → Featured listings / fees
```

---

## What already exists (baseline)

Use this as context when prioritizing — avoid rebuilding what is done.

| Area | Status |
|------|--------|
| Customer job post, quotes, hire, disclaimer modal | Done |
| Worker profile, skills, areas, portfolio, verification | Done |
| Real-time notifications (Socket.IO) | Done |
| Messaging (job-linked threads; auto-create on quote/hire) | Done |
| Reviews (eligibility: hired + completed) | Done |
| Admin panel (users, workers, jobs, categories, verifications) | Done |
| Guest job posting + OTP | Done |
| QR marketing + analytics | Done |
| Region/category browse + map | Done |
| Payments / escrow | Not implemented |
| Push / FCM | Not implemented |
| Disputes | Not implemented |
| Featured listings | Not implemented |

---

## Recommended first build

**Job lifecycle completion flow** — smallest effort that makes reviews, messaging, and trust feel complete end-to-end.

For implementation specs, pick a focus area: **retention**, **revenue**, **trust**, or **worker supply**.
