This is a release verification script, not a claim that an automated browser was available in the local environment.
- Run
python app.pyand openhttp://127.0.0.1:5000in a current Chromium/Firefox/Safari browser. - Test widths around 390px, 768px, and 1440px. Confirm no horizontal scroll, usable touch targets, readable Telugu, visible focus rings, and one-column cards on phone widths.
- Sign in as farmer, buyer, expert, and admin. Confirm unauthorized record creation/moderation is rejected server-side.
- Switch
EN/తె; confirm navigation changes,document.documentElement.langchanges, and a signed-in preference survives reload. - On a browser supporting
SpeechRecognition, select Voice help, confirm a visible “What I heard” transcript, and test weather, price, today, and schemes intents. - On unsupported browsers, confirm the visible fallback says voice is unavailable and navigation remains usable.
- On a phone, open Crop health and confirm the image input can offer the rear camera (
capture=environment). - Test valid JPEG/PNG/WebP, wrong extension/MIME, corrupt file, and >5 MB file. Confirm safe errors.
- Confirm results show
Model class Nunless an owner-provided verified mapping exists, plus confidence and professional-confirmation wording.
- Install/add the app if the browser supports the manifest. Confirm the shell loads after an app-shell cache warm-up.
- Disconnect the network. Confirm the offline banner appears, shell navigation remains available, and weather/API responses say they cannot be presented as current.
- Reconnect and use Refresh; confirm live weather can be fetched again and cached weather is marked
CACHED/non-current.
Confirm DEMO labels on curated markets, schemes, equipment, storage, buyer, expert, and fallback-weather records; verify no API key appears in page source, network response, logs, or screenshots. Use the release checklist after completing this manual pass.