Plant-O-Manager
Estate Intelligence Platform · Killara Estate, Sakleshpur, Hassan, Karnataka
What is Plant-O-Manager?
Plant-O-Manager is a mobile-first web application designed for day-to-day estate management at Killara Estate.
It covers labour attendance, harvest recording, field operations, nursery tracking, inventory, disease scouting,
soil analysis, supplier contacts, and market prices — all in one place, accessible from any device.
The app runs on Cloudflare Pages and stores data in Supabase (PostgreSQL).
It is installable as a PWA — add it to your phone's home screen for app-like access.
Estate at a Glance
| Location | Sakleshpur, Hassan District, Karnataka |
| Primary Crop | Arabica Coffee (SLN 15, S.795, 5355, PBG2, CxR, Cauvery) |
| Other Crops | Pepper, Areca |
| Zones | A (Red, White, Purple), B (Orange, Yellow, Green), C (Orange, Yellow), D (Violet), Blue |
| Season | Oct–Mar (coffee harvest year runs Oct to following Mar) |
How to Access
| Web | plantomanager.pages.dev — opens in any browser |
| Install on Android | Open in Chrome → menu (⋮) → Add to Home Screen |
| Install on iPhone | Open in Safari → Share → Add to Home Screen |
| Login | Email + password, or biometric passkey (if registered) |
Plant-O-Manager is a Progressive Web App (PWA). You can install it on your phone's home screen for full-screen, app-like access — no App Store needed.
Installing on Android (Chrome)
| Step 1 | Open plantomanager.pages.dev in Google Chrome |
| Step 2 | Tap the three-dot menu (⋮) in the top-right corner of Chrome |
| Step 3 | Tap "Add to Home screen" or "Install app" from the menu |
| Step 4 | Confirm the name and tap "Add" or "Install" |
| Result | A Plant-O-Manager icon appears on your home screen. Tap it to open the app full-screen without browser chrome. |
If you don't see "Add to Home screen", look for a banner at the bottom of Chrome saying "Add Plant-O-Manager to Home screen" and tap it.
Installing on iPhone / iPad (Safari)
| Step 1 | Open plantomanager.pages.dev in Safari (not Chrome — iOS only allows PWA install from Safari) |
| Step 2 | Tap the Share button (the box with an arrow pointing up) at the bottom of the screen |
| Step 3 | Scroll down in the Share sheet and tap "Add to Home Screen" |
| Step 4 | Edit the name if desired, then tap "Add" in the top-right corner |
| Result | A Plant-O-Manager icon appears on your home screen. Opens full-screen without Safari navigation bars. |
On iPhone, the app must be installed from Safari. Installing from Chrome or other browsers on iOS will open as a regular bookmark, not a full-screen PWA.
Offline Mode — What Works Without Internet
When there is no internet connection, an amber banner appears at the top of the app: "⚠️ You are offline — data shown may be stale".
The app continues to function in read-only mode using cached data.
| App Shell | All pages, navigation, and UI load instantly from cache — the app opens even with no signal |
| Cached Data | The last data fetched while online is displayed — you can browse blocks, view recent records, and read all modules |
| Offline Banner | Amber strip below the top header: "⚠️ You are offline — data shown may be stale" |
| Banner goes away | Automatically disappears when internet is restored — no page reload needed |
Offline Mode — What Is Blocked
All actions that write to the database are blocked while offline. Attempting any of the following shows a toast: "You are offline — changes cannot be saved."
| Blocked Action | Affected Modules |
| Save / Add new record | All modules (Labour, Harvest, Operations, Blocks, Prices, Disease, Nursery, Inventory, Suppliers, Soil) |
| Edit / Update existing record | All modules |
| Delete record | All modules |
| Mark attendance / close payroll | Labour & Attendance |
| Log harvest batch | Harvest Records |
| Change operation status | Operations Log |
Data entered while offline is not queued — there is no sync-later mechanism. Wait until you are back online before saving any records.
Cache & Update Behaviour
| First visit | Service worker installs and caches the app shell (HTML, CSS, JS) in the background |
| Subsequent visits | App loads from cache instantly; network used to fetch fresh data from Supabase |
| App update | When a new version is deployed, a toast appears: "App updated — reload to get the latest version." Reload to activate. |
| Supabase requests | Never intercepted by the service worker — all database reads and writes go directly to the network |
Three roles control what each user can see and do in the app.
| Role | Permissions |
| Owner | Full access — all modules, Settings → Users tab, change any user's role, delete records |
| Manager | Full access to all modules — add, edit, delete — except cannot manage user roles |
| Viewer | Read-only access — can view all data but cannot add, edit, or delete anything |
Roles are assigned in Settings → Users (Owner only). A new user who signs up appears with no role until an Owner assigns one.
Follow these steps when setting up the app for the first time.
Initial Setup Order
| Step 1 | Add Blocks — go to Blocks, add each block with its code, zone, crop, and area |
| Step 2 | Add Workers — go to Settings → Workers, add each worker with their wage structure |
| Step 3 | Add Inventory Items — go to Inventory, add your fertilisers, pesticides, and tools |
| Step 4 | Add Suppliers & Buyers — go to Suppliers, add your regular contacts |
| Step 5 | Start Daily Use — Labour (attendance), Harvest (yields), Operations (field work) |
Blocks and Workers must be added first — they are referenced by Labour, Harvest, Operations, Nursery, and Disease modules.
The home screen — a real-time summary of estate activity, weather, alerts, and market prices.
Alert Banner
If there are active disease/pest alerts, pending operations, or low-stock items, a red alert banner appears at the top of the Dashboard with counts. Tap it to navigate directly to the relevant module.
KPI Tiles — Today's Snapshot
| Workers Today | Workers marked present (not half-day or absent) for today. Tap to go to Labour & Attendance. |
| Pending Ops | Field operations with status = Pending or In Progress. Tap to go to Operations Log. |
| Disease Alerts | Active (unresolved) disease or pest sightings. Tap to go to Disease & Pest. |
| Low Stock | Inventory items where quantity on hand ≤ reorder level. Tap to go to Inventory. |
All KPI tiles are tappable — tapping navigates directly to the relevant module.
Zone Activity
Color-coded summary of all blocks grouped by zone, showing zone name and total acreage. Trial blocks are listed separately. Zones with no harvest this season are shown as inactive.
Operations Snapshot
A card showing pending and in-progress operations — type, assigned worker, block, and planned date. Tap any operation to navigate to the Operations Log.
Season Plan Progress
A progress bar showing completion of seasonal plan tasks for the current year. Shows completed vs total plan items. Only counts tasks for the current calendar year — prior-year plan data is not mixed in.
Inventory & Nursery Panel
| Low Stock Items | Items currently at or below their reorder level — item name, qty on hand, and reorder level |
| Nursery Ready | Count of nursery batches with status = Ready (available for transplanting) |
Price Ticker
Live Arabica coffee futures (₹/kg) fetched from ICE New York via Yahoo Finance — updated each time the dashboard loads. Shows the converted ₹/kg price, the raw ¢/lb futures quote, % change from previous close, and the current USD/INR rate used for conversion. For Cherry, Pepper, and Areca, prices are taken from your most recent manual entries in the Market Prices module.
Weather Widget
Shows current conditions for Sakleshpur: temperature, humidity, wind speed, and rainfall. Includes a 7-day forecast with daily activity advisories. Tap the weather card header to expand or collapse it.
Spraying
Machinery
Field Work
Planting
Harvesting
Each advisory shows ✅ Good, ⚠️ Caution, or ❌ Avoid based on wind speed and rainfall forecast.
Mark daily attendance, record activities and harvest kg, calculate wages, and track payroll.
Three Tabs
| Daily Entry | Mark attendance for today or any past date — toggle Present / Half Day / Absent per worker |
| History | Last 30 days of attendance grouped by date — shows worker count, total pay, and paid status per day |
| Pay Summary | All unpaid wages grouped by worker — grand total unpaid, Mark Paid button per worker |
Daily Entry Fields
| Date | Use ← → arrows to navigate to any past date |
| Attendance Status | Tap the worker card to cycle: Present → Half Day → Absent (colour-coded: green / yellow / grey) |
| Block | Which block the worker was assigned to (optional) |
| Activity | Harvesting, Weeding, Pruning, Spraying, Fertilising, Irrigation, Planting, Transport, General |
| Kg Cherry | Quantity harvested — used for piece-rate pay calculation |
| Override Rate | Override the default day rate or piece rate for a specific day |
Wage Calculation
| Day Rate only | Pay = Day Rate × days_fraction (1.0 = Present, 0.5 = Half Day, 0 = Absent) |
| Piece Rate only | Pay = Piece Rate (₹/kg) × kg_cherry |
| Day + Piece | Pay = Day Rate × days_fraction + Piece Rate × kg_cherry |
A live pay preview is shown on each worker card before saving.
Mark Paid in the Pay Summary tab to record that wages have been disbursed. This stamps the paid date and removes them from the unpaid total.
Record daily block-wise harvest yields for coffee, pepper, and areca. Track seasonal totals and trends.
Three Tabs
| Daily Entry | Enter yields per block for a selected date — blocks grouped by zone |
| History | Last 30 days grouped by date — shows crop tags, day totals, and per-block yields; Edit/Delete per record |
| Summary | Current season totals — stat cards by crop, top 20 blocks by yield (bar chart), crop breakdown |
Daily Entry Fields
| Date | Use ← → to navigate — only past dates and today allowed |
| Block | Select from all registered blocks (grouped by zone) |
| Crop | Coffee Cherry, Pepper, or Areca |
| Quantity (kg) | Weight harvested from that block on that day |
Season Logic
The coffee season runs October to March. A record dated October 2024 or later (up to March 2025) belongs to season 2024-25. Records from April–September belong to the following season year. The Summary tab always shows the current active season.
Log and track all field activities — spraying, pruning, fertilising, irrigation, weeding, and planting.
Log View
Shows all operations with summary counts by status (Pending, In Progress, Completed, Cancelled) and total cost of completed operations. Each card shows the operation type, block or estate-wide scope, assigned worker, dates, status badge, and cost.
Form Fields
| Operation Type | Pruning, Spraying, Fertilising, Irrigation, Weeding, Planting |
| Scope | Estate-wide (no specific block) or Specific Block |
| Block | Select if scope = Specific Block |
| Planned Date | When the operation is scheduled |
| Completed Date | When it was actually done |
| Status | Pending → In Progress → Completed / Cancelled |
| Assigned To | Select an active worker |
| Notes | Free text — inputs used, method, observations |
| Cost (₹) | Total cost of the operation — must be zero or positive (negative values are blocked) |
| Cost Notes | Breakdown of what the cost covers |
Link inventory usage to an operation in the Inventory module — log a Usage transaction and select the related operation from the dropdown.
Cost amount cannot be negative. Entering a negative value will show a validation error and block the save.
Manage the estate's cultivation blocks — the fundamental unit that all other modules reference.
Three Views
| Zone Map | Visual color-coded grid of all blocks. A white dot on a block indicates it has been harvested this season. Tap a block to see its detail panel. |
| Block List | All blocks grouped by zone — shows crop icon, area (acres), variety, and season harvest total |
| Add / Edit | Form to create or update a block |
Block Form Fields
| Block Code | Short code used across all modules (e.g. A1, B3, C2) |
| Zone | A / B / C / D / Blue |
| Zone Colour | Color within the zone (e.g. A-Red, B-Orange) — determines map color |
| Primary Crop | Coffee, Areca, Pepper, or Mixed |
| Area (acres) | Size of the block |
| Coffee Variety | SLN 15, S.795, 5355, PBG2, CxR, Cauvery |
| Shade Trees | Type of shade tree cover |
| Trial Block | Check if this is an experimental/trial plot |
| Notes | Any additional details |
Track and monitor commodity prices for coffee, pepper, and areca. Includes live global futures prices and manual local price entry with 30-day trend tracking.
Four Tabs
| 💹 Prices | Latest price dashboard — one card per commodity with date, market, grade, price, and 30-day % change (▲/▼) |
| 📈 History | Per-crop section with bar chart (last 12 entries) and table (last 20 entries). Tap a row to edit. |
| 🌐 Live | Real-time global futures prices — Arabica (KC=F) and Robusta (RC=F) from ICE exchanges, converted to ₹/kg using the live USD/INR rate. Includes a Refresh button and conversion methodology note. |
| ➕ Add Entry | Record a new local price observation |
🌐 Live Global Prices
| Arabica Coffee (KC=F) | ICE New York futures in ¢/lb — converted to ₹/kg using: (¢/lb ÷ 100 × USD/INR) ÷ 0.4536 |
| Robusta Coffee (RC=F) | ICE London futures in USD/t — converted to ₹/kg using: USD/t × USD/INR ÷ 1000 |
| USD/INR Rate | Live interbank rate (INR=X via Yahoo Finance) — shown in the conversion notes at the bottom of the Live tab |
| % Change | Compared to the previous trading day's close |
| Data Source | Yahoo Finance via allorigins.win CORS proxy — no API key required, ~15-minute delayed futures data |
| Cherry / Pepper / Areca | No free global API available — use Add Entry to record local farm-gate prices from Coffee Board, Agmarknet, or Spices Board |
Global futures prices are wholesale international benchmarks. Farm-gate cherry and parchment prices in Sakleshpur will be lower — use the Add Entry tab to record what you actually receive.
Price Entry Fields
| Commodity | Coffee Cherry, Parchment Coffee, Pepper, Areca |
| Grade | Varies by commodity — e.g. AB, PB, C, BL for parchment; Bold, Medium for pepper |
| Price (₹) | Price per unit |
| Unit | Per kg or per quintal |
| Market | Sakleshpur, Hassan, Mysore, Mangalore, Chikmagalur, Coffee Board, Other |
| Date | Date of the price observation |
| Price Type | Market Rate (published price) or Actual Received (what you were paid) |
| Notes | Buyer name, lot details, or other context |
Reference Links
The Prices dashboard includes direct links to Coffee Board of India, Agmarknet, and Spices Board for local market price verification. For global futures, use the 🌐 Live tab which fetches automatically.
Scout and track disease and pest sightings across blocks. Record treatments and monitor resolution.
Three Tabs
| Scout Log | All sightings as cards — summary counts (Active, Treated, Resolved), alert banner if active issues exist |
| Block Map | Visual block grid colored by worst active severity — Red = High, Orange = Medium, Green = Low, White = Clean. Tap a block to see its active issues. |
| Log Sighting | Form to record a new disease or pest observation |
Sighting Form Fields
| Disease / Pest | CBD, CLR, Black Rot, Pink Disease, Anthracnose, Stem Borer, Coffee Borer, Mealybug, Scale Insect, Leaf Miner, Top Rot, Bud Rot, Yellow Leaf, Areca Spindle, Pollu Beetle, Quick Wilt, Slow Wilt, Other |
| Type | Disease or Pest |
| Severity | Low / Medium / High |
| Scope | Estate-wide or Specific Block |
| Observed Date | When first sighted |
| Affected Area (acres) | Approximate extent of the outbreak |
| Status | Active → Treated → Resolved |
| Notes | Observations, symptoms seen |
Treatment Fields
| Treatment Applied | Copper Oxychloride, Bordeaux, Carbendazim, Propiconazole, Chlorpyrifos, Imidacloprid, Neem Oil, Trichoderma, Beauveria, Manual Removal, Other |
| Treatment Date | When treatment was applied — cannot be earlier than the Observation Date |
| Cost (₹) | Total cost of treatment |
| Treatment Notes | Dosage, method, follow-up required |
Treatment date cannot be set before the observation date. Entering an earlier treatment date will show a validation error and block the save.
Track seedling batches from sowing through germination, hardening, and transplanting. Monitor mortality and readiness.
Three Tabs
| Batches | Active batches (Growing/Ready) shown first, then Archived (Transplanted/Disposed). Each card shows variety, batch code, sown date, qty alive, mortality %, bed status, days until ready, and target block. |
| Summary | Stat cards: seedlings alive, ready to transplant, overall mortality %, transplanted total. Alerts for overdue batches. Variety breakdown and stock by variety. |
| New Batch | Form to record a new sowing or update an existing batch |
Batch Form Fields
| Variety | Coffee: SLN 15, S.795, 5355, PBG2, CxR, Cauvery · Areca: Mangala, Sumangala, Sreemangala · Pepper: Panniyur 1 |
| Batch Code | Unique identifier for this batch (e.g. SLN-OCT24-01) |
| Sowing Date | Date seeds were sown |
| Qty Sown | Number of seeds/seedlings sown |
| Bed Status | Germinated → Hardening → Ready |
| Batch Status | Growing → Ready → Transplanted / Disposed |
| Mortality Count | Number of seedlings that died — used to calculate mortality % |
| Qty Ready | Current count of healthy seedlings available for transplanting |
| Expected Ready Date | When the batch will be ready for the field |
| Destination Block | Which block these seedlings are earmarked for |
| Transplant Date | Filled when batch status is changed to Transplanted |
| Input Cost (₹) | Total cost of seeds, media, and nursery inputs for this batch |
Mortality Rate Formula
Mortality % = (Mortality Count ÷ Qty Sown) × 100
Batches with mortality > 20% are highlighted with a warning. Overdue batches (past expected ready date and still Growing) are flagged in the Summary tab.
Manage stock of fertilisers, pesticides, tools, and nursery inputs. Track purchases, usage, and reorder levels.
Two Tabs
| Stock | All items grouped by category. Each item shows qty on hand (highlighted red if at or below reorder level), reorder level, cost/unit, and supplier. Summary tiles: total items, low stock count, total stock value. |
| Transactions | Last 50 transactions — date, item, type, qty, unit cost, linked operation, notes. Color-coded by transaction type. |
Item Form Fields
| Item Name | Name of the product (e.g. Urea, Copper Oxychloride) |
| Category | Fertiliser, Pesticide, Herbicide, Fungicide, Tools & Equipment, Nursery Inputs, Other |
| Unit | kg, L, g, ml, pieces, bags, packets |
| Qty on Hand | Current stock — updated automatically when transactions are logged |
| Reorder Level | When qty on hand reaches this level the item is flagged as Low Stock |
| Cost per Unit (₹) | Standard cost — used to calculate total stock value |
| Supplier | Who supplies this item |
| Notes | Storage or handling notes |
Transaction Types
| Purchase | Stock received — adds to qty on hand. Enter unit cost to update stock value. |
| Usage | Stock consumed in field work — deducts from qty on hand. Cannot exceed current stock on hand. Can be linked to an Operation. |
| Adjustment | Manual correction — for stock-takes or damage write-offs. Positive = add, negative = deduct. |
Low Stock items also appear as an alert on the Dashboard. Set realistic reorder levels so you get timely warnings before running out.
Usage transactions that exceed available stock are blocked — the app will show "Insufficient stock — only X [unit] available" and prevent the save.
Unified directory of all suppliers (inputs) and buyers (produce). Track contact details, credit terms, and buyer price history.
Contact List
Filter by All / Suppliers / Buyers using the pill filters. Each contact card shows name, type badge, contact person, commodities, and quick action buttons.
📞 Call
💬 WhatsApp
✏️ Edit
💰 Prices (buyers only)
Contact Form Fields
| Type | Supplier or Buyer — determines which commodity list is shown |
| Name | Company or individual name |
| Contact Person | Name of the person to speak to |
| Phone / WhatsApp | Can be different numbers — WhatsApp button uses the WhatsApp number |
| Address | Location or area |
| Commodities | Suppliers: Fertiliser, Pesticide, Tools, Nursery Inputs, Other · Buyers: Coffee Cherry, Parchment, Pepper, Areca, Other |
| Last Transaction | Date and amount of the most recent transaction |
| Credit Terms | Cash/COD, Advance, Net-7, Net-15, Net-30, Net-60 |
| Payment Notes | Account details, payment preferences |
| Active | Uncheck to archive a contact without deleting |
Buyer Price History
For each buyer, log price quotes over time. Click 💰 Prices on a buyer card to view their quote history and add a new quote.
| Commodity | Coffee Cherry, Parchment, Pepper, Areca, Other |
| Grade | Depends on commodity — e.g. AB, PB, C for parchment |
| Price per kg (₹) | Quoted or agreed price |
| Date | Date the price was quoted |
| Notes | Conditions, lot size, payment terms for this quote |
Store soil and leaf analysis reports from labs. View nutrient status with color-coded bars and track nutrient trends over time by block.
Two Tabs
| Soil Reports | Lab reports measuring soil pH, Organic Carbon, N, P, K per block |
| Leaf Reports | Foliar analysis reports measuring N, P, K, Calcium, Magnesium per block |
Report List Features
| Block Filter | Filter reports by block using the dropdown |
| Nutrient Status Bars | Color-coded bar for each measured value — Red = Low, Green = Optimal, Orange = High |
| Recommendations | Free-text field for lab or agronomist recommendations |
| Report Link | URL to the lab report PDF (e.g. Google Drive link) — opens in new tab |
| Trend Chart | When a specific block is selected and has ≥ 2 reports, a line chart shows nutrient trends over time. pH uses a separate right-hand axis. |
Nutrient Reference Ranges
| Parameter | Low | Optimal | High |
| pH | < 5.5 | 5.5 – 7.0 | > 7.0 |
| Nitrogen (kg/ha) | < 280 | 280 – 560 | > 560 |
| Phosphorus (kg/ha) | < 11 | 11 – 22 | > 22 |
| Potassium (kg/ha) | < 110 | 110 – 280 | > 280 |
| Organic Carbon (%) | < 0.5 | 0.5 – 1.5 | > 1.5 |
| Calcium (mg/kg) | < 500 | 500 – 2000 | > 2000 |
| Magnesium (mg/kg) | < 60 | 60 – 300 | > 300 |
Report Form Fields
| Block | Which block this report covers |
| Report Date | Date the sample was analysed |
| Lab Name | Laboratory that performed the analysis |
| File URL | Link to the scanned report (Google Drive, Dropbox, etc.) |
| Nutrient Values | Enter values from the lab report — leave blank if not reported by the lab |
| Recommendations | Notes on fertiliser adjustments or corrective actions |
Season-level summaries across harvest, labour, operations, and inventory — with charts and exportable tables. Defaults to the current coffee season (Oct–Mar).
Four Report Tabs
| 🍒 Harvest & Yield | Total kg by crop (coffee cherry, pepper, areca), monthly yield bar chart, kg per acre, and top 10 blocks by yield. |
| 👷 Labour & Payroll | Total payroll cost, cost per kg cherry, monthly payroll bar chart, activity breakdown (harvesting vs weeding vs pruning etc.), and worker-wise summary table. |
| 📋 Operations Cost | Total operations spend, completion rate %, cost by operation type (horizontal bar chart), and recent completed operations table. |
| 📦 Inventory Usage | Total purchase value vs total usage value, usage by category (fertiliser/pesticide/tools/nursery), and top 10 items by usage quantity. |
Date Range
| Default | Current coffee season — Oct 1 to Mar 31 (auto-detected from today's date) |
| Custom | Change the From / To date inputs at the top of each tab to filter any date range |
| Season logic | If today is Oct–Dec: season is Oct this year → Mar next year. If today is Jan–Sep: season started Oct last year → Mar this year. |
Reports are read-only — no data entry. All charts use Chart.js and are responsive on mobile.
A floating AI panel powered by Groq (llama-3.1-8b-instant, free tier) with four smart modes — accessible from every page via the 🤖 Ask AI button.
How to Access
| Open | Tap the 🤖 Ask AI button (fixed, bottom-right of screen above the nav bar) |
| Close | Tap ✕ in the top-right of the panel |
| Switch mode | Use the dropdown at the top of the panel to change between the four AI modes |
API Key Setup (one-time)
| Provider | Groq — free tier, no credit card required |
| Get a key | Go to console.groq.com → sign up → API Keys → Create API Key |
| Key format | Starts with gsk_ |
| Save key | Tap 🤖 Ask AI → key entry bar appears at bottom → paste key → tap Save |
| Shared key | The same key is used by both the main app AI panel and the Help page AI assistant — enter it once, works everywhere |
| Change key | In Help & Docs, tap 🔑 AI Key in the top bar to replace the saved key |
Four AI Modes
| 💬 Estate Assistant |
Conversational Q&A with live estate data as context. Ask anything — harvest totals, pending operations, disease alerts, current prices, low stock items, recent payroll. Maintains conversation history within the session. |
| 📈 Sell Timing |
One-tap analysis. Fetches 60 days of market price history for coffee cherry, parchment, and pepper. Returns: price trend (rising/falling/flat), sell recommendation (sell now / hold / partial sell), and reasoning with specific prices. |
| 🌱 Fertilizer Plan |
Select a block that has a soil report. AI reads the actual NPK, pH, and organic carbon values and generates a seasonal fertilizer schedule — product name, quantity per acre, timing (pre/post-monsoon / during season), and application method. |
| 📋 Season Summary |
One-tap narrative. Fetches season harvest totals, payroll, operations, disease incidents, and nursery activity. Returns a 2–3 paragraph plain-English performance report suitable for sharing with stakeholders. |
Live Data Used by the AI
| Estate Assistant | Block count, season harvest by crop, pending operations, active disease alerts, latest market prices, low-stock inventory items, recent payroll (7 days) |
| Sell Timing | market_prices table — last 60 days for coffee cherry, parchment, pepper |
| Fertilizer Plan | soil_reports — most recent report for selected block (pH, N, P, K, OC) |
| Season Summary | harvest_records, labour_attendance, operations, disease_pest_log, nursery_batches — all filtered to current season |
The AI assistant requires an internet connection — it cannot work offline. If you are offline, tapping any AI action will show a "You are offline" toast.
AI responses are generated by a language model and should be treated as advisory. Always apply your own judgement, especially for sell timing and fertilizer recommendations.
Manage workers, view payroll summaries, control user access, and view the estate profile.
Four Tabs
| Workers | Add, edit, and deactivate estate workers. Active and inactive workers shown separately. |
| Payroll | Monthly payroll summary — gross wages, deductions, net payable per worker, Mark Paid button. Use the month picker at the top to navigate to any past month. |
| Users | Owner only — view all app users and change their role (Owner / Manager / Viewer). |
| 🌿 About | Killara Estate farm profile — estate introduction, coffee varieties, farming philosophy milestones, and post-harvest processing methods. |
Worker Form — Basic Info
| Name | Full name of the worker |
| Designation | Estate Manager, Field Supervisor, Plucking Watcher, Nursery Supervisor, Irrigation Operator, Machine Operator, Store Keeper, Driver, Security, General Worker, or task-specific worker |
| Worker Type | Permanent, Seasonal, or Contractor |
| Wage Structure | Daily wages or Monthly salary |
| Payment Type (Daily) | Day Rate only, Piece Rate only, or Day + Piece |
| Day Rate (₹/day) | Base daily wage |
| Piece Rate (₹/kg) | Per-kg rate for harvesting work |
| Monthly Salary (₹) | Fixed monthly salary (if wage structure = Monthly) |
| Phone | Contact number |
| Joined Date | Start date at the estate |
| Active | Uncheck to deactivate — deactivated workers are hidden from attendance and operation forms |
Worker Form — Statutory Details
| PF Applicable | Enable Provident Fund deduction (for wages ≥ ₹15,000/month) |
| ESI Applicable | Enable ESI deduction (for wages ≤ ₹21,000/month) |
| PF Account No. | Employee PF account number |
| ESI Card No. | ESI card number |
| Aadhaar Number | 12-digit Aadhaar for statutory compliance |
A live payroll preview shows gross, deductions, net pay, and employer cost as you fill the form.
Worker Form — Bank & Emergency
| Bank Name | Worker's bank for salary transfer |
| Account Number | Bank account number |
| IFSC Code | Branch IFSC for NEFT/IMPS transfer |
| Emergency Contact | Name and phone of emergency contact person |
Overview of the Supabase (PostgreSQL) tables used by the app.
| Table | Purpose |
blocks | Estate cultivation blocks — master reference for all modules |
workers | Estate workers with wage structure and statutory details |
user_profiles | App users — display name, role (owner/manager/viewer) |
labour_attendance | Daily attendance records — worker, date, status, activity, pay |
harvest_records | Block-wise daily harvest yields — crop, kg, season |
operations | Field activities — type, block, dates, status, cost |
inventory | Stock items — category, unit, qty on hand, reorder level |
inventory_transactions | Purchase, usage, adjustment transactions per item |
nursery_batches | Seedling batches — variety, sown, alive, status, transplant |
disease_pest_log | Scouting log — disease/pest, severity, block, treatment |
contacts | Suppliers and buyers — type, commodities, credit terms |
buyer_price_history | Price quotes per buyer — commodity, grade, price, date |
soil_reports | Soil analysis — pH, OC, N, P, K per block and date |
leaf_reports | Foliar analysis — N, P, K, Ca, Mg per block and date |
market_prices | Price entries — commodity, grade, market, price, date |
alerts | System alerts — severity, category, message, resolved flag |
Row Level Security (RLS) is enabled on all tables. All queries require an authenticated Supabase session.
Statutory deduction rules and wage calculation formulas used in the Labour and Settings modules.
Provident Fund (PF)
| Employee contribution | 12% of basic wage (capped at ₹1,800/month on wage ≤ ₹15,000) |
| Employer contribution | 13% of basic wage (12% EPF + 1% admin charge) |
| Applicability | Mandatory for workers earning ≥ ₹15,000/month |
ESI (Employees State Insurance)
| Employee contribution | 0.75% of gross wages |
| Employer contribution | 3.25% of gross wages |
| Applicability | Mandatory for workers earning ≤ ₹21,000/month |
Net Pay Formula
Gross = Day Rate × days worked + Piece Rate × kg cherry
Deductions = PF (employee) + ESI (employee)
Net Pay = Gross − Deductions
Employer Cost = Gross + PF (employer) + ESI (employer)
Changelog
v2026-04-22
22 April 2026 · Production Release
- Dashboard redesigned — alert banner, clickable KPI tiles, zone activity with acres, operations snapshot card, season plan progress (current year only), inventory/nursery combined panel, price ticker, collapsible weather widget
- Settings → new 🌿 About tab with Killara Estate farm profile (varieties, farming philosophy, post-harvest processing)
- Settings → Payroll month picker — navigate to any past month's payroll summary
- Inventory — Herbicide and Fungicide added as separate category options
- Inventory — Usage transactions that exceed available stock are now blocked with a clear error message
- Operations — Negative cost amount is now blocked with a validation error
- Disease & Pest — Treatment date before observation date is now blocked with a validation error
- Full QA cycle completed — 7 phases, 54 regression checks, 17 defect fixes
- Authentication switched to production mode (real Supabase login required)
App Information
| App | Plant-O-Manager |
| Estate | Killara Estate, Sakleshpur, Karnataka |
| Hosting | Cloudflare Pages |
| Database | Supabase (PostgreSQL) |
| AI Assistant | Groq API — llama-3.1-8b-instant (free tier) |
| PWA | Installable — add to home screen on Android (Chrome) or iPhone (Safari) |
| Offline | App shell cached by service worker — opens without internet; live data requires connectivity |
Module Status
| Module | Status |
| Dashboard | Complete |
| Labour & Attendance | Complete |
| Harvest Records | Complete |
| Operations Log | Complete |
| Block Management | Complete |
| Market Prices | Complete |
| Disease & Pest Log | Complete |
| Nursery Management | Complete |
| Inventory | Complete |
| Suppliers & Buyers | Complete |
| Soil & Leaf Reports | Complete |
| Offline Mode (PWA) | Complete |
| Reports & Analytics | Complete |
| AI Estate Assistant | Complete |
| Settings | Complete |