Netnyahoo
Real Chromium for the Mac, free and open source: Arc's sidebar and Dia's polish, with no account. Immune to ads, trackers and prosecution.
আলুর ধসা আর ধানের ব্লাস্ট রোগের ঝুঁকি, ছবি দেখে রোগ চেনা আর মৌসুমের হিসাব।
Translation pending
OtherTypeScript · Jupyter NotebookGitHub @shariar165OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗মাঠের সৎ ডাক্তার — a Bengali, mobile-first UI for advising potato farmers on late blight, and paddy farmers on rice blast: daily risk from the weather, leaf photo diagnosis that admits uncertainty (potato, and paddy as an experiment, see Paddy diagnosis), an area risk map, and a season ledger. Every number on screen comes from a real source: the weather forecast, the farmer's own records on the phone, or cases an agriculture officer has confirmed. There is no sample or demo data.
Built with Next.js (App Router), TypeScript and Tailwind CSS v4.
This is a deliberate focus: one crop and one disease done honestly, rather than many done thinly.
Pests are not covered. The challenge asks for pests and diseases. We chose to cover one disease end to end (forecast, SMS alert, photo check, officer review, ledger) first. The pieces are built to grow:
src/lib/crops.ts), and paddy blast already runs on it as a draft rule (experimental).src/lib/diagnosis/crops.ts). Paddy diagnosis runs end to end on a model trained by notebooks/paddy_training.ipynb, labelled experimental; pests such as potato tuber moth or aphids would be new classes the same way.See Limitations and next steps for what is not yet validated.
npm install
npm run dev # http://localhost:3000
npm run build && npm start
npm test # unit tests (node:test)
npm run typecheck
npm run lint
On a locked-down network npm install can fail because onnxruntime-node (used only by the parity test) downloads its GPU files from NuGet. Set ONNXRUNTIME_NODE_INSTALL_CUDA=skip first.
| Route | Screen |
|---|---|
/ | Home: today's live risk at the farmer's union for each field in season (a chip per field), 5-day forecast, today's decision; a 4-card intro on first open |
/camera | Leaf photos (top, then underside) and on-device diagnosis |
/result/uncertain | "Not sure": the candidates the photos left |
/questions | Two questions that narrow the candidates |
/result | Final diagnosis, including "healthy" |
/unknown | Can't identify: send to agriculture officer |
/map | The unions of the farmer's upazila (Shibganj, Bogura, until one is chosen): today's weather risk per crop (আলু · ধসা / ধান · ব্লাস্ট) and officer-confirmed cases |
/ledger | A field's season (?field=potato|boro|aman) from the real weather and the sprays the farmer logged |
/planting | "আমার জমি": the farmer's place (district → upazila → union, ?d=/?u= are the steps), and their fields: crop (আলু, or ধান with বোরো/আমন) and planting date (?season= opens one) |
/guide | How to use the app, in plain Bengali, each part read aloud |
/potato | Potato growing advice for Bangladesh: planting, varieties, late blight, wilt, harvest, storage, stored-tuber diseases, with sources |
/ask | «কৃষি সহায়ক»: questions answered in Bengali from the app's own advice, with sources |
/docs | How it works, in English, for judges, partners and agronomists: the evidence and how AI is used |
/sign-in | Mobile number, then the SMS code (?next= is where to go after) |
/account | The signed-in number and role, SMS risk alerts on/off, sign out (from the person button on Home) |
/officer | Agriculture officers only: where farmers' cases will be listed |
Home's risk is computed from the weather, with no ML. src/lib/weather.ts fetches a 5-day hourly forecast (temperature, relative humidity) at the centroid of the farmer's union (or Shibganj upazila, Bogura, before one is chosen) from Open-Meteo (no API key, cached for 1 hour, 5 s timeout). src/lib/risk.ts applies the Hutton criteria to it:
The same result is served as JSON at GET /api/risk (optional lat, lon, by default the farmer's union; optional crop=potato|paddy, potato by default). If the forecast can't be fetched, Home says so ("আবহাওয়ার তথ্য আনা যায়নি") and shows no risk at all, never an old or made-up one.
This is the beginning of the README. Read the rest at the original. Read the full README ↗