MentorPay is a role-based React app for tracking mentor sessions, calculating payouts with tax deductions, generating PDF receipts, and viewing audit activity.
Current version uses a mock API backed by browser localStorage (no real backend/database).
| Feature | Status | Notes |
|---|---|---|
| Session Management | ✅ Live | Manual entry + date-range filtering |
| CSV Upload | UI/tab may exist; depends on CSVUpload component wiring |
|
| Automated Payouts | ✅ Live | Net payout calculation + manual adjustments + simulation |
| Tax Configuration | ✅ Live | Platform Fee, GST Rate, TDS Rate |
| Receipt Generation | ✅ Live | PDF generation; email sending is simulated |
| Audit Logs | ✅ Live | List + filters; diff viewer only when log contains oldValue/newValue |
| Test Mode | ✅ Live | Safe payout simulation mode |
| Webhooks | ✅ Live (client-side) | Sends POST to configured URLs with signature header (CORS may apply) |
| Feature | Status | Notes |
|---|---|---|
| Session Submission | ✅ Live | Saves to localStorage via createSession() |
| Live Payout Estimate | ✅ Live | Duration × Rate preview in the form |
| Mentor Dashboard | ✅ Live | Filter by date/status + export CSV/Excel + receipt download |
| Activity Logs | Uses mocked audit log data |
- Admin adds sessions via form (CSV upload optional/partial)
- Mentor submits sessions from
/mentor/sessions/new - Tracks date, type, duration, rate, payout
- Filter by date range
- Auto deductions: Platform Fee, GST, TDS
- Admin can apply manual adjustments with reasons
- Simulation supported via Test Mode
- PDF receipts generated client-side using
@react-pdf/renderer - Custom message supported
- “Send via Email” is simulated UI (no email provider configured)
- Audit log list with filters (user/date)
- “View Changes” diff only shows when log includes both
oldValueandnewValue
- Export sessions as CSV/Excel
- Configure webhooks + secret
- Webhook request includes
X-MentorPay-Signatureheader
- Path:
/admin/taxes - Configure:
- Platform Fee (%)
- GST Rate (%)
- TDS Rate (%)
sessionsauditLogs
getSessions()createSession(sessionData)updateSession(updatedSession)deleteSession(sessionId)getAuditLogs()
Reset app data:
- Clear site data in browser OR run:
localStorage.removeItem("sessions")localStorage.removeItem("auditLogs")
/Home/login/signup/forgot-password/unauthorized
/admin/sessions/admin/payouts/admin/taxes/admin/audit-logs
/mentor/dashboard/mentor/sessions/new
- Admin:
admin@example.com/demo123 - Mentor:
mentor@example.com/demo123
git clone https://github.com/ksaurabh252/MentorPay
cd MentorPay
npm install
npm run dev