How drona0113/agrimart works
AgriMart is a role-based, two-sided agricultural marketplace: farmers and suppliers sell while platform users can also buy. The main journey is browse products, authenticate, complete shipping and payment steps, place an order, then follow its status; sellers manage products and sales, while admins manage platform data and audit activity. A separate knowledge hub supports agricultural posts and comments. The map follows the documented React-to-Express/MongoDB structure and sampled controller ownership; some frontend page-to-API wiring and unsampled route/controller details are not shown.
Main entry points: main.jsx React app · index.js API server · admin Admin workspace · pages Checkout and orders
Components 31
Marketplace client
- React app
frontend/src/main.jsx - Browse and cart
frontend/src/pages - Checkout and orders
frontend/src/pages - Farmer workspace
frontend/src/pages/farmer - Admin workspace
frontend/src/pages/admin - Knowledge pages
frontend/src/pages - User API state
frontend/src/slices/usersApiSlice.js - Product API state
frontend/src/slices/productsApiSlice.js - Order API state
frontend/src/slices/ordersApiSlice.js - Payment API state
frontend/src/slices/razorpayApiSlice.js - Knowledge API state
frontend/src/slices/knowledgeApiSlice.js
Commerce services
- API server
backend/index.js - Product routes
backend/routes/productRoutes.js - Product management
backend/controllers/productController.js - Product records
backend/models/productModel.js - Order routes
backend/routes/orderRoutes.js - Order lifecycle
backend/controllers/orderController.js - Order records
backend/models/orderModel.js - Payment routes
backend/routes/razorpayRoutes.js - Payment verification
backend/controllers/razorpayController.js
Identity and administration
- User routes
backend/routes/userRoutes.js - Accounts and audit
backend/controllers/userController.js - User records
backend/models/userModel.js - Audit records
backend/models/auditLogModel.js - Access control
backend/middleware/authMiddleware.js
Knowledge hub
- Knowledge routes
backend/routes/knowledgeRoutes.js - Knowledge content
backend/controllers/knowledgeController.js - Knowledge records
backend/models/knowledgeModel.js
Other components
- Marketplace user
- Razorpay
- MongoDB
Connections 39
- Marketplace user → React app: uses
- React app → Browse and cart: routes to
- React app → Checkout and orders: routes to
- React app → Farmer workspace: routes to
- React app → Admin workspace: routes to
- React app → Knowledge pages: routes to
- Browse and cart → Product API state: requests products
- Checkout and orders → Order API state: requests orders
- Checkout and orders → Payment API state: requests payment
- Farmer workspace → Product API state: manages products
- Farmer workspace → Order API state: requests sales
- Admin workspace → User API state: manages users
- Admin workspace → Product API state: manages products
- Admin workspace → Order API state: manages orders
- Knowledge pages → Knowledge API state: requests content
- API server → Product routes: mounts
- API server → Order routes: mounts
- API server → Payment routes: mounts
- API server → User routes: mounts
- API server → Knowledge routes: mounts
- Product routes → Product management: dispatches
- Product management → Product records: reads and writes
- Order routes → Order lifecycle: dispatches
- Order lifecycle → Order records: reads and writes
- Order lifecycle → Product records: checks ownership
- Payment routes → Payment verification: dispatches
- Payment verification → Razorpay: creates payment orders
- Payment verification → Order records: updates payment
- User routes → Accounts and audit: dispatches
- User routes → Access control: guards routes
- Accounts and audit → User records: reads and writes
- Accounts and audit → Audit records: records access
- Knowledge routes → Knowledge content: dispatches
- Knowledge content → Knowledge records: reads and writes
- Product records → MongoDB: persists
- Order records → MongoDB: persists
- User records → MongoDB: persists
- Audit records → MongoDB: persists
- Knowledge records → MongoDB: persists