FactsheetPlanning & tracking
Who uses it Cadre Unit In-Charge / FMT L1 How you get here Analytics icon on the Home bottom bar (all users); Side menu > Analytics (Unit only). APIs 8 calls today, 2 App Service operations Offline Shows today's cache only; refresh and filters need internet. Screens What it captures Rules API contracts Behaviour notes Improve in the rewrite Screens Screen What it does Source Dashboard Tabs Yesterday MIS, Monthly MIS and Overall MIS with last-refreshed time and Refresh. app/src/main/java/org/platformcommons/urvi/view/dashboard/DashboardFragment.kt Analytics farmer list Farmers behind a tapped count. app/src/main/java/org/platformcommons/urvi/view/dashboard/AnalyticsIeListFragment.kt
What it captures Field Type Required Validation Options from VO filter (Cadre) multi-select with All No Needs internet. Title "Select VO". Distinct VOs in local farmer data Cadre filter (Unit) multi-select No Needs internet. Changing cadres resets VO and SHG. Has Clear all. Server analytics data VO filter (Unit) multi-select No Cascades from Cadre; changing VOs resets SHG. Has Clear all. Server analytics data SHG filter (Unit) multi-select No Cascades from VO. Has Clear all. Server analytics data
Rules Conditions from the code, rewritten as plain decision rules.
When Then Cached analytics were fetched today (KEY_ANALYTICS_DATA_LAST_DATE) Show the cached data. Cached analytics are older than today Show a no-data animation until the user taps Refresh. The filter is opened offline Show a no-internet toast. A filter is applied Save the selection in preferences. A count is tapped Open the list of those farmers. The dashboard is open Hide the bottom bar's search and Add farmer button. The user is Unit The 12-hourly analytics background worker is not started.
API contracts Each call opens to its use case, headers, request and response bodies, and errors.
Behaviour notes Results are stored as a JSON blob in pref KEY_ANALYTICS_DATA. Filter titles are hard-coded English. Improve in the rewrite Show stale data with a "last updated" label instead of an empty screen. Store analytics in a database table with timestamps.