Join the Agent Deck Discord Server!
Check out the Agent Deck community on Discord – hang out with 357 other members and enjoy free voice and text chat.
Connecting East African farmers with AI, markets, and agricultural knowledge.
SocialPHP · DartGitHub @LotaElishaOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Main Repo for Mkulima Forum
Translation pending
Taken from the repository README
Loading the full README.
Read the full README ↗Multivendor marketplace, farmers forum, AI plant disease scanner, wallet/escrow payments, weather advisories, and admin operations — built for Tanzanian (and later EAC) smallholder farmers.
Start here:
REDESIGN.md— full platform audit, redesign decisions, and phased roadmap. Target architecture and requirements live inMkulimaForum_ Modern Agri Hub/.
| Path | What it is | Stack |
|---|---|---|
/ (root) | Backend API | Laravel 13, Sanctum, Spatie Permission, PostgreSQL only |
mkulima_app/ | Farmer mobile app | Flutter ≥3.5, Provider, drift (offline-first), dio |
admin-dashboard/ | Legacy React admin (not served). Live staff panel is Filament at /admin | React 18, Vite, Tailwind |
MkulimaForum_ Modern Agri Hub/ | Architecture & requirements docs | — |
PostgreSQL is the only supported database. Create a role and two databases
(the second is what php artisan test migrates; it must not be the application
database):
sudo -u postgres psql -c "CREATE USER mkulima WITH PASSWORD 'secret' CREATEDB;"
sudo -u postgres psql -c "CREATE DATABASE mkulima_forum OWNER mkulima;"
sudo -u postgres psql -c "CREATE DATABASE mkulima_test OWNER mkulima;"
composer install
cp .env.example .env && php artisan key:generate
# .env.example is already DB_CONNECTION=pgsql. Set DB_PASSWORD, then:
php artisan migrate --seed
php artisan serve # http://localhost:8000
php artisan test # uses mkulima_test, from phpunit.xml
Production is the Ubuntu VPS in DEPLOYMENT_RUNBOOK.md.
Before a deploy: php artisan mkulima:preflight. To count users and content
without changing them: php artisan mkulima:census.
Required .env keys for full functionality (all currently empty — features degrade honestly without them):
GEMINI_API_KEY — plant disease scanner (returns 503 without it)OPENWEATHER_API_KEY — weather (serves stale cache / unavailable without it; never fabricates data)MPESA_CONSUMER_KEY/SECRET/PASSKEY, TIGOPESA_API_KEY/SECRET — payments (sandbox mode)Route files: routes/api.php (core), api_kyc.php, api_notifications.php, api_seller.php. Health check: GET /api/health.
cd mkulima_app
flutter pub get
flutter run --dart-define=API_URL=http://10.0.2.2:8000/api # Android emulator → local API
flutter build apk --dart-define=API_URL=https://mkulimaforum.com/api
The API base URL is injected via --dart-define=API_URL (defaults to production). No hardcoded hosts.
Staff sign in at /admin (Filament). Publish assets after install:
php artisan filament:assets
admin-dashboard/ is the previous React app. It is not deployed, and its
build must not be written to public/admin.
All clients target https://mkulimaforum.com/api in production. Change it in one place per client: --dart-define=API_URL (Flutter), .env.production (admin), APP_URL in .env (backend).
Phase 0 (make it run) is in progress — see REDESIGN.md §4 for the roadmap and §6 for the fix list.
Most operational settings are managed from Admin → System → Configuration rather than
by editing .env on the server: SMTP credentials, SMS and IVR provider settings, webhook
secrets, short-link allowed hosts, and application URLs.
Settings resolve database → .env → default, and are overlaid onto Laravel's runtime
config on every request, so they work correctly under php artisan config:cache and take
effect with no cache clear and no deploy.
Secrets are encrypted at rest, never returned to the client, restricted to superadmins, and audit-logged as a rotation rather than a value.
Verify any environment with:
php artisan mkulima:preflight
Full detail — including which settings must stay in .env and why, the security model,
and queue worker setup — is in docs/CONFIGURATION.md.