Plant-O-Manager
Estate Intelligence Platform · Killara Estate, Sakleshpur, Hassan, Karnataka
About the App
Plant-O-Manager is a progressive web app (PWA) designed for managing a 105-acre multi-crop estate
with 57 blocks across 4 zones. It tracks labour, harvest, field operations, prices, disease scouting,
nursery batches and more — all accessible from a mobile phone in the field.
Crops Tracked
☕ Coffee (Arabica)
🌴 Areca Nut
🌶️ Black Pepper
Zone Layout
| Zone | Colours | Blocks | Primary Use |
| Zone A | Red, White, Purple | A1–A19 | Coffee (Arabica) |
| Zone B | Orange, Yellow, Green | B1–B17 | Mixed — Coffee, Areca |
| Zone C | Orange, Yellow | C1–C17 | Coffee |
| Zone D | Violet | D1–D4 | Pepper |
| Blue | Blue | Infrastructure | Roads, buildings |
ℹ️
The app works offline as a PWA. Use Add to Home Screen in your browser to install it on any phone or tablet.
Three roles control what each user can see and do.
| Role | Permissions |
| Owner |
Full access to all modules. Only role that can view Settings → Users and change other users' roles. |
| Manager |
Can read and write all field data (labour, harvest, operations, prices, disease, nursery). Cannot manage user roles. |
| Viewer |
Read-only access. Can view all data but cannot add, edit, or delete records. |
⚠️
Role changes take effect immediately. Only an Owner can change roles — and cannot change their own role.
First-time Setup Checklist
✅ 1. Sign in — Use the email and password provided by the estate owner.
✅ 2. Check Blocks — Go to Block Management → Block List and verify all 57 blocks are listed with correct crops and areas.
✅ 3. Add Workers — Go to Settings → Workers and add all permanent and seasonal workers with their wage details.
✅ 4. Start Daily Entry — Each morning, go to Labour & Attendance and mark attendance. Each evening, log harvest in Harvest Records.
✅ 5. Log Operations — Before starting any spray, fertiliser, or pruning activity, log it in Operations Log with Planned status.
✅ 6. Scout Regularly — Walk each zone weekly and log any disease or pest sightings in Disease & Pest.
Real-time estate overview — weather, key metrics, alerts, and market price snapshot.
What You See
| Widget | Details |
| Weather | Current conditions and 7-day forecast for Sakleshpur (12.93°N, 75.79°E) from Open-Meteo API. Includes temperature, rain, wind, humidity. |
| Field Advisory | Automatic daily advice: whether it is safe to spray, run machinery, do field work, plant, or harvest — based on live weather. |
| Key Stats | Total blocks, workers present today, pending operations, active disease alerts, low-stock items. |
| Zone Summary | Per-zone block count and total acres in a colour-coded grid. |
| Alerts | Up to 5 most recent unresolved system alerts (weather, disease, stock, operations). |
| Market Prices | Latest price per commodity with 30-day trend arrow and % change. |
ℹ️
The Dashboard is read-only. All data refreshes every time you navigate to it. Weather data comes directly from the Open-Meteo public API — no API key needed.
Record daily attendance, compute wages, and track payment status for all workers.
📋 Daily Entry
📅 History
💰 Pay Summary
Daily Entry — How It Works
Each day, open Daily Entry, select the date (default = today), and tap each worker card to cycle their status.
The app auto-calculates wages based on the worker's rate and presence.
| Field | Type | Notes |
| Status | Toggle button | Cycles: Present → Half Day → Absent |
| Block | Dropdown | Which block the worker was in (optional) |
| Activity | Dropdown | Harvesting, Weeding, Pruning, Spraying, Fertilising, Irrigation, Planting, Transport, General |
| Kg Cherry | Number | Only shown for piece-rate workers; enter kg harvested that day |
| Rate ₹/kg | Number | Default from worker profile; can be overridden per day |
| Pay Preview | Calculated | Live: Day Rate × fraction + Piece Rate × kg |
Pay Calculation Logic
| Worker Type | Formula |
| Day Rate only | day_rate × days_fraction |
| Piece Rate only | piece_rate × kg_cherry |
| Both | (day_rate × days_fraction) + (piece_rate × kg_cherry) |
Days fraction: Present = 1.0 · Half Day = 0.5 · Absent = 0.0
Pay Summary Tab
Shows unpaid wages per worker across all dates. Tap Mark Paid to mark all unpaid attendance records for that worker as paid. This also creates/updates a payroll_monthly record for the current month.
⚠️
You cannot navigate to a future date. The ▶ (next) button is disabled when you are on today's date.
Log daily per-block yield by crop type and track seasonal totals.
🍒 Daily Entry
📅 History
📊 Summary
Daily Entry Fields
| Field | Notes |
| Date | Navigate with ◀ / ▶ buttons. Cannot go forward past today. |
| Crop Type | Per block: ☕ Coffee Cherry, 🌶️ Pepper, 🌴 Areca. Defaults to block's primary crop. |
| Quantity (kg) | Enter kg for each harvested block. Leave blank or zero to skip that block. |
✅
Only blocks with quantity > 0 are saved. You can safely leave all unharvested blocks empty.
Season Calculation
Coffee seasons run October–March. The app automatically assigns the correct season label:
| Harvest Date | Season |
| Oct 2024 – Mar 2025 | 2024-25 |
| Oct 2025 – Mar 2026 | 2025-26 |
| Apr–Sep (off season) | Uses previous Oct start year |
Summary Tab
Shows current season totals by crop (total kg and estimated % share), plus a bar chart of the top-producing blocks. Top 20 blocks are shown; remaining are indicated as a count.
Plan, track, and cost field activities like spraying, pruning, fertilising, and irrigation.
📋 Operations Log
➕ Add New
Form Fields
| Field | Required | Options |
| Operation Type | * | ✂️ Pruning, 💧 Spraying, 🌱 Fertilising, 🚿 Irrigation, 🌿 Weeding, 🪴 Planting |
| Scope | * | 🏡 Estate-wide or 🗺️ Specific Block |
| Block | If scope=block | Any of the 57 blocks |
| Planned Date | — | Date picker (Pikaday) |
| Completed Date | — | Date picker (Pikaday) |
| Status | * | Pending In Progress Completed Cancelled |
| Assigned To | — | Any active worker |
| Notes | — | Free text — materials used, observations |
| Cost Amount ₹ | — | Number |
| Cost Notes | — | e.g. "Bordeaux mix 5kg" |
ℹ️
The Total Cost banner on the log view sums only Completed operations. Planned and In Progress costs are not included.
View and manage all 57 estate blocks — crops, areas, varieties, and season yields.
🗺️ Zone Map
📋 Block List
➕ Add Block
Zone Map
Coloured tile grid showing all blocks grouped by zone. A white dot on a tile means the block
has at least one harvest record this season. Tap a tile to expand the detail panel showing
crop, area, season yield, last harvest, last operation, and variety.
The Killara Estate Reference Map (collapsible panel) shows the actual physical
layout of the estate for reference while using the app in the field.
Block Form Fields
| Field | Required | Notes |
| Block Code | * | Uppercase, e.g. A1, B12, D4 |
| Zone | * | A, B, C, D, or Blue |
| Zone Colour | * | A-red, A-white, A-purple, B-orange, B-yellow, B-green, C-orange, C-yellow, D-violet, blue |
| Primary Crop | — | ☕ coffee, 🌴 areca, 🌶️ pepper, 🌿 mixed |
| Area (acres) | — | Decimal, e.g. 1.75 |
| Coffee Variety | — | SLN 15, 5355, PBG2, CxR, S.795, Cauvery |
| Shade Trees | — | e.g. "Silver oak, Erythrina" |
| Trial Block | — | Checkbox — marks block as a trial variety plot |
| Notes | — | Free text |
Manually record crop prices from local markets and Coffee Board, and track 30-day trends.
💹 Prices Dashboard
📈 History
➕ Add Entry
Add Entry Fields
| Field | Required | Options |
| Commodity | * | 🍒 Coffee Cherry, ☕ Parchment, 🌶️ Pepper, 🌴 Areca |
| Grade | — | Cherry: Cherry/Red Cherry · Parchment: AB/PB/C/BL/FAQ · Pepper: Ungarbled/Garbled/Pinnacle · Areca: Rashi/Chali/Bette |
| Price ₹ | * | Number (per kg or per quintal) |
| Unit | * | per kg, per quintal (100 kg) |
| Market | — | Sakleshpur, Hassan, Mysore, Mangalore, Chikmagalur, Coffee Board, Other |
| Price Date | * | Date picker, max = today |
| Price Type | — | Market Rate or Actual Received |
| Notes | — | Free text |
Trend Calculation
The dashboard compares the latest entry for each commodity against the most recent entry from 30 days ago or earlier.
Trend arrows: ▲ = price increased, ▼ = decreased, → = unchanged (±1%).
ℹ️
Live price feeds from government APIs (data.gov.in, Coffee Board) are blocked by CORS for browser apps. Prices must be entered manually. Reference links to Coffee Board, Agmarknet, and Spices Board are provided on the dashboard.
Scout log with block-level heat map — track diseases and pests, record treatments, and monitor resolution.
🦠 Scout Log
🗺️ Block Map
➕ Log Sighting
Diseases & Pests Tracked
| Name | Type | Crop |
| Coffee Berry Disease (CBD) | Disease | Coffee |
| Coffee Leaf Rust (CLR) | Disease | Coffee |
| Black Rot | Disease | Coffee |
| Pink Disease | Disease | Coffee |
| Anthracnose | Disease | Mixed |
| White Stem Borer | Pest | Coffee |
| Coffee Berry Borer | Pest | Coffee |
| Mealybug | Pest | Mixed |
| Scale Insect | Pest | Mixed |
| Leaf Miner | Pest | Coffee |
| Top Rot / Bud Rot / Yellow Leaf Disease | Disease | Areca |
| Spindle Bug | Pest | Areca |
| Pollu Beetle | Pest | Pepper |
| Quick Wilt / Slow Wilt | Disease | Pepper |
Sighting Form Fields
| Field | Required | Notes |
| Disease / Pest | * | 18 options; auto-fills Type |
| Type | * | 🦠 Disease or 🐛 Pest — auto-filled from selection |
| Severity | * | 🟢 Low 🟡 Medium 🔴 High |
| Scope | * | Estate-wide or Specific Block |
| Block | If scope=block | Any of 57 blocks |
| Observed Date | * | Date picker |
| Affected Area | — | Acres |
| Status | * | Active Treated Resolved |
| Treatment Applied | — | Copper Oxychloride, Bordeaux, Carbendazim, Propiconazole, Chlorpyrifos, Imidacloprid, Neem Oil, Trichoderma, Beauveria, Manual Removal, Other |
| Treatment Date | — | Date picker |
| Treatment Cost ₹ | — | Number |
| Treatment Notes | — | e.g. "Blitox 3g/L, 2 rounds" |
Block Map Heat Map
Each block tile is coloured by the worst active severity across all non-resolved sightings in that block.
Resolved sightings are excluded. Tap any block to see a panel listing all active issues in that block.
High
Medium
Low
Clean
Track seedling batches from sowing through germination, hardening, and transplanting.
🌱 Batches
📊 Summary
➕ New Batch
Batch Form Fields
| Field | Required | Notes |
| Variety | * | SLN 15, S.795, 5355, PBG2, CxR, Cauvery · Mangala, Sumangala, Sreemangala · Panniyur 1 · Other |
| Batch Code | — | Your own reference, e.g. SLN-2025-01 |
| Sowing Date | — | Date picker |
| Qty Sown | — | Integer count of seeds/seedlings sown |
| Bed Status | — | 🌱 Germinated → ☀️ Hardening → ✅ Ready |
| Batch Status | * | Growing Ready Transplanted Disposed |
| Mortality Count | — | Number of seedlings that died |
| Expected Ready Date | — | Date picker — app shows countdown |
| Destination Block | — | Target block for transplanting |
| Transplant Date | — | Actual date transplanted |
| Input Cost ₹ | — | Total cost: polybags + media + fertiliser |
| Cost Notes | — | e.g. "Polybags ₹200, coco peat ₹500" |
Mortality Rate Colouring
| Mortality % | Colour | Meaning |
| < 10% | Green | Normal / acceptable |
| 10–20% | Orange | Monitor closely |
| > 20% | Red | Investigate — disease, media, watering issue |
Summary Tab Alerts
The Summary tab shows two automatic alerts:
Overdue (red) — batches whose Expected Ready Date has passed but are still in Growing or Ready status.
Ready soon (blue) — batches becoming ready within the next 30 days.
Worker profiles, payroll computation, and user role management (owner only).
👷 Workers
💰 Payroll
👥 Users (Owner only)
Worker Form — All Fields
| Section | Field | Notes |
| Basic | Full Name * | Text |
| Designation | Estate Manager, Field Supervisor, Plucking Watcher, Spray Operator, Irrigation Operator, Pruning Specialist, General Labour, Driver, Watchman, Cook, Nursery Worker, Electrician |
| Worker Type * | Permanent, Seasonal, Contractor |
| Wage Structure * | Daily Wage or Monthly Salary |
| Day Rate ₹/day | Shown if Daily Wage + Day Rate or Both |
| Piece Rate ₹/kg | Shown if Daily Wage + Piece Rate or Both |
| Monthly Salary ₹ | Shown if Monthly Salary selected |
| Statutory | PF Applicable | Employee 12% + Employer 13%, capped at ₹15,000 basic |
| ESI Applicable | Employee 0.75% + Employer 3.25% — only if gross ≤ ₹21,000/month |
| PF Account No. | Text |
| ESI Card No. | Text |
| IDs | Aadhaar Number | Max 14 chars |
| Bank Name / Account / IFSC | IFSC = 11 chars, auto-uppercase |
| Emergency Contact / Phone | Text / Tel |
Payroll Tab
Select the month. The app reads all labour_attendance records for that month and computes each worker's payroll:
| Line Item | Formula |
| Gross (monthly worker) | monthly_wage |
| Gross (daily worker) | Σ total_pay from attendance, or day_rate × days + piece_rate × kg |
| PF Deduction (employee) | 12% × min(gross, ₹15,000) |
| ESI Deduction (employee) | 0.75% × gross (if gross ≤ ₹21,000) |
| Net Payable | gross − pf_emp − esi_emp |
| Employer Cost | gross + (13% × min(gross, ₹15,000)) + (3.25% × gross) |
Supabase (PostgreSQL) tables and their key columns.
| Table | Key Columns | Used By |
blocks | id, block_code, zone, zone_colour, area_acres, primary_crop, coffee_variety, is_trial_block | Block Management, Harvest, Labour, Operations, Disease, Nursery |
workers | id, name, worker_type, wage_type, payment_type, day_rate, piece_rate, monthly_wage, pf_applicable, esi_applicable, is_active | Settings, Labour, Operations |
labour_attendance | worker_id, work_date, present, days_fraction, activity, kg_cherry, piece_rate_used, total_pay, paid | Labour, Settings Payroll |
harvest_records | block_id, harvest_date, season, crop, quantity_kg | Harvest, Dashboard, Block Management |
operations | block_id, operation_type, planned_date, completed_date, status, assigned_to, cost_amount, cost_notes | Operations Log, Dashboard |
disease_pest_log | block_id, observed_date, type, name, severity, status, treatment, treatment_date, cost_amount | Disease & Pest |
nursery_batches | variety, batch_code, sowing_date, quantity_sown, bed_status, status, quantity_mortality, expected_ready, destination_block, input_cost | Nursery Management |
market_prices | crop, grade, price, unit, market, price_date, source | Market Prices, Dashboard |
alerts | message, severity, category, block_id, resolved | Dashboard |
user_profiles | user_id, display_name, role (owner|manager|viewer) | Settings → Users, Auth |
soil_reports | block_id, report_date, ph, nitrogen, phosphorus, potassium, organic_carbon | Soil & Leaf (Phase 2) |
nursery_batches | variety, sowing_date, status, quantity_sown, quantity_mortality | Nursery |
Indian statutory deductions as implemented in the payroll module.
PF — Provident Fund
| Component | Rate | Cap |
| Employee contribution | 12% of basic | Basic capped at ₹15,000 |
| Employer contribution | 13% of basic | Basic capped at ₹15,000 |
Max employee PF deduction = ₹1,800/month. Max employer PF cost = ₹1,950/month.
ESI — Employee State Insurance
| Component | Rate | Ceiling |
| Employee contribution | 0.75% of gross | Only if gross ≤ ₹21,000/month |
| Employer contribution | 3.25% of gross | Only if gross ≤ ₹21,000/month |
Workers earning above ₹21,000/month are not covered under ESI.
⚠️
PF and ESI are only applied to workers where the PF Applicable / ESI Applicable checkbox is ticked in their worker profile.
Plant-O-Manager is currently under active development. This documentation will be fully rewritten and finalised once all modules are complete.
🚧
Development build — Some features described here may change before final release. Full documentation will be published at end of development.
App Info
| App | Plant-O-Manager |
| Estate | Killara Estate, Sakleshpur, Karnataka |
| Platform | Progressive Web App (Cloudflare Pages) |
| Backend | Supabase (PostgreSQL) |
| Docs status | Draft — last updated April 2026 |
| Development phase | Phase 2 (active) |
Modules Status
| Module | Status |
| Dashboard | Complete |
| Labour & Attendance | Complete |
| Harvest Records | Complete |
| Operations Log | Complete |
| Block Management | Complete |
| Market Prices | Complete |
| Disease & Pest | Complete |
| Nursery Management | Complete |
| Supplier & Buyer Directory | Planned |
| Soil & Leaf Reports | Planned |
| Offline-First Mode | Planned |
| Reports & Analytics | Partial |
| Settings | Partial |