Tani Dahu is an Android-first agricultural social-commerce and agronomy companion for Indonesian smallholder farmers, growers, and village sellers. The product combines four accepted responsibilities in one application:
(+) button and follower/following counts, and a Feed that recommends other users' selling products and photo/video statuses with comments, share, like, copy link, save photo, and video download.The application must be ready for upload to the Google Play Store. The audience is the Indonesian farming community: users who work outdoors, need screens readable in harsh sun, and operate with wet, dusty, or gloved hands.
Tani Dahu is delivered as a mobile-first application (Android/Google Play target) with a first-party backend and Supabase as the durable database the user has already created. All accepted durable records — marketplace data, user profile data, chat data, notification data, and the remaining application records — are persisted in Supabase.
Actors. The closed active-human catalog is: Pengguna Tani Dahu (Petani/Pengguna Umum), Penjual (Seller) di Marketplace, and Pembeli (Buyer) di Marketplace. Supabase is a typed non-persona data provider; the AI diagnosis engine, weather data source, barcode decoding, and automatic content moderation are system/provider capabilities, not personas.
Accepted behavior. Social posting and feed interaction; marketplace listing creation and discovery; mandatory buyer-to-seller chat about a listed product; profile media, location, social counts, and sharing; a persistent profile analytics dashboard pinned above the profile; chat with photo capture from gallery or camera and single/double check delivery-read states; AI plant-disease diagnosis with treatment guidance; weather, calendar, capital calculator, and fertilizer barcode tools; Budidaya cultivation search with complete guidance and reopenable search history; a notification center fed by chat, listings, comments, and likes; settings with help, account settings, and privacy policy; login, register, password recovery, logout; report post and block user; Privacy Policy and Delete Account pages; and automatic content moderation.
Ownership. All accepted human-facing work is owned by first-party application pages. Supabase owns durable storage. The AI diagnosis, weather, and barcode capabilities are invoked from the Diagnosa AI page but are provider/system capabilities.
Narrow exclusions. No payment, checkout, escrow, shipping, or order-fulfilment capability is accepted; the marketplace connects buyer and seller through chat only. No adjacent account-management capability beyond login, register, password recovery, logout, and account deletion is accepted. No capability outside the accepted thread is added.
Tani Dahu is delivered as a first-party mobile application prepared for Google Play Store submission, backed by a first-party backend service and the user's existing Supabase database. The application owns its own identity: users establish an account with email, password, address, domicile, and telephone number, verify themselves on return through Login, and recover access through Lupa Password. Anonymous visitors can read the Landing surface and the Privacy Policy; every other accepted destination requires an established identity, and the protected destinations never own the interaction that establishes access to themselves.
Current delivery covers the complete accepted thread: social posting and feed interaction, marketplace listing and discovery, product-linked chat, profile and analytics, chat delivery states, the agronomy toolkit, notifications, settings, privacy and account deletion, reporting and blocking, and automatic moderation. Nothing in the accepted thread is deferred. Future ideas that were never accepted are not part of this delivery and are not represented as pages or requirements.
No reference directive in this request declares content_source; therefore no source content inventory is produced. All factual content in this document derives from the authoritative user requirement thread and the accepted Planning Scope.
Tani Dahu wordmark set on the photo's lower third; a solid oat band beneath carrying the product explanation; capsule entry controls for Register and Login; a link to Privacy Policy.(+) button to upload a high-quality photo or video status.Tani Dahu wordmark; identity row with 56px avatar circle overlapping the photo boundary, name, and capsule follower/following pair in tabular numerals; 64px terracotta (+) capsule pinned bottom-right above the navigation bar; soft 28px-radius upload sheet with three choices (Foto, Video, Produk); 56px thumb-zone bottom bar (Beranda · Feed · Diagnosa · Chat · Profil).(+) capsule and an empty-state spot illustration invite the first upload. Success — uploaded status appears and the follower/following counts remain visible. Error — upload failure surfaces a retry affordance and the draft media is retained. Recovery — user retries the upload from the retained draft.Tanya Penjual di Chat capsule pinned to a bottom capsule bar that opens the chat thread pre-filled with the product name and photo.terkirim morphing into a double-check for dibaca; media attach control offering gallery and direct camera capture; product context header on product-linked threads.Dasbor Analitik capsule button; view follower/following counts, domicile, and complete address.Dasbor Analitik capsule button; share control; profile content list.(dasbor analitik) button.Dasbor Analitik capsule toggle; three-column ruled panel with tabular numerals; calm ruled presentation without dense chart chrome.FR-01 — Google Play readiness (explicit) As a Pengguna Tani Dahu, I should be able to install and use Tani Dahu as an application prepared for upload to the Google Play Store, so that the product is distributable on Android.
FR-02 — Beranda status upload with (+) (explicit)
As a Pengguna Tani Dahu, I should upload high-quality photo and video statuses from Beranda using the (+) button, so that I can share my field activity.
(+) capsule on Beranda; choose Foto, Video, or Produk from the soft 28px-radius sheet; select or capture high-quality media.(+) button during upload.FR-03 — Beranda follower and following display (explicit) As a Pengguna Tani Dahu, I should see my follower count and following count on Beranda from my profile, so that I know my community standing at a glance.
128 Pengikut · 96 Mengikuti style) renders in tabular numerals in the identity row.FR-04 — Feed recommendations (explicit) As a Pengguna Tani Dahu, I should see other users' selling products and photo/video statuses from Tani Dahu recommended in the Feed, so that I discover relevant content and products.
FR-05 — Feed comment (explicit) As a Pengguna Tani Dahu, I should comment on Feed posts, so that I can respond to other users' products and statuses.
FR-06 — Feed share (explicit) As a Pengguna Tani Dahu, I should share Feed posts, so that I can distribute content outside the immediate feed.
FR-07 — Feed like/menyukai (explicit) As a Pengguna Tani Dahu, I should like Feed posts, so that I can express appreciation for products and statuses.
FR-08 — Feed copy link (explicit) As a Pengguna Tani Dahu, I should copy a Feed post's link, so that I can paste it elsewhere.
FR-09 — Feed save photo (explicit) As a Pengguna Tani Dahu, I should save a photo from a Feed post, so that I can keep it on my device.
FR-10 — Feed download video (explicit) As a Pengguna Tani Dahu, I should download a video from a Feed post, so that I can keep it on my device.
FR-11 — Marketplace product upload (explicit) As a Penjual (Seller) di Marketplace, I should upload a product with 4 high-quality photos and video, strikethrough price, product weight, seller name, and seller telephone number, so that buyers can evaluate my product.
FR-12 — Marketplace chat button wired to Chat (explicit) As a Pembeli (Buyer) di Marketplace, I should tap the chat button on a listing and be connected to the Chat feature, so that I can reach the seller.
Tanya Penjual di Chat capsule on a listing detail.FR-13 — Mandatory buyer question in chat (explicit) As a Pembeli (Buyer) di Marketplace, I should be required to ask in chat about the product being sold, so that the transaction conversation is grounded in the listing.
FR-14 — Marketplace data in Supabase (explicit) As a Penjual (Seller) di Marketplace, I should have my marketplace data stored in the Supabase database, so that listings persist.
FR-15 — Profile cover and profile photo from gallery (explicit) As a Pengguna Tani Dahu, I should add a cover photo and a profile photo by taking a photo from my phone gallery, so that my profile represents me.
FR-16 — Profile follower, following, domicile, and complete address display (explicit) As a Pengguna Tani Dahu, I should see my follower count, following count, domicile, and complete address on my profile, so that visitors understand who I am and where I am.
FR-17 — Share profile (explicit) As a Pengguna Tani Dahu, I should share my profile, so that others can find me.
FR-18 — Profile analytics dashboard detection (explicit) As a Pengguna Tani Dahu, I should have a user analytics dashboard that detects profile visitors and visitors who view my products, photos, and videos, so that I know who is engaging with my content.
FR-19 — Analytics dashboard pinned above the profile (explicit)
As a Pengguna Tani Dahu, I should have the analytics dashboard fixed above my profile so it does not easily scroll away, toggled by the (dasbor analitik) button, so that I can always reach my engagement numbers.
Dasbor Analitik capsule button on Profil Pengguna.FR-20 — Profile data in Supabase (explicit) As a Pengguna Tani Dahu, I should have my profile data stored in the Supabase database, so that my profile persists.
FR-21 — Chat photo from gallery or phone camera (explicit) As a Pengguna Tani Dahu, I should take a photo from the gallery or directly from the phone camera in Chat, so that I can send images in a conversation.
FR-22 — Chat single check when sent (explicit) As a Pengguna Tani Dahu, I should see a single check mark when my message is sent, so that I know it left my device.
FR-23 — Chat double check when read (explicit) As a Pengguna Tani Dahu, I should see a double check when my message is read, so that I know the recipient has seen it.
FR-24 — Chat data in Supabase (explicit) As a Pengguna Tani Dahu, I should have my chat data stored in the Supabase database, so that conversations persist.
FR-25 — AI plant disease diagnosis with solution and treatment (explicit) As a Pengguna Tani Dahu, I should use a super-capable AI diagnosis to detect plant diseases and receive solutions and treatment with complete guidance for any plant type, so that I can treat my crops.
FR-26 — Weather button synced to user location (explicit) As a Pengguna Tani Dahu, I should use a weather button showing rain, wind, and heat for a location synced to my location in the Tani Dahu application, so that I can plan field work.
FR-27 — Calendar button (explicit) As a Pengguna Tani Dahu, I should use a calendar button, so that I can reference dates while planning.
FR-28 — Capital calculator (explicit) As a Pengguna Tani Dahu, I should use a capital calculator, so that I can compute my farming capital.
FR-29 — Fertilizer barcode screen (explicit) As a Pengguna Tani Dahu, I should use a working barcode screen for fertilizer codes that works for any fertilizer code, so that I can identify fertilizer products.
FR-30 — Budidaya search and complete guidance to harvest (explicit) As a Pengguna Tani Dahu, I should use the Budidaya button to search cultivation guidance and read complete guidance on how to plant a crop with solutions through to harvest for any plant type, so that I can grow successfully.
FR-31 — Budidaya search history (explicit) As a Pengguna Tani Dahu, I should have cultivation search history so that I can reopen previous searches, so that I do not lose useful guidance.
FR-32 — System notifications for chat, products, comments, and likes (explicit) As a Pengguna Tani Dahu, I should receive system notifications for chat, sales products, comments, and photo/video likes, so that I do not miss activity.
FR-33 — Notification data in Supabase (explicit) As a Pengguna Tani Dahu, I should have notification data connected to the Supabase database, so that notifications persist.
FR-34 — Settings with help, account settings, and privacy policy (explicit) As a Pengguna Tani Dahu, I should use system settings with a help button, an account settings menu, and a detailed privacy policy about the Tani Dahu application, so that I can manage my account and understand the policy.
FR-35 — Logout (explicit) As a Pengguna Tani Dahu, I should log out of my account, so that I can end my session.
FR-36 — Login with email and password (explicit) As a Pengguna Tani Dahu, I should log in with email and password, so that I can return to my account.
FR-37 — Register with email, password, address, domicile, and telephone number (explicit) As a Pengguna Tani Dahu, I should register an account with email, password, address, domicile, and telephone number, so that I can use Tani Dahu.
FR-38 — Lupa Password recovery (explicit) As a Pengguna Tani Dahu, I should recover my password through Lupa Password, so that I can regain access.
FR-39 — Report post (explicit) As a Pengguna Tani Dahu, I should report a post, so that harmful content is flagged.
FR-40 — Block user (explicit) As a Pengguna Tani Dahu, I should block a user, so that I no longer see their content.
FR-41 — Privacy Policy page (explicit) As a Pengguna Tani Dahu, I should read a Privacy Policy page, so that I understand how Tani Dahu handles my data.
FR-42 — Delete Account page (explicit) As a Pengguna Tani Dahu, I should delete my account from the Delete Account page, so that I can remove my account.
FR-43 — Automatic content moderation (explicit) As a Pengguna Tani Dahu, I should have submitted content automatically moderated, so that posts and listings stay safe.
FR-44 — Supabase persistence for all durable records (explicit) As a Pengguna Tani Dahu, I should have all my data connected to the Supabase database I have already created, so that my records persist across sessions.
FR-45 — Self-service registration (required_inference) As a Pengguna Tani Dahu, I should establish my own account through self-service registration, so that I can begin using Tani Dahu without an invitation.
FR-46 — Returning verification through Login (required_inference) As a Pengguna Tani Dahu, I should verify myself on return through Login, so that my durable state stays bound to me.
FR-47 — Password recovery through Lupa Password (required_inference) As a Pengguna Tani Dahu, I should recover access through Lupa Password, so that a lost password does not lock me out.
FR-48 — Role-aware seller and buyer authorization over shared marketplace state (required_inference) As a Penjual (Seller) di Marketplace, I should have my listings bound to me and be the party who receives buyer questions, while a Pembeli (Buyer) di Marketplace asks about the product, so that shared marketplace state stays correct.
FR-49 — Supabase persistence for profiles, marketplace, chat, notifications, and other durable records (required_inference) As a Pengguna Tani Dahu, I should have profiles, marketplace data, chat, notifications, and other durable application records persisted in Supabase, so that nothing is lost between sessions.
FR-50 — Automatic moderation of submitted posts and listings (required_inference) As a Pengguna Tani Dahu, I should have submitted posts and listings automatically moderated, so that unsafe content does not reach other users.
Product context. This is the primary user of Tani Dahu: a smallholder farmer or general user who works outdoors, often with wet, dusty, or gloved hands, and who needs a screen readable in harsh sun. They carry the phone into the field and use it one-handed.
Primary goal. Share what is happening in their fields and community, discover what other users are selling and posting, and get practical agronomic help — disease diagnosis, weather, cultivation guidance — that carries them through to harvest.
Distinct accepted responsibilities. This persona uploads high-quality photo and video statuses from Beranda with the (+) button and sees their follower and following counts there. They browse the Feed for recommended products and statuses and interact through comment, share, like, copy link, save photo, and download video. They manage their profile — cover photo and profile photo taken from the phone gallery, follower/following counts, domicile, complete address, and profile sharing — and monitor the analytics dashboard that detects profile visitors and viewers of their products, photos, and videos. They use Chat with photo capture from gallery or camera and rely on the single check for sent and double check for read. They use the agronomy toolkit: AI plant-disease diagnosis with solutions and treatment for any plant type, the weather button synced to their location, the calendar, the capital calculator, the fertilizer barcode screen, and Budidaya search with complete guidance to harvest and reopenable search history. They read notifications for chat, sales products, comments, and likes, manage settings, help, account settings, and the privacy policy, log out, report posts, and block users.
Relevant inputs or decisions. Which status to upload and whether it is a photo or video; which posts to like, comment on, share, save, or download; which plant photo to submit for diagnosis; whether to grant location and camera access; which cultivation query to run and which past query to reopen; whether to report a post or block a user.
Interactions with other accepted participants. This persona follows and is followed by other users, appears in the Feed to others, receives comments and likes that generate notifications, and can be the seller or buyer in a marketplace conversation. They interact with the seller when they ask about a product and with the buyer when they answer.
Observable success. Their status is published and visible; their follower and following counts are current; their interactions register on posts; their profile and analytics reflect real engagement; their chat shows the correct delivery and read state; their diagnosis returns a disease, solution, and treatment; their weather reflects their own location; their cultivation guide runs to harvest and their history reopens it.
Product context. This persona is a Tani Dahu user who sells agricultural products — a village seller or a farmer selling surplus. They need to present a product credibly with real media and clear commercial facts, and they need to be reachable by interested buyers.
Primary goal. Publish a product that buyers can evaluate and be contacted about it through chat, so that the product sells.
Distinct accepted responsibilities. This persona uploads a product with 4 high-quality photos and a high-quality video, sets the strikethrough price alongside the live price, records the product weight, and provides the seller name and seller telephone number. Their listing is saved to Supabase and appears in the marketplace grid and detail with the ruled spec block (Berat · Penjual · Telepon) and the terracotta strikethrough price. They receive buyer questions in Chat through the product-linked thread opened by the Tanya Penjual di Chat capsule, and they answer there. They receive notifications when their product sells.
Relevant inputs or decisions. Which 4 photos and which video represent the product; what the strikethrough price and live price are; what the product weighs; what seller name and telephone number to publish; how to answer a buyer's question.
Interactions with other accepted participants. This persona is the counterparty to the Pembeli (Buyer) di Marketplace: the buyer is required to ask in chat about the product, and the seller answers in the same product-linked thread. The seller's listing also surfaces as a recommendation in the Feed, where other users can like, comment, share, copy the link, save the photo, and download the video.
Observable success. The listing is published with all required fields and media, persists in Supabase, is discoverable in the marketplace and Feed, and produces a product-linked chat conversation with a buyer.
Product context. This persona is a Tani Dahu user looking for agricultural products — inputs, produce, or equipment — from other users. They need enough product detail to judge a listing and a direct line to the seller before committing.
Primary goal. Find a product, understand exactly what is being sold, and reach the seller through chat to ask about it.
Distinct accepted responsibilities. This persona browses the Feed recommendations and the marketplace grid, opens a listing detail with its 4-photo swipe strip, video tile, strikethrough price, weight, seller name, and seller telephone number, and then uses the chat button to open the Chat feature. They are required to ask in chat about the product being sold, and they read the seller's reply in the same thread. They also interact with Feed posts through comment, share, like, copy link, save photo, and download video.
Relevant inputs or decisions. Which listing to open; whether the media, price, weight, and seller details meet their need; what question to ask the seller in chat.
Interactions with other accepted participants. This persona is the counterparty to the Penjual (Seller) di Marketplace: the buyer initiates the product-linked chat and the seller answers. The buyer also interacts with the broader community through Feed comments, likes, shares, and saved or downloaded media.
Observable success. The listing detail renders completely, the chat thread opens pre-filled with the product name and photo, the buyer's question reaches the seller, and the seller's answer arrives in the same thread.
Tani Dahu wordmark and the product explanation.Tani Dahu wordmark, their identity row with the 56px avatar circle, their name, and the capsule follower/following pair in tabular numerals.(+) capsule pinned bottom-right above the navigation bar.(+) button while the upload proceeds.Tanya Penjual di Chat capsule pinned to the bottom capsule bar.Dasbor Analitik capsule button; the sticky drawer opens directly above the cover photo and stays fixed while profile content scrolls beneath it.The creative direction is authoritative for this section. The muse is Yves Béhar, and the headline idea is humane technology for the field — soft forms, soil-warm colour, and one green signal for the harvest.
Colour tokens (light mode).
| Role | Hex | Use |
|---|---|---|
| Background | #F7F1E6 | Warm oat ground for every surface |
| Surface | #FFFDF7 | Paper cards and sheets — never pure white |
| Text | #23261F | Ink text on oat, contrast ratio ~12:1 |
| Primary | #2F5A3A | Deep leaf green: brand, primary buttons, active nav, AI diagnosis rail |
| Accent | #C6512B | Terracotta: (+) upload button, chat unread badges, weather alert chip, strikethrough harga coret price |
| Muted | #7C7A67 | Metadata, timestamps, follower counts, secondary labels |
| Supporting sage | #A9BFA4 | Illustration and chart fills only |
| Grain gold | #D9A441 | Illustration and chart fills only |
| Status green | #16A34A | Active/safe indicator |
| Status yellow | #FACC15 | Warning indicator |
| Status red | #EF4444 | Critical indicator |
Sage and grain gold never appear as text backgrounds. Proportion: 70% oat/paper, 20% green, 10% terracotta and gold combined.
Typography. Headings use Karla at 700–800 with slightly tightened tracking (-0.015em); sentence case for section titles, uppercase only for micro-labels (PENGIKUT, HARGA, DOMISILI) at 11px with 0.12em tracking. Body uses Work Sans. Numbers — followers, weights, prices — use Work Sans tabular figures so listings and analytics columns align. Scale is a 1.25 modular with a display jump: 40px mobile → 76px desktop display; 28 → 40 section; 22 → 28 card title; 17 → 18 body; 15 → 16 meta; 11 → 12 micro-label. Body line-height 1.6; headings 1.08–1.15.
Shape language. Continuous-curve soft forms: 20px radius on cards, 999px capsules for every button, chip, and input, 28px on bottom sheets and modals. No hard corners except the hairline 1px rule under section headers. The profile cover photo sits in a top arc that curves down into the avatar circle, so the profile reads as one soft object rather than stacked rectangles. Icons are 1.75px-stroke rounded pictograms — a hand-drawn-adjacent leaf, watering can, scale, and cloud — never filled clip art.
Layout. Mobile-first single column at 375px with 16px gutters and a 56px thumb-zone bottom bar (Beranda · Feed · Diagnosa · Chat · Profil), growing to a 12-column, 1120px max-width canvas at 1280px where the marketplace becomes a two-up product grid and the profile analytics dashboard sits as a sticky 320px right rail. The profile analytics dashboard is a fixed panel pinned directly above the cover photo; it is toggled by a full-width capsule button labelled Dasbor Analitik and opens as a sticky drawer that stays put while the profile content scrolls beneath it. Feed posts are single-column cards with media at 4:5; comments expand inline. Marketplace listing detail uses a 4-photo swipe strip plus a video tile, a ruled spec block (Berat, Penjual, Telepon), and the chat CTA pinned to a bottom capsule bar.
Imagery. Documentary and material: macro photographs of soil, hands holding seedlings, rice terraces at dawn, market crates, and produce shot on plain oat grounds with natural side light — warm, slightly desaturated, never stock-photo glossy. Every user post is real UGC. Illustration is limited to soft flat spot art in sage, grain gold, and terracotta for empty states, the Budidaya guide steps, and the disease diagnosis result cards. No gradient blobs, no 3D renders, no neon.
Avoid. Blue or indigo primary on white; a centred hero headline with subtext and a gradient blob; a grid of identical hover-lift product cards; pure #FFFFFF backgrounds and pure #000000 text; Inter, Roboto, Poppins, Montserrat, or system-ui for headings or body; neon or candy colours, glossy 3D blobs, or playful bouncing motion; aggressive dashboards with dense chart chrome; stock photography of smiling people in office settings. The generic indigo/blue-on-white SaaS template is forbidden for this project.
The public entry is Landing, and its signature concept is the seedling lifted from dark soil.
The first screen is a full-width, edge-to-edge documentary photograph — a farmer's hands lifting a seedling from dark soil, shot warm and close — filling the top 46% of the viewport at 375px and 58vh at 1280px. The app wordmark Tani Dahu is set in Karla 800 at clamp(40px, 9vw, 76px) directly on the photo's lower third in paper #FFFDF7, left-aligned and allowed to bleed past the gutter by 8px. Below the photo edge, a solid oat band carries the product explanation and the capsule entry controls for Register and Login, with a link to Privacy Policy. There is no centred headline, no subtext paragraph, and no blue button — the photograph and the oversized wordmark are the whole first screen.
The concept recomposes only accepted content and controls: the hero photograph, the wordmark, the product explanation, and the Register, Login, and Privacy Policy entries. It introduces no new behaviour, page, or destination.
Interaction Model: Animated Motion Tempo: restrained Hero Dimensionality: layered_2d
Landing Hero Motion Brief. The focal subject is the documentary photograph of a farmer's hands lifting a seedling from dark soil. The input→transformation→outcome thesis: on entry, the photograph settles into place with a single purposeful reveal while the Tani Dahu wordmark resolves onto its lower third, and the oat band with the Register and Login capsules rises into position — the outcome is a composed first frame that reads as a well-made tool rather than a marketing page. The motion vocabulary is the direction's restrained, breath-like set: 320–420ms cubic-bezier(0.22, 1, 0.36, 1) for sheet entries and card reveals, 120ms for button and tab feedback, no bounces, no particles, no hover-lift. The composed first frame is the full-bleed photograph with the wordmark on its lower third and the oat band beneath carrying the entry capsules. The reduced-motion state renders the photograph, wordmark, and entry capsules statically with all transitions instant.
Motion across the product. One purposeful loop only — the weather chip's wind indicator drifts slowly, and the AI diagnosis scan line sweeps once over the uploaded leaf photo while results assemble. Photo/video upload shows a soft ring progress around the (+) button. Chat bubbles are soft asymmetric capsules with a terracotta single-check for terkirim morphing into a double-check for dibaca — the checkmark is the only motion in the thread. With prefers-reduced-motion, the scan line and wind drift become static states and all transitions drop to instant.
NFR-01 — Google Play Store readiness (explicit) The application must be prepared for upload to the Google Play Store, including the packaging and store configuration required for submission. Rationale: the user's opening requirement states the application must be ready for Google Play Store upload.
NFR-02 — Supabase as the durable database (explicit) All durable data — marketplace data, user profile data, chat data, notification data, and the remaining application records — must be stored in the Supabase database the user has already created. Rationale: the user explicitly requires Supabase persistence for each of these domains and states the database already exists.
NFR-03 — High-quality media (explicit) Photos and videos uploaded as statuses and as marketplace product media must be high quality. Rationale: the user explicitly requires high-quality photo and video in both Beranda and Marketplace.
NFR-04 — Weather location synchronization (explicit) The weather feature's location must be synchronized with the location of the Tani Dahu application user. Rationale: the user explicitly requires location synchronization.
NFR-05 — Barcode universality (explicit) The fertilizer barcode screen must function and be usable for any fertilizer code. Rationale: the user explicitly requires universality across fertilizer codes.
NFR-06 — Cultivation guidance completeness (explicit) Cultivation guidance must be complete from planting through harvest, with solutions, for any plant type. Rationale: the user explicitly requires complete guidance to harvest for all plant types.
NFR-07 — Diagnosis universality (explicit) The AI diagnosis must detect plant diseases and provide solutions and treatment with complete guidance for any plant type. Rationale: the user explicitly requires coverage of all plant types.
NFR-08 — Analytics dashboard persistence (explicit)
The analytics dashboard must be fixed above the user profile so that it does not easily scroll away, toggled by the (dasbor analitik) button. Rationale: the user explicitly requires the dashboard to be pinned above the profile.
NFR-09 — Mandatory buyer question (explicit) A buyer must ask in chat about the product being sold. Rationale: the user explicitly states this as a requirement of the marketplace chat flow.
NFR-10 — Automatic content moderation (explicit) Content moderation must be automatic. Rationale: the user explicitly requires automatic moderation.
NFR-11 — Readability in field conditions (required_inference) Text and controls must remain readable and whole at 375px, 768px, and 1280px, with headlines, wordmarks, labels, numbers, and card text and controls staying entirely inside the viewport and their container, wrapping or scaling to fit. Rationale: the accepted audience works outdoors in harsh sun with wet, dusty, or gloved hands, and the creative direction requires readable text and controls to stay whole at every viewport.
NFR-12 — Reduced-motion support (required_inference)
With prefers-reduced-motion, the scan line and wind drift must become static states and all transitions must drop to instant, with a usable static arrangement for any moving or scrollable content. Rationale: the creative direction specifies the reduced-motion state, and the accepted motion must remain usable for users who request reduced motion.
Assumptions.
Constraints.
(+) status upload and the follower/following counts.
Tani Dahu adalah pendamping sosial-commerce dan agronomi bagi petani kecil, pembudidaya, dan penjual kampung di Indonesia — memuat feed sosial, marketplace, dan perkakas agronomi dalam satu tempat.
Unggah foto dan video status berkualitas tinggi dari kebun, lalu ikuti pengguna lain lewat komentar, suka, simpan, dan bagikan.
Pasang produk dengan empat foto, video, harga coret, berat, nama penjual, dan nomor telepon. Tanya penjual langsung di Chat sebelum membeli.
Diagnosa AI penyakit tanaman dengan solusi pengobatan, cuaca sesuai lokasi, kalender, hitung modal, pindai barcode pupuk, dan panduan Budidaya hingga panen.
Akun diperlukan untuk menggunakan Tani Dahu. Daftar atau masuk untuk mulai berbagi, berjualan, dan merawat tanaman.

Tani Dahu adalah pendamping sosial-commerce dan agronomi bagi petani kecil, pembudidaya, dan penjual kampung di Indonesia — memuat feed sosial, marketplace, dan perkakas agronomi dalam satu tempat.
Unggah foto dan video status berkualitas tinggi dari kebun, lalu ikuti pengguna lain lewat komentar, suka, simpan, dan bagikan.
Pasang produk dengan empat foto, video, harga coret, berat, nama penjual, dan nomor telepon. Tanya penjual langsung di Chat sebelum membeli.
Diagnosa AI penyakit tanaman dengan solusi pengobatan, cuaca sesuai lokasi, kalender, hitung modal, pindai barcode pupuk, dan panduan Budidaya hingga panen.
Akun diperlukan untuk menggunakan Tani Dahu. Daftar atau masuk untuk mulai berbagi, berjualan, dan merawat tanaman.
No comments yet. Be the first!