Project overview
You are designing a price board farmers can read before they sell. Trust (date updated, local vs city) matters more than listing every crop in Nigeria.
- Platform
- Mobile app · Android-first · portrait
- Screens
- 11 screens + 1 unhappy path (12 frames)
- Features
- 3 core features
- Bottom navigation
- Bottom navigation with 4 items: Prices · Alerts · History · Profile
- Prototype
- 4 linked flows
Build order: Auth (screens 1–4) → nav tabs (5–8) → core flow (9–11) → unhappy path → link prototypes.
Problem & primary user
Farmers in rural Nigeria almost always sell crops cheaply to middlemen because they do not know the real market prices in nearby cities. A bag of tomatoes that sells for ₦5,000 at the farm gate may sell for ₦15,000 in Lagos. Farmers lose income they have no way to recover.
Primary user
"Musa, a 45-year-old yam farmer in Benue who sells all his produce to a local middleman at a fixed price and has no way of knowing if he is being underpaid."
Geographic scope: National-level
Goals
User goal: See current prices for his crops in nearby markets before deciding who to sell to.
Business goal: Connect farmers to fair markets and earn a small commission on direct sales facilitated through the app.
Success: In a quick test, someone finds today's price for their crop and sets one alert without confusion.
Market context
- Question
- Answer
- Who pays
- Musa will not pay for price lists. Payers are buyers, cooperatives, or input brands who want farmer supply (assumption).
- Why not WhatsApp
- Farmers hear prices from middlemen in person. WhatsApp groups for “Lagos tomato price today” exist but are noisy, unverified, and hard to search by crop.
- Design focus
- Show local vs city price side by side with date updated and simple green/red. Design trust in data, not more crops.
Competitors to check:
- Middleman verbal quote (default)
- NaijaFarmers, AgroWorld (price alerts + market data in ag apps)
- ThriveAgric / Tradr (B2B ag platforms; not a simple daily board for one farmer)
- Radio market reports (general, not personal alerts)
Validate before you design
Interview 3–5 people who match your primary user. Update this brief if interviews contradict it. Do not start hi-fi until you complete the confirmation below.
- Validated user (name, age, city)
- Problem in one sentence
- One interview quote
- Success metric for your test
- Primary colour and tone
- One competitor you checked
Interview prompts
- "Walk me through the last time this happened."
- "What did you use instead? WhatsApp, paper, or nothing?"
- "What would make you trust this on a cheap Android phone?"
- "What would stop you from using this every week?"
Features & scope
v1 · three features
- Daily price list for major crops (maize, yam, tomato, cassava, pepper) by state
- Side-by-side comparison of local vs city market prices
- Price alert: notify user when their crop hits a good price in a chosen market
Out of scope
- Buying or selling inside the app
- Loans, inputs, or weather
- Guaranteed live prices without a data partner (label as assumption in case study)
Screens
Design every row in wireframe, high-fidelity UI, and prototype (where the flow applies).
| # | Layer | Screen | What to show |
|---|---|---|---|
| 1 | Auth | Splash Screen | App logo, name, and tagline. |
| 2 | Auth | Onboarding (1 screen) | Brief explanation of how the app helps farmers sell for more. One 'Get Started' button. |
| 3 | Auth | Sign Up Screen | Name, state / LGA, and phone number. PIN for login. |
| 4 | Auth | Sign In Screen | Phone number and PIN. |
| 5 | App shell | Prices (tab) | List of crops with today's price and a colour indicator (green = good price, red = low). Tap any crop to see details. |
| 6 | App shell | Alerts (tab) | Show the price in the user's local market and in the top 3 city markets. Include the date the price was last updated. |
| 7 | App shell | History (tab) | User picks a crop, a market, and the price they want to be notified at. Simple form with a toggle to enable/disable the alert. |
| 8 | App shell | Profile (tab) | List of all active price alerts with the ability to edit or delete each one. |
| 9 | Core flow | Price detail | Local vs city prices for one crop. Show bottom nav on post-sign-in screens. |
| 10 | Core flow | Set price alert | Crop, market, target price form. Feature 3. Show bottom nav on post-sign-in screens. |
| 11 | Core flow | Alert saved | Confirmation that alert is active. Show bottom nav on post-sign-in screens. |
Layers: Auth = 1–4 · App shell = 5–8 · Core flow = 9–11
Prototype flows
Link these in Figma. Examiners should click through without your voice-over.
Flow 1 · App entry
Flow 2 · Core task (all three features)
Core flow screens: Price detail · Set price alert · Alert saved
Flow 3 · Navigation
Link every nav tab so examiners can tap each bottom nav item. Tabs: Bottom navigation with 4 items: Prices · Alerts · History · Profile
Flow 4 · Unhappy path
Trigger the unhappy path edge case and link to that screen.
Unhappy path
Design this as its own screen state (frame 12):
No price data available for the user's selected state. Show: 'No prices available for your state yet. Here are prices for nearby Abuja.' Display the nearest available data with a note.
Link in Flow 4.
Design system
- Colour
- You choose. Keep it simple and readable.
- Type
- You choose. Keep body text easy to read on a phone.
- Tone
- Design for your user, not for a tech audience.
Reuse on every screen:
- Primary button (active and disabled states)
- Input field (empty, filled, and error states)
- Card or list item used across the app
- Navigation bar with correct labels and icons
- Empty state: what the screen looks like with no data
Submit & defense
Deliverables
| # | Deliverable | What good looks like |
|---|---|---|
| 1 | Wireframes | Every screen in this brief, plus the unhappy path. Layout and labels clear. |
| 2 | High-fidelity UI | Same frames polished. You choose colour and type. Bottom nav on every post-sign-in screen. |
| 3 | Prototype | Four linked flows (entry, core task, navigation, unhappy path). Examiners can use the app without your voice-over. |
| 4 | AI prototype | Figma Make: at least 2 screens. Share link. |
| 5 | Case study (1 page) | Problem · User · Who pays · Competitors · Solution · One design decision |
| 6 | Presentation (6–8 slides) | Name · Problem · User · Solution · Key screens · Flow demo · One decision |
Before you present
- Every screen designed in wireframe and hi-fi
- Unhappy path screen designed and linked in the prototype
- Four prototype flows linked end to end
- At least one empty state on a list tab
- Shared components reused: button, input, card or row, bottom nav
- Case study names who pays and one competitor you checked
- You can explain one design decision in critique (why, not what)
- Completed 5 user interviews or 1 usability test
- Checked at least one competitor listed under Market context