Features

Every live module of the app: what it is for, who uses it, what it captures and the rules it applies.

Each card below is one live module of Urvi as it behaves today, written from the code rather than from old specs. A module page lists who can open it, how they get there, every field it captures with its validation, the decision rules it applies (as "when → then" rows), the local tables it reads and writes, the APIs it calls, and what works offline. Unused screens and dead code paths are left out here and listed once on Set-aside code.

Most modules hang off the farmer hub: a farmer is opened from the list, and a set of gate rules (profile complete, land authenticated, member category, role, server switches) decides which tiles open. Unit In-charge users start from the VO tab instead. Read the hub and roles pages first if a rule elsewhere refers to "category", "authenticated land" or "unit login".

Glossary

TermMeaning in Urvi
APCNF / RySSAndhra Pradesh Community-managed Natural Farming, run by Rythu Sadhikara Samstha, the programme behind the ap.gov tenant (inferred from programme context; the code only says ap.gov and "RySS")
TenantThe organisation a user belongs to. Urvi serves only RySS (ap.gov). The code still has a branch for other tenants ("Vrutti"); it is unused and listed under Set-aside code
IEA farmer (or SHG/VO member) record. Code comments read it as "Individual Entrepreneur". Has a local UUID (aliasId) and, once synced, a server id shown as "IE ID" (iEOLTPId)
OLTP idThe server-side id of a farmer, used as the real join key across tables
Work nodeA node in the geography and organisation tree: District > Mandal > Village > VO > Habitation > SHG
MandalSub-district administrative unit in Andhra Pradesh, between district and village
HabitationA hamlet or sub-village. A cadre picks Village → Habitation → VO at setup
VOVillage Organisation, a federation of self-help groups. A work-node level, not a user role
SHGSelf-Help Group, a women's collective inside a VO. Farmers not in an SHG are shown as "Non-SHG"
CadreThe default ap.gov field worker. Works on one VO at a time
CRPCommunity Resource Person. Appears only as farmer designations (Trainee ICRP, H&N ICRP, L3 iCRP); no CRP-specific app logic
Unit In-charge (UIC)Supervisor role (unit-incharge). Gets every assigned VO, lands on the VO tab, can endorse
FMTA role family (fmt_l1, fmt_l2, fmt_l3, fmt_dmmt, fmt_mt). Only fmt_l1 changes the app: it is treated like a Unit In-charge. The expansion is not in the code
HANHealth and Nutrition role (role.ap.gov.han). Read-only access to farmer data
FCCCRole role.ap.gov.fccc. Unlocks the District → Habitation VO filter on endorsements. The expansion is not in the code
DPMDistrict Programme Manager. Per the in-app help text, the only person who can edit authenticated land, and only on the web
Member categoryFarmer category: Farmer, C4 (Non-Agri) or C5 (POP). Stored as text "<KAP 2021-22 category>/<current category>", for example N-A/Farmer
C1-C3Land-owning farmer categories from the KAP 2021-22 survey. C1 also appears in NF categories and KAP extents
C4Non-agricultural member. Blocked from most farm modules (land, crops, ATM, KAP)
C5"POP" member (expansion not in code; likely poorest of the poor, inferred). Landless or kitchen-garden household: no land check for ATM, one ATM at most, capped at 0.5 acre
Category freezeOnce the category is frozen it cannot be changed. Frozen when gapStartDate is later than an admin "last mandatory update" date, or when a Farmer's land is authenticated
gapStartDateWhen the member category was last set
Land authenticationA one-time tick by the field user confirming land details. After it, the parcel is locked unless config allows edits
Khata numberLand account (holding) number from revenue records. Mandatory only when config says so and the land type needs it
Survey numberThe revenue survey plot number of a parcel. Also config-gated
RoFR / D-PattaForest-rights land and assigned land, two of the land sub-categories
Disabled landLand disabled server-side (by DPM or web). No new crops can be added on it
PortfolioA farmer's crop record on the portfolio service. Holds many line items
PLIPortfolio Line Item: one crop block on one land parcel for a season and month
PPLIPortfolio Product Line Item: one crop inside a PLI, with acres and harvest state
Tile Id (titleId)Stable id of a crop block across versions. Every edit creates a new row with the same tile id
Crop PlanA PLI of type PLANNED (seasonal plan). Hard-coded to 2023-24 and hidden by a switch today
Crop ActualA PLI of type SEASON_ACTUAL: the monthly record of what is really sown. Copied forward month to month
SeasonCurrent season code from app config (KEY_CURRENT_SEASON_CODE). Crop Actual is scoped to it
NF practicesNatural-farming practices from the practice master, at least one per crop block
A GradeA crop type and practice: single main crop with at least 2 associated and 2 bio-diversity crops
PMDSPre-Monsoon Dry Sowing. A crop type with its own questions (type, kits per acre, sowing mode, 6-35 varieties, 1-999 kg seed)
RDSRabi Dry Sowing, a crop type shown when enabled
S2S"Seed to Seed": 100% chemical-free natural farming practice. Compact blocks need it
NF Category 25-26Server-computed label per farmer (C0, PMDS+C1, S2SW and so on), shown as a chip and used as a filter
ATM"ATM model": a small plot with 15-18 vegetables and 2-3 pulses on raised beds. Meant as "Anytime Money" (inferred; the code never expands it). Stored as farming_model type MODEL_TYPE.ATM
365 DKG365-day Kitchen Garden: one monthly yes/no question, stored as farming_model type MODEL_TYPE.365_DKG
365 DGC365-day green cover, asked in KAP 2025-26 with seasons (PMDS, Kharif, Rabi, RDSS1, RDSS2) (inferred expansion)
KAP / AAPAnnual Action Plan. The UI says "KAP 25-26", the code says AAP 2025-26. Extents, cows, DKG and ATM plans with ceilings
Compact Block (CB)A cluster of geofenced S2S crop tiles from several farmers, at least 5 acres in total, managed together
EndorsementReview workflow by a Unit In-charge at VO, SHG and farmer level. Statuses PENDING, ENDORSED, FLAGGED, FOR_REVIEW, with a comment thread
AbstractA VO/SHG/farmer summary report (Excel or PDF) downloaded for endorsement and re-uploaded once signed
GeofenceA polygon (KML file) around a land parcel, crop tile or ATM
Lead farmerFarmer role role.ap.gov.leadfarmer, used by the Activity Tracker pickers
MISThe analytics dashboard (daily, monthly, overall counts)
App config / switchServer ref-data entry such as LAND_EXTERNAL_SWITCH; "1" means on
Sync ledgerThe app's outbox of pending server writes, with dependencies between them
Remote app actionAn admin command (logout, clear data) the app runs at Home start
Device bindingOptional rule that a user may be logged in on one device at a time