๐ Welcome to TradeKhata
Your complete digital office for small-trade contractors โ Painting, Tiles, Plumbing & Rajmistri (Mason) โ from quotation to invoice, labor to payment, all in one place.
TradeKhata replaces the notebook that every small-trade contractor carries. Everything you calculate, track, and record daily โ material quantities, quotations, attendance, advances, client payments, invoices โ is now digital, fast, and organized.
| Feature | What It Does |
|---|---|
| Smart Estimator | Trade-aware calculator โ enter area/items & rates, get a complete material & cost breakdown instantly, in the format that matches the job's trade |
| Clients & Jobs | Organize all your work by client and job, track status at a glance |
| My Trades | Enable Painting, Tiles, Plumbing, and/or Rajmistri on your account (plan-limited) |
| Materials Stock | Track trade-specific inventory (paint, tiles, pipes, cement...); issue to jobs; get low-stock alerts |
| Labor Rates | Save your own per-category labor rates per trade; auto-fill into quotations |
| Attendance | Mark daily field-worker attendance; wages are auto-calculated |
| Labor Advances | Record cash advances; see each worker's wage vs. advance balance |
| Milestone Payments | Record advance, mid-job & final payments from clients |
| GST Invoice | Auto-numbered professional tax invoices with CGST & SGST |
| P&L Reports | See actual profit or loss for every job, plus a trade-wise monthly breakdown |
| WhatsApp Share | Send quotations & payment reminders directly to clients |
| Trade | Field Worker Label | Estimator Style |
|---|---|---|
| ๐จ Painting | Painter | Area-based โ paint/primer/putty litres from wall area & coats |
| ๐ฒ Tiles | Tiler | Box-based tile purchase (with wastage), adhesive & grout, optional skirting, itemized labor per work category |
| ๐ง Plumbing | Plumber | Fully itemized materials, plus labor billed per connection point |
| ๐งฑ Rajmistri (Mason) | Mason | Plastering / Brickwork / PCC (each volume & area based) or Maintenance (itemized) |
| Role | Who | Access Level |
|---|---|---|
| Owner | The contractor (you) | Full access to everything |
| Supervisor | Site supervisor | Jobs, attendance, materials |
| Accountant | Bookkeeper | Payments, invoices, reports |
| Field Worker | Painter / Tiler / Plumber / Mason on your team | Mobile view โ own attendance & advance balance only. The label shown depends on your job's trade; the underlying role is the same for all trades. |
| Platform Admin | SaaS operator | Manages all contractor accounts & which trades are available |
๐ Login & Signup
How to create an account and log in.
Go to /signup
- Full NameYour name โ appears on all quotations and invoices.
- Email AddressThis becomes your login ID. Cannot be changed later.
- Phone(Optional) Your contact number.
- Business Namee.g. "Sharma Contractors" โ shown on quotations and invoices.
- PasswordMinimum 8 characters.
- Click "Create Account"A 30-day free trial starts immediately โ no card required. The Painting trade is enabled automatically; add more trades anytime from My Trades.
| Who | URL | Credentials |
|---|---|---|
| Owner / Contractor | /login | Email + Password |
| Supervisor / Accountant | /login | Email + Password (created by owner in Settings) |
| Field Worker (Painter/Tiler/Plumber/Mason) | /painter-login | Phone number + one-time code shown on screen (no SMS needed) |
| Super Admin | /platform/login | Platform admin credentials |
- On the login page, click "Forgot password?"
- Enter your registered email address and submit.
- A password reset link will be sent to your email.
- Click the link and set a new password.
๐ Dashboard
The first screen after login โ a summary of everything at a glance.
| Section | Description |
|---|---|
| Trial Banner | If on a free trial, shows how many days are remaining |
| Clients | Total number of clients added |
| Active Jobs | Jobs with status: Quoted, Confirmed, or In Progress |
| Completed Jobs | Jobs marked as Completed |
| Total Quoted Value | Sum of all quotation totals |
| Recent Jobs | Your last 6 jobs with status and quoted amount |
๐ฅ Clients
/clients โ Manage all your clients in one place.
Go to /clients/create or click "Add Client" from the Clients page.
| Field | Description | Required? |
|---|---|---|
| Name | Client's full name | Yes |
| Phone | WhatsApp number โ needed for sharing quotations & reminders | Recommended |
| Needed for emailing invoices & quotations | Recommended | |
| Address | Home or site address | No |
| Notes | Any additional notes about this client | No |
Use the search box on the Clients list page to find a client by name or phone number.
Click any client's name to open their detail page. You can see all their contact info, a list of all jobs for that client, and a "+ Job" button to create a new job directly for them.
From the client detail page, click "Edit" to update any information. To delete, use the delete option โ note that a client cannot be deleted if they have jobs attached to them.
๐๏ธ Jobs
/jobs โ Every painting project is tracked as a Job.
| Field | Description |
|---|---|
| Trade * | Painting / Tiles / Plumbing / Rajmistri โ only shown as a dropdown if you have more than one trade enabled. With one trade, it's set automatically. |
| Client * | Select an existing client from the dropdown. If not listed, add them first. |
| Job Title * | e.g. "Mr. Rahul's 2BHK Interior Painting" or "Flat 3B Bathroom Tiling" |
| Site Address | The physical location where work will happen |
| Supervisor | Assign a supervisor from your staff (optional) |
| Start Date / End Date | Planned schedule for the job |
| Status | Initial status โ usually "Quoted" |
| Status | Meaning | When to Use |
|---|---|---|
| Quoted | Quotation sent to client | When you create the job |
| Confirmed | Client has agreed | After client says yes |
| In Progress | Work is underway | When work starts on site |
| Completed | Work is done | After final handover |
| Cancelled | Job was cancelled | If the job does not proceed |
Click any job to open its detail page. Everything related to that job is here:
| Section | What You Can Do |
|---|---|
| Job Details | See all info, quoted amount, balance due at a glance |
| Job Photos | Upload before/during/after site photos |
| Quotations | All quotations for this job; create a new one |
| Materials Issued | See what materials have been issued; issue more |
| Quick Buttons | Smart Estimator ยท Payments ยท Attendance ยท Invoice ยท P&L |
At the top of the Jobs list page, click any status button โ All, Quoted, Confirmed, In Progress, Completed, Cancelled โ to filter the list instantly.
๐งฎ Smart Estimator Core Feature
TradeKhata's signature feature โ enter a few numbers and get a complete, professional quotation in seconds. The form shown automatically matches the job's trade.
๐จ Painting
- Wall Area (sq.ft)Enter the total paintable wall area. Example: 950
- Number of CoatsUsually 2. Each coat multiplies paint consumption.
- Paint DetailsBrand name (optional for display), coverage in sq.ft per litre, and price per litre.
- Primer (tick if needed)Enter coverage (sq.ft/litre) and price per litre.
- Wall Putty (tick if needed)Enter coverage (sq.ft/kg) and price per kg.
- Labor Rate (โน/sq.ft)Your charge per square foot for labor.
- Wastage Buffer (%)Default 10% โ adds a safety margin to material quantities to account for spills and uneven surfaces.
- Click "Calculate Quotation"The system calculates everything instantly and saves the quotation.
Paint = (800ร2รท120) ร 1.10 = 14.67 L โ โน2,640
Labor = 800 ร 12 = โน9,600
Total Quotation = โน12,240
| Product Type | Typical Coverage |
|---|---|
| Interior Emulsion | 100โ130 sq.ft per litre |
| Exterior Emulsion | 80โ100 sq.ft per litre |
| Distemper | 120โ150 sq.ft per litre |
| Primer (White/Grey) | 130โ160 sq.ft per litre |
| Wall Putty | 15โ22 sq.ft per kg |
๐ฒ Tiles
- Tile Area (sq.ft)Total area to be tiled.
- Box Coverage & PriceSq.ft covered per box, and price per box โ tiles are always purchased in whole boxes, rounded up.
- Wastage (%)Default 8% โ covers cutting and breakage.
- Batch / Lot No.Optional โ record the tile batch/lot number so you (and future re-orders) can match the exact shade.
- Adhesive & GroutCoverage rates and prices โ defaults are pre-filled but editable.
- Skirting (tick if needed)Running feet and price per running ft.
- Labor โ per work categoryAdd one line per type of work (Floor laying, Wall dado, Skirting, Stair steps, Old tile removal, etc). Pick a saved category from Labor Rates to auto-fill the rate, or type a custom line.
Boxes needed = ceil(200 ร 1.08 รท 17.5) = 13 boxes โ โน12,350
Plus adhesive, grout, and itemized labor lines are added on top.
๐ง Plumbing
Plumbing work doesn't fit an "area" model โ it's itemized instead.
- Add Material LinesOne row per item โ pipe, fitting, valve, tap, etc. โ with quantity, unit, and rate. Add as many rows as needed.
- Number of PointsCount of water inlet/outlet connections in the job.
- Rate per PointYour labor charge per connection point.
8 points ร โน450/point = โน3,600 labor
Total Quotation = โน5,900
๐งฑ Rajmistri (Mason)
Rajmistri covers several different kinds of work, each with its own calculation. Pick the Work Type dropdown first โ the matching fields appear below it.
| Work Type | Model | Key Inputs |
|---|---|---|
| Plastering | Area-based | Area, thickness (mm), cement:sand ratio, wastage% |
| Brickwork | Wall volume | Length, height, thickness of wall, bricks/cft, cement & sand ratios |
| PCC (concrete flooring base) | Volume | Length, width, thickness (in), mix ratio (e.g. 1:2:4) |
| Maintenance / Repair | Itemized | Free-form material lines + labor days or a flat charge โ same style as Plumbing |
๐ Quotations โ Share, Print & Email
After generating a quotation, send it to your client in multiple ways.
After submitting the Smart Estimator, you land on the quotation result page (/quotations/{id}). You'll see the full materials breakdown, cost summary, and action buttons.
- On the quotation page, click "Print / PDF".
- A clean, professional print layout opens โ company name, client details, materials table, and total.
- Press Ctrl+P (Windows) or Cmd+P (Mac), or click the "Print / Save as PDF" button.
- Choose your printer, or set destination to "Save as PDF" to create a PDF file.
- On the quotation page, click "Share via WhatsApp".
- The system sends a formatted WhatsApp message to the client's phone number with job title, area, and total cost.
- In dev/mock mode (no API key set), messages are logged to storage/logs/whatsapp.log. See WhatsApp setup to go live.
- Click "Email to Client" on the quotation page.
- The system sends a professional HTML email with the full quotation breakdown to the client's email address.
- In dev/mock mode, emails are logged to storage/logs/email.log. See Email setup to go live.
You can run the Smart Estimator multiple times for the same job โ useful if the client wants to compare options (e.g. different paint brands, or tile sizes). All quotations are listed on the Job detail page. The most recent one sets the job's "Quoted Amount".
๐ฆ Materials Stock Phase 2
/materials โ Track your trade-specific inventory. Each item belongs to one trade, so a Painting job never sees Tile adhesive and vice versa.
| Field | Description |
|---|---|
| Trade | Which trade this item belongs to โ only shown as a dropdown if you have more than one trade enabled |
| Item Name | e.g. "Asian Paints Tractor White", "600ร600 Vitrified Tile", "CPVC Pipe 3/4"" |
| Unit | Litre / Kilogram / Piece / Bag / Box / Sq.ft / Running ft |
| Opening Quantity | How much you currently have in stock |
| Low Stock Alert Threshold | When stock falls to or below this level, the row turns red |
| Batch / Lot No. Tiles | Optional โ record the tile batch/lot so you can match the exact shade on repeat orders |
On the Materials Stock page, any item whose quantity is at or below the threshold is highlighted in red with a "Low" badge. This is your signal to restock before starting the next job.
- Open a Job detail page and find the "Materials Issued" section.
- Click "Issue Material" (the yellow button).
- Select the material from the dropdown โ only items matching this job's trade are shown โ and enter the quantity to issue.
- Submit โ the stock quantity decreases automatically.
๐ Attendance Phase 2
/jobs/{id}/attendance โ Mark daily field-worker attendance and auto-calculate wages.
- From the Job detail page, click "Attendance".
- Select the date โ today's date is pre-filled.
- For each worker, choose a status:
Present โ full daily wage
Half Day โ half daily wage
Absent โ no wage - Click "Save Attendance" โ all workers are saved in one go.
Present = Daily Wage ร 1.0 | Half Day = Daily Wage ร 0.5 | Absent = โน0
The right side of the attendance page shows all past records for this job โ date, worker name, status, and wage. To correct an entry, click the ๐๏ธ button to delete it and re-mark it.
If no one appears on the attendance page, you need to add them first. Go to Settings โ Staff Logins and add a staff member with the field-worker role. The page label shown (Painter/Tiler/Plumber/Mason) matches this job's trade.
๐ธ Labor Advances Phase 2
/advances โ Record cash advances given to field workers and track balances.
| Field | Description |
|---|---|
| Worker * | Which field worker received the advance |
| Amount * | How much cash was given (โน) |
| Date | When the advance was given (defaults to today) |
| Link to Job | Optionally link this advance to a specific job |
| Notes | Any additional notes |
At the top of the Advances page, a summary table shows each worker's running balance:
| Column | Meaning |
|---|---|
| Total Wages Earned | All wages earned through attendance (Present + Half Day) |
| Total Advances Given | Total cash advances recorded |
| Net Balance (+) payable | Wages > Advances โ you still owe this amount to the worker |
| Net Balance (-) advance pending | Advances > Wages โ the worker has taken more than earned; this is deducted at settlement |
๐ท Job Photos Phase 2
Document your work with before, during, and after photos โ proof of quality for every job.
- Open a Job detail page and find the "Job Photos" section on the left panel.
- Select the stage: Before / During / After
- Click the file input and select one or more photos (JPG, PNG, WebP supported; max 5MB each).
- Click "Upload" โ photos appear immediately in the gallery below.
Photos are stored securely outside the public web folder. They can only be viewed by logged-in users โ not accessible via a direct URL by outsiders.
Hover over any photo in the gallery and click the โ red button in the top-right corner to delete it permanently.
๐ฐ Milestone Payments Phase 3
/jobs/{id}/payments โ Track every payment received from a client.
At the top of the Payments page, three tiles show the financial position of the job:
| Tile | Meaning |
|---|---|
| Quoted Amount | The total from the job's latest quotation |
| Total Received green | Sum of all payments recorded so far |
| Balance Due red | Quoted Amount minus Total Received โ what's still owed |
| Field | Description |
|---|---|
| Milestone | Advance (before work) / Mid-Job / Final Payment / Other |
| Amount (โน) * | How much was received |
| Mode | Cash / UPI / Bank Transfer / Other |
| UPI Reference | Transaction ID from the UPI app (appears when UPI/Bank is selected) |
| Date Received | When the payment was received (defaults to today) |
| Notes | Any remarks |
If there's a balance due and the client has a phone number, the "Send Reminder" button appears. Tap it to send the client a WhatsApp message showing their outstanding balance.
๐งพ GST Invoice Phase 3
Generate professional, auto-numbered GST tax invoices with one click.
- Set up GST first โ go to Settings โ GST & Invoice and configure your GSTIN, rates, and invoice prefix.
- Open the job and click the "Invoice" button, or go to /jobs/{id}/invoice.
- The first time you visit, an invoice is automatically generated โ invoice number, CGST, SGST, and total are all calculated.
- A professional print layout opens. Click "Print / Save as PDF".
On the invoice page, click "Email Invoice" to send the invoice to the client's email address. The client must have an email saved. In mock mode, the email is logged to storage/logs/email.log.
Invoices are numbered automatically using the format you set in GST Settings:
You can change the prefix (e.g. to your initials like "SP") at any time. The sequence number increments with each new invoice.
๐ P&L Reports
/reports โ Know the profit or loss on every job.
The overview page shows all your jobs in one table with:
| Column | Meaning |
|---|---|
| Received | Total payments collected from the client |
| Material | Material cost from the quotation |
| Labor | Actual wages paid via attendance records |
| Profit / Loss +โ | Received minus all costs |
Total rows at the bottom give you an all-business summary.
If you have more than one trade enabled, the Overview report also shows a small table breaking down jobs created and revenue received by trade for the current month โ useful for seeing which trade is actually paying the bills.
Click "Detail" on any job row, or click "P&L" from the Job detail page (/reports/jobs/{id}).
The detail page shows a full breakdown:
- Every payment received โ date, milestone type, amount
- Material cost from the quotation
- Per-painter wage breakdown โ days present, half days, total earned
- All advances recorded for this job
- Net Profit (green) or Net Loss (red)
| Issue | Reason |
|---|---|
| Material cost shows โน0 | No quotation created for this job yet |
| Labor wages show โน0 | No attendance records for this job |
| Revenue shows โน0 | No payments recorded yet |
๐ค Staff Logins
/settings/staff โ Add supervisors, accountants, and field workers to your account.
| Role | Needs Email + Password? | What They Can Access |
|---|---|---|
| Supervisor | Yes | Jobs, attendance, materials |
| Accountant | Yes | Payments, invoices, reports |
| Field Worker | No โ phone + on-screen OTP only | Mobile view only โ their own attendance & advance balance |
When adding a Field Worker:
- The email/password fields are hidden automatically
- Enter a Daily Wage (โน) โ used for auto-calculating wages in attendance
- The role is labeled "Painter" in the dropdown, but this same role is used for Tiler, Plumber, and Mason too โ the label shown elsewhere in the app follows whichever trade the worker is assigned jobs in
- Workers log in at /painter-login with their phone number and an on-screen one-time code โ see Login & Signup for details
Your subscription plan limits how many staff logins you can have active at once:
| Plan | Staff Login Limit | Trade Limit |
|---|---|---|
| Solo | 1 staff login | 1 trade |
| Team | 5 staff logins | 2 trades |
| Crew | Unlimited | Unlimited |
If you hit either limit, upgrade your plan from the Billing page, or deactivate an unused login first. See My Trades for how the trade limit works.
On the Staff Logins page, click "Deactivate" to block a staff member from logging in (they are not deleted โ all their records are preserved). Click "Reactivate" to restore access.
๐งฐ My Trades
/settings/trades โ Enable and manage which trades your account can create jobs for.
This page shows every trade you currently have enabled. Painting is enabled automatically when you sign up. Each enabled trade shows the label used for its field workers (Painter/Tiler/Plumber/Mason).
- Go to My Trades in the sidebar.
- Pick a trade from the "Enable Another Trade" dropdown.
- Click "Enable Trade" โ it's immediately available when creating a new job.
Solo allows 1 trade, Team allows 2, Crew is unlimited. If you're at your limit, the page shows an upgrade prompt instead of the dropdown.
Not every trade is available to enable yourself right away. New trades sometimes launch in a limited early-access phase while material-quantity defaults are being validated โ Rajmistri is currently in this state. If a trade you want isn't in your dropdown, contact your platform administrator; they can grant it to your account directly (see Super Admin โ Trade Verticals).
You can't disable a trade you've already used โ jobs, quotations, and materials tied to it stay intact permanently, so historical data is never orphaned.
๐ท๏ธ Labor Rates
/settings/labor-rates โ Save your own default labor rates per work category, per trade.
Trades like Tiles bill labor per work category (floor laying, wall dado, skirting, stair steps...) rather than one flat rate. Instead of retyping rates on every quotation, save them once here โ the Smart Estimator's labor line picker then auto-fills the rate (still editable per quotation).
- Switch between your enabled trades using the tabs at the top.
- Edit the Label, Unit, or Default Rate for any existing category.
- Tick Remove next to a category to delete it, or add a brand-new custom category at the bottom.
- Click "Save Labor Rates".
๐๏ธ GST & Invoice Settings
/settings/gst โ Configure your GST details and invoice numbering.
| Setting | Description |
|---|---|
| GST Registered Business | Toggle ON to add CGST + SGST lines to all invoices |
| GSTIN | Your 15-character GST Identification Number |
| CGST Rate (%) | Central GST rate โ default 9% |
| SGST Rate (%) | State GST rate โ default 9% |
| State Name | Your state โ shown on the invoice for SGST reference |
| Invoice Prefix | Letters at the start of invoice numbers. e.g. "INV" โ INV-2025-0001 |
| Current Sequence | Read-only; auto-increments with each invoice generated |
โ๏ธ Business Profile
/settings/profile โ Update your business information.
| Field | Description |
|---|---|
| Your Name | Owner's name โ shown on quotations and invoices |
| Phone | Your contact number |
| Business Name | Company name shown on all documents |
| UPI ID | Your UPI address โ shown on invoices for client payments (e.g. yourname@upi) |
๐ณ Subscription & Billing
/billing โ View your plan and renew your subscription.
| Plan | Monthly | Yearly | Staff Logins | Best For |
|---|---|---|---|---|
| Solo | โน199/mo | โน1,999/yr | 1 | Solo contractor |
| Team | โน399/mo | โน3,999/yr | 5 | Small team |
| Crew | โน699/mo | โน6,999/yr | Unlimited | Larger operations |
- Go to /billing/choose-plan and select your plan and billing cycle.
- You'll see the platform's UPI ID. Make the payment from your UPI app (GPay, PhonePe, Paytm, etc.).
- Enter the UPI Transaction ID from your payment confirmation and submit.
- The platform admin will verify and confirm your payment โ your subscription activates automatically once confirmed.
| Status | Meaning | Action Needed |
|---|---|---|
| Trial | Free 30-day trial is active | None โ enjoy all features |
| Active | Paid subscription is running | None |
| Expired | Trial or subscription has ended | Choose a plan and pay |
| Suspended | Account suspended by admin | Contact platform support |
๐ฑ Field Worker Mobile View
/painter/dashboard โ A lightweight mobile interface designed for Painters, Tilers, Plumbers & Masons on site.
| Screen | URL | Contents |
|---|---|---|
| Home | /painter/dashboard | This month's attendance summary, total wages earned, total advances taken, net balance, last 10 attendance records |
| Attendance | /painter/attendance | Full attendance history filtered by month, with monthly wage total |
| Advances | /painter/advances | All advances received, total amount |
| Scenario | Displayed As | Meaning |
|---|---|---|
| Wages > Advances | +โนX payable | The owner still owes this amount to the worker |
| Advances > Wages | โโนX advance pending | The worker has taken more advance than earned; this will be recovered |
๐ฌ WhatsApp Integration
Send quotations and payment reminders directly to clients on WhatsApp.
Out of the box, no WhatsApp messages are actually sent. Instead, all messages are written to storage/logs/whatsapp.log so you can see exactly what would be sent. This is perfect for testing.
- Create a Gupshup account at gupshup.io and set up a WhatsApp Business API app.
- Verify your WhatsApp Business number inside the Gupshup dashboard.
- Copy your API key from Gupshup โ Apps.
- Update your .env file:WHATSAPP_API_KEY=your_gupshup_api_key WHATSAPP_BSP=gupshup WHATSAPP_FROM_NUMBER=919876543210
- That's it โ WhatsApp messages are now live.
| Trigger | Recipient | Message Contains |
|---|---|---|
| "Share via WhatsApp" on a quotation | Client | Job title and total cost (area line only shown for area-based trades like Painting) |
| "Send Reminder" on the Payments page | Client | Job title, outstanding balance |
| Job Confirmation (programmatic) | Client | Job title, expected start date |
Every message signs off with your business's APP_NAME setting โ no hardcoded branding.
๐ง Email (SMTP) Setup
Enable email delivery to send quotations and invoices directly to clients.
When SMTP_HOST is blank in your .env file, no emails are sent. All email content is logged to storage/logs/email.log instead.
- Enable 2-Step Verification on your Google account (required for App Passwords).
- Create an App Password: Google Account โ Security โ App Passwords โ select "Mail" โ generate & copy the 16-character password.
- Update your .env file:SMTP_HOST=smtp.gmail.com SMTP_PORT=587 SMTP_USER=youremail@gmail.com SMTP_PASS=your_16char_app_password MAIL_FROM_ADDRESS=youremail@gmail.com MAIL_FROM_NAME=Sharma Contractors
| Trigger | Recipient | Email Contains |
|---|---|---|
| "Email to Client" on a quotation | Client | Material breakdown, total cost |
| "Email Invoice" on an invoice | Client | Invoice number, GST breakdown, balance due |
| Payment reminder | Client | Outstanding balance |
๐ก๏ธ Super Admin โ Platform Management
/platform/login โ For the SaaS operator to manage all contractor accounts.
Log in at /platform/login (separate from contractor login). The dashboard shows:
- Total contractors registered
- Breakdown by subscription status (trial / active / expired)
- Pending payment confirmations count
- Trade adoption โ how many owners have each trade enabled, with a shortcut to Trade Verticals
| Action | How |
|---|---|
| View all contractors | Platform โ Contractors โ filter by trial/active/expired |
| Create a contractor | Platform โ Contractors โ Create Contractor โ sets up the account and assigns trial or plan |
| Suspend an account | Contractor detail page โ Suspend โ immediately blocks all logins |
| Reactivate an account | Contractor detail page โ Reactivate |
| View a contractor's jobs count | Contractor detail page shows client count, job count, staff count |
| Grant an early-access trade | Contractor detail page โ Trades card โ pick a trade โ "Grant" โ bypasses both the plan's trade limit and any self-service gate |
- Go to Platform โ Payments โ all pending payment submissions are listed.
- Cross-check the UPI transaction ID against your UPI app history.
- Click "Confirm" โ the contractor's subscription activates automatically for the correct period.
- If the payment is invalid, click "Reject" with a note.
Go to Platform โ Plans to:
- Create new plans with custom pricing, staff login limits, and trade limits
- Edit existing plan prices or limits
- Deactivate plans you no longer offer (existing subscribers are unaffected)
๐งฐ Trade Verticals
/platform/trades โ Manage which trades exist on the platform, and whether contractors can self-enable them.
Shows every trade with its worker label, estimator class, how many owners have it enabled, how many jobs use it, and two independent toggles:
| Toggle | Meaning When On | Meaning When Off |
|---|---|---|
| Active / Deactivate | Trade exists on the platform normally | Hidden from every job-creation and "Enable Trade" list โ existing owners keep using it, data untouched |
| Open / Gate | Any owner can self-enable it from My Trades | Only the Super Admin can grant it to a specific owner (Contractor detail page โ Trades โ Grant) |
- Go to Platform โ Owners and open the contractor's detail page.
- In the Trades card, pick the gated trade from the dropdown.
- Click "Grant" โ this bypasses both the self-service gate and the owner's plan trade limit.
The owner can immediately create jobs and quotations for that trade, without needing to upgrade their plan.
Once validated, go to Platform โ Trades and click "Open Up" on that trade's row. It immediately appears in every owner's "Enable Trade" dropdown, subject to their plan's trade limit as usual โ no code changes needed.
โ Troubleshooting
Quick solutions for the most common issues.
- Double-check your email and password โ they are case-sensitive.
- If you're a staff member, confirm the owner has not deactivated your login.
- If your subscription has expired, go to /billing to renew.
- Use "Forgot Password?" to reset your password.
- Make sure you're using the right login URL โ field workers use /painter-login (phone + on-screen code), everyone else uses /login, super admin uses /platform/login.
- File size must be under 5 MB per photo.
- Accepted formats: JPG, JPEG, PNG, GIF, WebP.
- If no photos upload at all, ask your admin to check that storage/uploads/job_photos/ has write permission (755).
- If
SMTP_HOSTis blank in .env, emails go to the log file โ this is expected in dev/mock mode. - For Gmail, you must use an App Password โ your regular Google password won't work.
- If using cPanel email, try port 465 if port 587 is blocked.
- Check that the client has an email address saved on their profile.
- Check storage/logs/email.log for error details.
- If
WHATSAPP_API_KEYis blank, messages are logged only โ expected in mock mode. - Client must have a phone number saved. Without it, the button won't appear.
- Your Gupshup WhatsApp Business number must be verified and approved.
- Check storage/logs/whatsapp.log for error details.
- Material cost = โน0 โ create a quotation for this job using the Smart Estimator.
- Labor wages = โน0 โ mark attendance for the painters working on this job.
- Revenue = โน0 โ record client payments in the Payments section.
Go to Settings โ Staff Logins and add staff with the field-worker role (labeled "Painter" in the dropdown, but works for every trade). Once added and active, they appear on all job attendance pages for jobs in the matching trade.
- You may already be at your plan's trade limit โ check Settings โ My Trades for an upgrade prompt.
- The trade may be in an early-access/gated phase (e.g. Rajmistri) โ contact your platform administrator, who can grant it directly to your account.
Invoice numbers are auto-generated sequentially based on your prefix setting. If you need to change the prefix, go to Settings โ GST & Invoice and update the Invoice Prefix field. Future invoices will use the new prefix.
Check the log files in storage/logs/ โ every error and event is recorded there.
| Log File | What It Records |
|---|---|
| email.log | All email send attempts โ success, failure, mock |
| whatsapp.log | All WhatsApp message attempts |
| password_resets.log | Password reset links (mock mode) |
Contact your platform administrator if you are unable to resolve the issue.