Vyaro
Digital marketplace connecting farmers and buyers
Overview
Vyaro is a multi-platform digital ecosystem designed to connect agricultural producers directly with buyers. The product consists of three distinct components: a high-conversion marketing website, a responsive marketplace web portal, and a native Android application for on-the-field access.
The Problem
Farmers often lack direct digital channels to market their produce, leaving them dependent on local middlemen who drive down profits. At the same time, commercial buyers find it difficult to locate local sources of specific crops reliably.
Objectives
Project Goals
- Enable farmers to list produce with real-time pricing and stock updates.
- Provide a seamless search and filtering interface for commercial buyers.
- Ensure offline resilience and smooth performance on low-end mobile devices.
Success Criteria
- Deliver uniform API response formats across both web and native mobile client layers.
- Establish high-reliability image upload and storage for crop listings.
Constraints
- Limited mobile data speeds and lower-tier hardware common in rural areas, requiring minimal asset payloads.
Planning & Research
I chose to build a decoupled architecture: a shared Spring Boot API service serving both the web and Android clients. I separated the marketing website into a static build to maximize search visibility and speed without loading heavy marketplace authentication bundles.
Architecture
Component Responsibilities
The Spring Boot REST API handles catalog management, user onboarding, and order flows. PostgreSQL stores relational listing data, while React manages the buyer interface and native Android SDK drives the seller mobile portal.
Data Flow
Seller uploads produce -> Mobile app transmits data to REST API -> API processes and stores metadata in PostgreSQL -> Buyer searches database on React web portal.
Infrastructure
The REST API is containerized using Docker and hosted on a Linux virtual machine, with the web clients served from CDN locations.
Engineering Decisions
Decoupled Static Marketing Portal
Separating landing pages from the marketplace prevents large application bundles from delaying the initial page load for first-time visitors.
Shared REST Backend API
Building a single API service for both mobile and web clients guarantees transaction consistency and halves backend maintenance efforts.
Implementation
I built the relational database schema in PostgreSQL and coded the Spring Boot backend service. I then implemented the React frontend with responsive styling and compiled the native Android app using Java for on-site farmers.
Challenges & Trade-offs
Inconsistent UI presentation on various mobile screens
Implement a flexible grid container structure matching uniform design standards.
Using flex-grid patterns guarantees component alignment stays identical on both high-resolution desktop screens and legacy mobile viewports.
Results
Successfully deployed the complete marketplace ecosystem, offering farmers a direct selling option and providing buyers with a searchable catalog.
Relational queries fetch indexed crop records in less than 80ms under typical loads.
Performance Metrics
- Single unified API endpoint serving 3 client platforms
- 100% relational consistency on transaction records
- Zero-friction onboarding flow for offline-first sellers
Lessons & Reflections
Keeping client logic thin and relying on centralized backend validation rules makes maintaining multi-platform ecosystems significantly easier.
