VUNOTHO — Farmer-to-Market Operating System
An integrated digital operating system and circular value-recovery platform for smallholder agriculture, built for the Enactus International Competition blueprint.
🌟 Key Features
- Price Intelligence & Net-Return Engine: Real-time transparency showing $\text{Gross Price} - \text{Transport} - \text{Platform Fee} = \mathbf{\text{Net Return}}$ before accepting orders.
- Logistics & Multi-Farmer Aggregation: Weight-and-distance dynamic logistics pooling smallholder harvest lots into consolidated transporter routes.
- Circular Value-Recovery Module: 4-tier non-binary produce grading (Fresh Market $\rightarrow$ Value-Added Processing $\rightarrow$ Livestock Feed $\rightarrow$ Organic Compost) tracking kilograms diverted from waste.
- Realistic Sandbox Settlement: Mobile Money (EcoCash PIN authorization) and Cash on Collection generating verifiable digital receipts.
- Enactus Impact Scorecard: Live dashboard calculating farmer net income lift, waste diversion, logistics savings, and youth jobs created.
- Offline-First Resilience: Full offline operation via IndexedDB with automatic background synchronization to the PHP database when connectivity returns.
🛠️ Technology Stack & Architecture
- Backend: PHP REST API (
api/) with PDO database abstraction supporting PostgreSQL, MySQL, and SQLite. - Frontend: Vanilla JavaScript (ES6+), HTML5, CSS3 with strict 70/20/10 visual identity (Deep Navy, White, Gold, Emerald Green, Alert Orange, Connectivity Teal).
- Deployment: Serverless on Vercel (
vercel.json) with[email protected].
🚀 Running Locally
You can run the PHP built-in web server locally:
# Start local PHP server on port 8000
php -S localhost:8000
Open your browser and navigate to: http://localhost:8000
☁️ Deploying to Vercel
- Install Vercel CLI (or import the repository directly on vercel.com):
bash npm i -g vercel vercel - Database Configuration (Optional for Remote DB):
In your Vercel Project Settings $\rightarrow$ Environment Variables, add:
DATABASE_URL: Your PostgreSQL or MySQL connection string (e.g. from Neon, Supabase, PlanetScale, or Aiven).- (If no
DATABASE_URLis provided, Vercel will default to internal temporary SQLite).
📚 System Analysis & Documentation
- Open
vunotho_system_analysis.htmlto explore the interactive SADM diagrams (DFD Level 0/1, ERD, Sequence, and State Machine).
Built With
- c
- c++
- cmake
- css
- dart
- dockerfile
- html
- javascript
- kotlin
- php
- shell
- typescript
Log in or sign up for Devpost to join the conversation.