A comprehensive mobile-first marketplace connecting farmers, vendors, and delivery partners in the agricultural ecosystem.
Agrokart is a complete three-sided marketplace that revolutionizes agricultural commerce by connecting:
- Customers/Farmers - Browse and purchase agricultural products
- Vendors/Suppliers - Sell fertilizers, seeds, and farming equipment
- Delivery Partners - Earn by delivering orders to farmers
- Mobile-First Design - Optimized for smartphones with Flipkart-style navigation
- Product Catalog - Browse fertilizers, seeds, and agricultural equipment
- Smart Search - AI-powered product recommendations
- Multi-language Support - English, Hindi, and Marathi
- Order Management - Place, track, and manage orders
- Payment Options - UPI, COD, and digital payments
- AI Chatbot - 24/7 customer support in multiple languages
- Labor Hiring - Find and hire agricultural workers
- Vendor Registration - Complete onboarding with business verification
- Inventory Management - Real-time stock tracking and alerts
- Order Processing - Accept/reject orders with automated workflows
- Earnings Dashboard - Track sales, commissions, and payouts
- Analytics - Customer insights and sales performance
- Document Verification - GST, business license, and bank details
- Multi-location Support - Serve multiple states and districts
- Partner Registration - Driver verification with document upload
- Assignment System - Real-time delivery assignments
- Route Optimization - GPS-based navigation and route planning
- Proof of Delivery - Photo and signature capture
- Earnings Tracking - Transparent payment and commission system
- Performance Metrics - Ratings and delivery statistics
- Flexible Schedule - Choose working hours and service areas
- React.js 18 - Modern UI framework
- Material-UI 5 - Professional component library
- Capacitor - Cross-platform mobile app development
- Redux Toolkit - State management
- React Router 6 - Navigation and routing
- i18next - Internationalization
- Lottie React - Animations
- Node.js with Express - RESTful API server
- MongoDB - NoSQL database with Mongoose ODM
- JWT - Authentication and authorization
- Multer - File upload handling
- bcryptjs - Password hashing
- Capacitor - Native mobile app wrapper
- Android Studio - Android development
- Progressive Web App - Offline capabilities
- Firebase - Authentication and push notifications
- Google Maps API - Location and routing services
- Payment Gateways - UPI, card, and wallet integration
- SMS/Email Services - Notification delivery
βββββββββββββββ βββββββββββββββ βββββββββββββββ
β CUSTOMERS β β VENDORS β β DELIVERY β
β (Farmers) β β (Suppliers) β β PARTNERS β
βββββββββββββββ βββββββββββββββ βββββββββββββββ
β β β
βββββββββββββββββββββΌββββββββββββββββββββ
β
βββββββββββββββ
β AGROKART β
β PLATFORM β
βββββββββββββββ
Customer Order β Vendor Notification β Vendor Acceptance β
Inventory Check β Packaging β Delivery Assignment β
Route Optimization β Delivery β Proof of Delivery β
Payment Settlement
- Node.js 16+ and npm
- MongoDB 4.4+
- Android Studio (for mobile development)
- Git
-
Clone the repository
git clone https://github.com/your-username/agrokart.git cd agrokart -
Backend Setup
cd backend npm install # Start MongoDB mongod # Start backend server npm start
-
Frontend Setup
cd frontend npm install # Start development server npm start
-
Mobile App Setup
cd frontend # Build for production npm run build # Sync with Capacitor npx cap sync android # Open in Android Studio npx cap open android # Or build APK directly cd android ./gradlew assembleDebug
Create .env files in both backend and frontend directories:
Backend (.env)
MONGODB_URI=mongodb://127.0.0.1:27017/agrokart
JWT_SECRET=your-secret-key
PORT=5000
HOST=0.0.0.0Frontend (.env)
REACT_APP_API_URL=http://localhost:5000/api
REACT_APP_FIREBASE_API_KEY=your-firebase-keyagrokart/
βββ frontend/ # React + Capacitor mobile app
β βββ src/
β β βββ components/ # Reusable UI components
β β βββ pages/ # Page components
β β β βββ VendorRegistrationPage.js
β β β βββ VendorDashboardPage.js
β β β βββ DeliveryRegistrationPage.js
β β β βββ DeliveryDashboardPage.js
β β βββ services/ # API services
β β βββ context/ # React contexts
β β βββ locales/ # Translation files
β β βββ utils/ # Utility functions
β βββ android/ # Android app files
β βββ public/ # Static assets
β βββ capacitor.config.ts # Capacitor configuration
βββ backend/ # Node.js Express server
β βββ src/
β β βββ models/ # MongoDB models
β β β βββ User.js # Enhanced with vendor/delivery profiles
β β β βββ VendorInventory.js
β β β βββ DeliveryAssignment.js
β β β βββ Earnings.js
β β β βββ Notification.js
β β βββ routes/ # API routes
β β β βββ vendor.js # Vendor-specific endpoints
β β β βββ delivery.js # Delivery partner endpoints
β β β βββ orders.js # Enhanced order management
β β βββ services/ # Business logic
β β β βββ notificationService.js
β β β βββ workflowOrchestrator.js
β β βββ middleware/ # Authentication & validation
β βββ uploads/ # File storage
βββ docs/ # Documentation
βββ README.md # This file
POST /api/auth/register- Customer registrationGET /api/products- Browse productsPOST /api/orders- Place orderGET /api/orders/my-orders- Order history
POST /api/vendor/register- Vendor registrationPOST /api/vendor/upload-documents- Document verificationGET /api/vendor/dashboard- Vendor dashboard dataGET /api/vendor/inventory- Inventory managementPOST /api/vendor/orders/:id/respond- Accept/reject orders
POST /api/delivery/register- Delivery partner registrationGET /api/delivery/dashboard- Delivery dashboardGET /api/delivery/assignments/available- Available deliveriesPOST /api/delivery/assignments/:id/accept- Accept deliveryPOST /api/delivery/assignments/:id/status- Update delivery status
- Home Screen - Featured products and categories
- Product Catalog - Browse with filters and search
- Cart & Checkout - Seamless ordering experience
- Order Tracking - Real-time delivery updates
- Profile Management - Account and preferences
- AI Chatbot - Multilingual customer support
- Dashboard - Sales analytics and KPIs
- Inventory - Stock management with alerts
- Orders - Process and fulfill customer orders
- Earnings - Revenue tracking and payouts
- Analytics - Customer insights and trends
- Assignment Board - Available delivery jobs
- Navigation - GPS-guided route optimization
- Proof of Delivery - Photo and signature capture
- Earnings Tracker - Payment and commission details
- Performance - Ratings and delivery statistics
Please read our contributing guidelines before submitting pull requests.
This project is licensed under the MIT License.