MkulimaLink connects farmers, buyers, and suppliers across Tanzania through a modern web marketplace with real-time market prices, weather data, and AI-powered insights.
| Service | URL | Status |
|---|---|---|
| Frontend | mkulimalink.vercel.app | β Live |
| Backend API | mkulimalink-api-aa384e99a888.herokuapp.com | β Live |
| Health Check | /api/health | β Running |
Try it now β no login required to browse products, market prices, and weather.
- Product Marketplace β Browse 19+ agricultural products with search, category/region filters
- Market Prices β Real-time commodity prices across 6+ regions with trend indicators
- Weather Forecasts β Current conditions for Dar es Salaam, Morogoro, Arusha, Iringa, Mbeya, Mwanza
- User Authentication β Register/login with JWT, role-based access (farmer, buyer, supplier)
- Dashboard β Personalized overview for logged-in users
- AI Insights β Crop recommendations and market analysis
- Premium Tier β Subscription plans for advanced features
- Responsive Design β Mobile-first, works on all devices
| Page | Route | Description |
|---|---|---|
| Home | / |
Landing page with feature overview |
| Products | /products |
Browse & filter all products |
| Product Detail | /products/:id |
Individual product view |
| Market Prices | /market |
Real-time commodity prices |
| Weather | /weather |
Regional weather forecasts |
| Login / Register | /login, /register |
Authentication |
| Dashboard | /dashboard |
User dashboard (auth required) |
| Add Product | /add-product |
List a product (auth required) |
| Transactions | /transactions |
Order history (auth required) |
| AI Insights | /ai-insights |
AI analysis (auth required) |
| Premium | /premium |
Subscription plans (auth required) |
| Profile | /profile |
User profile (auth required) |
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/health |
Health check with data counts |
| GET | /api/products |
List all products (19 items) |
| GET | /api/market |
Market prices (8 price points) |
| GET | /api/weather |
Weather data (6 regions) |
| Technology | Purpose |
|---|---|
| React 18.3 | UI framework |
| React Router 6 | Client-side routing |
| React Query 3 | Data fetching & caching |
| Zustand 4.5 | State management |
| TailwindCSS 3.4 | Styling |
| Lucide React | Icons |
| Axios | HTTP client |
| Framer Motion | Animations |
| i18next | Internationalization (EN/SW) |
| Recharts | Charts & data visualization |
| Technology | Purpose |
|---|---|
| Node.js 20+ | Runtime |
| Express 4.21 | Web framework |
| CORS | Cross-origin support |
| MongoDB Atlas | Database (connected) |
| Helmet | Security headers |
| Service | Purpose |
|---|---|
| Vercel | Frontend hosting + CI/CD |
| Heroku | Backend API hosting |
| MongoDB Atlas | Cloud database |
| GitHub | Source control + auto-deploy triggers |
MkulimaLink/
βββ frontend/ # React SPA
β βββ public/
β β βββ index.html
β β βββ manifest.json # PWA config
β βββ src/
β βββ api/axios.js # API client (baseURL config)
β βββ components/
β β βββ Layout.js # Main layout with nav
β β βββ ErrorBoundary.js # Error handling
β β βββ Toast.js # Notifications
β βββ pages/
β β βββ Home.js # Landing page
β β βββ Products.js # Product marketplace
β β βββ ProductDetail.js # Single product view
β β βββ Market.js # Market prices
β β βββ Weather.js # Weather forecasts
β β βββ Dashboard.js # User dashboard
β β βββ Login.js # Authentication
β β βββ Register.js # Registration
β β βββ AddProduct.js # Product listing form
β β βββ Transactions.js # Order management
β β βββ AIInsights.js # AI analysis
β β βββ Premium.js # Subscription plans
β β βββ Profile.js # User profile
β βββ store/authStore.js # Zustand auth state
β βββ i18n/ # Translations (EN/SW)
β βββ App.js # Routes & providers
βββ backend/ # Express API (full version)
β βββ models/ # Mongoose schemas
β βββ routes/ # API route handlers
β βββ middleware/ # Auth, validation
β βββ services/ # Business logic
β βββ server.js # Express app entry
βββ index-final.js # Production API server (Heroku)
βββ seedData.js # Database seeding script
βββ vercel.json # Vercel build config
βββ Procfile # Heroku process config
βββ package.json # Root dependencies
βββ docker-compose.yml # Docker setup
# Clone
git clone https://github.com/kadioko/MkulimaLink.git
cd MkulimaLink
# Install dependencies
npm install
cd frontend && npm install --legacy-peer-deps && cd ..
# Start frontend (connects to live API)
cd frontend && npm start
# Opens at http://localhost:3000The frontend is pre-configured to connect to the live backend API at https://mkulimalink-api-aa384e99a888.herokuapp.com.
Frontend (Vercel):
REACT_APP_API_URL=https://mkulimalink-api-aa384e99a888.herokuapp.com
Backend (Heroku):
MONGODB_URI=<MongoDB Atlas connection string>
NODE_ENV=production
PORT=<assigned by Heroku>
Automatic deployment on push to main branch.
- Build command:
cd frontend && npm install --legacy-peer-deps && npm run build - Output directory:
frontend/build - SPA rewrites: All routes β
index.html
Automatic deployment via GitHub integration.
- Procfile:
web: node index-final.js - CORS: Configured for
https://mkulimalink.vercel.app
Vegetables, Grains, Fruits, Legumes, Dairy, Seeds, Inputs β across Dar es Salaam, Morogoro, Arusha, Iringa, Dodoma, Mwanza, Mbeya, Kilimanjaro.
Tomatoes, Maize, Onions, Bananas, Beans, Rice β with trend indicators (up/down/stable).
Temperature, humidity, and conditions for major farming regions.
- Fork the repository
- Create feature branch (
git checkout -b feature/your-feature) - Commit changes (
git commit -m 'Add your feature') - Push to branch (
git push origin feature/your-feature) - Open a Pull Request
MIT License β see LICENSE for details.
- Issues: GitHub Issues
- Email: support@mkulimalink.co.tz
Made with β€οΈ for Tanzania's Farmers