{"id":30606588,"url":"https://github.com/debabrataghoosh/agrotrade-fullstack-project","last_synced_at":"2025-08-30T03:03:05.396Z","repository":{"id":304864006,"uuid":"1015298238","full_name":"debabrataghoosh/AgroTrade-fullstack-project","owner":"debabrataghoosh","description":"AgroTrade is a full-featured agri-commerce platform connecting Indian farmers, sellers, and buyers. Features include crop listings, seller portals, real-time chat, order management, and multilingual support. Built with Next.js 15, Tailwind CSS v4, Clerk Auth, MongoDB Atlas, Socket.IO, and Stripe. Deployed on Vercel + Render.","archived":false,"fork":false,"pushed_at":"2025-08-14T11:11:14.000Z","size":78764,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-08-14T12:25:36.059Z","etag":null,"topics":["aggricultureanalysis","clerk","ecommerce-website","mongodb-atlas","nextjs15","real-time-chat","render","socket-io","stripe","tailwindcss-v4","vercel-deployment"],"latest_commit_sha":null,"homepage":"https://agrotrade-blush.vercel.app","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/debabrataghoosh.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-07-07T09:44:22.000Z","updated_at":"2025-08-14T11:24:31.000Z","dependencies_parsed_at":"2025-08-14T12:24:02.068Z","dependency_job_id":null,"html_url":"https://github.com/debabrataghoosh/AgroTrade-fullstack-project","commit_stats":null,"previous_names":["debabrataghoosh/agrotrade-fullstack-project"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/debabrataghoosh/AgroTrade-fullstack-project","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/debabrataghoosh%2FAgroTrade-fullstack-project","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/debabrataghoosh%2FAgroTrade-fullstack-project/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/debabrataghoosh%2FAgroTrade-fullstack-project/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/debabrataghoosh%2FAgroTrade-fullstack-project/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/debabrataghoosh","download_url":"https://codeload.github.com/debabrataghoosh/AgroTrade-fullstack-project/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/debabrataghoosh%2FAgroTrade-fullstack-project/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272797078,"owners_count":24994522,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-30T02:00:09.474Z","response_time":77,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aggricultureanalysis","clerk","ecommerce-website","mongodb-atlas","nextjs15","real-time-chat","render","socket-io","stripe","tailwindcss-v4","vercel-deployment"],"created_at":"2025-08-30T03:01:45.972Z","updated_at":"2025-08-30T03:03:05.371Z","avatar_url":"https://github.com/debabrataghoosh.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🌾 AgroTrade - Complete Agri-Commerce Platform\n\n**AgroTrade** is a modern, production-ready agri-commerce platform built to empower Indian farmers, sellers, and buyers. The platform supports direct crop trading, real-time buyer-seller chat, secure checkout, product management, and multilingual support — all through a seamless web experience.\n\n---\n\n## 🚀 Live Demo \u0026 Production URLs\n\n### **🌐 Production Deployment**\n- **Main Application**: [https://agrotrade-ebrbvlkmi-debabrata-ghoshs-projects.vercel.app](https://agrotrade-ebrbvlkmi-debabrata-ghoshs-projects.vercel.app)\n- **Socket Server**: [https://agrotrade-fullstack-project.onrender.com](https://agrotrade-fullstack-project.onrender.com)\n- **GitHub Repository**: [https://github.com/debabrataghoosh/AgroTrade-fullstack-project](https://github.com/debabrataghoosh/AgroTrade-fullstack-project)\n\n---\n\n## ✨ Complete Feature Set\n\n### 🏠 **Homepage \u0026 User Experience**\n- **Modern UI/UX** with Tailwind CSS v4\n- **Location selector** for regional product discovery\n- **Advanced search** with category filtering\n- **Multilingual support** (Bengali, Hindi, Tamil, etc.)\n- **\"Become a Seller\"** onboarding with benefits\n- **Dynamic product sections**:\n  - New Products\n  - Popular Products  \n  - Featured Products\n- **User authentication** via Clerk\n- **Wishlist management**\n- **Real-time chat integration**\n\n### 🧑‍🌾 **Seller Portal \u0026 Dashboard**\n- **Secure authentication** via Clerk\n- **Product management** with image uploads\n- **Live/unlive toggle** for product visibility\n- **Order management** with buyer addresses\n- **Real-time chat** for bulk order negotiation\n- **Sales analytics** and performance tracking\n- **Product editing** and inventory management\n- **Settings management**\n\n### 🛒 **Buyer Experience \u0026 E-commerce**\n- **Product browsing** with advanced filters\n- **Secure checkout** via Stripe integration\n- **Real-time chat** with sellers\n- **Order tracking** and history\n- **Wishlist management**\n- **Address management**\n- **Payment options** (Stripe + COD)\n- **Order success** and confirmation\n\n### 💬 **Real-Time Communication System**\n- **Instant messaging** between buyers and sellers\n- **Product-specific chat rooms**\n- **Real-time notifications**\n- **Message history** and persistence\n- **File sharing** capabilities\n- **Socket.IO integration** with Render hosting\n\n---\n\n## 🛠 **Complete Tech Stack \u0026 Dependencies**\n\n### **🚀 Frontend Framework**\n- **Next.js 15.3.4** with App Router and Turbopack\n- **React 19.0.0** with latest features\n- **TypeScript 5.8.3** for type safety\n- **Tailwind CSS v4** for modern design system\n\n### **🎨 UI/UX Libraries**\n- **@headlessui/react 2.2.4** - Accessible UI components\n- **@heroicons/react 2.2.0** - Beautiful SVG icons\n- **react-icons 5.5.0** - Comprehensive icon library\n- **framer-motion 12.23.0** - Smooth animations\n- **aos 2.3.4** - Scroll animations\n- **swiper 11.2.10** - Touch slider\n- **clsx 2.1.1** - Conditional CSS classes\n\n### **🔐 Authentication \u0026 Security**\n- **@clerk/nextjs 6.23.2** - Complete auth solution\n- **@clerk/backend 2.7.0** - Server-side auth\n- **bcryptjs 3.0.2** - Password hashing\n- **next-auth 4.24.11** - Alternative auth (legacy)\n\n### **💳 Payment \u0026 E-commerce**\n- **@stripe/react-stripe-js 3.9.0** - Stripe React components\n- **@stripe/stripe-js 7.8.0** - Stripe JavaScript SDK\n- **stripe 18.4.0** - Server-side Stripe integration\n\n### **🗄️ Database \u0026 Backend**\n- **mongoose 8.16.1** - MongoDB ODM\n- **socket.io 4.8.1** - Real-time communication\n- **socket.io-client 4.8.1** - Client-side sockets\n- **axios 1.10.0** - HTTP client\n\n### **📁 File Management**\n- **cloudinary 2.7.0** - Cloud image storage\n- **formidable 3.5.4** - File upload handling\n\n### **📝 Forms \u0026 Validation**\n- **react-hook-form 7.59.0** - Form management\n- **dotenv 17.1.0** - Environment variables\n\n### **🔧 Development Tools**\n- **eslint 9** - Code linting\n- **ts-node 10.9.2** - TypeScript execution\n- **@types/node 20.19.4** - Node.js types\n- **@types/react 19** - React types\n- **@types/react-dom 19** - React DOM types\n- **@types/aos 3.0.7** - AOS types\n- **@types/formidable 3.4.5** - Formidable types\n\n---\n\n## 🚀 **Deployment \u0026 Infrastructure**\n\n### **🌐 Frontend Hosting - Vercel**\n- **Platform**: Vercel (Next.js optimized)\n- **Build Command**: `npm run build`\n- **Output Directory**: `.next`\n- **Framework**: Next.js\n- **Features**: \n  - Automatic HTTPS\n  - Global CDN\n  - Edge functions\n  - Automatic deployments\n  - Performance analytics\n\n### **🔌 Socket Server - Render**\n- **Platform**: Render (100% FREE FOREVER)\n- **Service Type**: Web service\n- **Environment**: Node.js\n- **Plan**: Free tier\n- **Features**:\n  - Automatic HTTPS\n  - Custom domain support\n  - Environment variables\n  - Health monitoring\n  - Auto-scaling\n\n### **🗄️ Database - MongoDB Atlas**\n- **Platform**: MongoDB Atlas\n- **Type**: Cloud-hosted MongoDB\n- **Features**:\n  - Automatic backups\n  - Global distribution\n  - Built-in security\n  - Performance monitoring\n  - Connection pooling\n\n### **🔐 Authentication - Clerk**\n- **Platform**: Clerk.dev\n- **Features**:\n  - Multi-factor authentication\n  - Social logins\n  - User management\n  - Webhook support\n  - Role-based access\n\n### **💳 Payments - Stripe**\n- **Platform**: Stripe\n- **Features**:\n  - Secure checkout\n  - Webhook processing\n  - Multiple payment methods\n  - Fraud protection\n  - Analytics dashboard\n\n---\n\n## 💻 **Development Setup \u0026 Installation**\n\n### **1. Clone the Repository**\n```bash\ngit clone https://github.com/debabrataghoosh/AgroTrade-fullstack-project.git\ncd AgroTrade-fullstack-project\n```\n\n### **2. Install Dependencies**\n```bash\n# Install main dependencies\nnpm install\n\n# Install socket server dependencies\ncd socket-server\nnpm install\ncd ..\n```\n\n### **3. Environment Variables Setup**\n\nCreate a `.env.local` file in the root folder:\n\n```env\n# Clerk Authentication\nNEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=your_clerk_publishable_key\nCLERK_SECRET_KEY=your_clerk_secret_key\nCLERK_WEBHOOK_SECRET=your_clerk_webhook_secret\n\n# MongoDB Database\nMONGODB_URI=your_mongodb_atlas_connection_string\n\n# Stripe Payment\nSTRIPE_SECRET_KEY=your_stripe_secret_key\nSTRIPE_WEBHOOK_SECRET=your_stripe_webhook_secret\nNEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=your_stripe_publishable_key\n\n# Cloudinary (Optional)\nCLOUDINARY_CLOUD_NAME=your_cloudinary_name\nCLOUDINARY_API_KEY=your_cloudinary_api_key\nCLOUDINARY_API_SECRET=your_cloudinary_secret\n\n# Socket Server\nNEXT_PUBLIC_SOCKET_URL=https://your-socket-server.onrender.com\n```\n\n### **4. Database Setup**\n1. **MongoDB Atlas**: Create a cluster and get your connection string\n2. **Collections**: The app will automatically create required collections\n3. **Indexes**: Database indexes are automatically created for performance\n\n### **5. Run Development Servers**\n\n```bash\n# Option 1: Run frontend only\nnpm run dev\n\n# Option 2: Run socket server only\nnpm run socket\n\n# Option 3: Run both simultaneously (recommended)\nnpm run dev:all\n```\n\nOpen your browser at: [http://localhost:3000](http://localhost:3000)\n\n---\n\n## 🔧 **Project Structure \u0026 Architecture**\n\n```\nAgroTrade/\n├── src/\n│   ├── app/                    # Next.js App Router\n│   │   ├── api/               # API routes\n│   │   │   ├── auth/          # Authentication endpoints\n│   │   │   ├── buyer-chats/   # Buyer chat management\n│   │   │   ├── create-checkout-session/ # Stripe checkout\n│   │   │   ├── health/        # Health monitoring\n│   │   │   ├── messages/      # Chat message handling\n│   │   │   ├── orders/        # Order management\n│   │   │   ├── products/      # Product CRUD operations\n│   │   │   ├── seller-chats/  # Seller chat management\n│   │   │   ├── socket/        # Socket.IO integration\n│   │   │   ├── user/          # User management\n│   │   │   ├── webhooks/      # Stripe webhooks\n│   │   │   └── wishlist/      # Wishlist operations\n│   │   ├── components/        # Reusable components\n│   │   ├── dashboard/         # Seller dashboard\n│   │   ├── products/          # Product pages\n│   │   ├── chat/              # Real-time chat\n│   │   ├── seller/            # Seller portal\n│   │   ├── checkout/          # Payment checkout\n│   │   ├── orders/            # Order management\n│   │   └── wishlist/          # Wishlist pages\n│   ├── lib/\n│   │   ├── models/            # MongoDB schemas\n│   │   │   ├── User.ts        # User model\n│   │   │   ├── Product.ts     # Product model\n│   │   │   ├── Order.ts       # Order model\n│   │   │   ├── Message.ts     # Chat message model\n│   │   │   └── Wishlist.ts    # Wishlist model\n│   │   ├── mongodb.ts         # Database connection\n│   │   └── mongodbClientPromise.ts # Client promise\n│   └── middleware.ts          # Route protection\n├── socket-server/              # Real-time communication server\n│   ├── server.js              # Socket.IO server\n│   ├── package.json           # Socket server dependencies\n│   └── render.yaml            # Render deployment config\n├── public/                     # Static assets\n│   └── assets/                # Images and media\n├── vercel.json                # Vercel deployment config\n├── next.config.ts             # Next.js configuration\n├── tailwind.config.js         # Tailwind CSS config\n├── tsconfig.json              # TypeScript config\n└── package.json               # Main dependencies and scripts\n```\n\n---\n\n## 🚀 **Deployment Guide**\n\n### **Frontend Deployment (Vercel)**\n\n1. **Connect GitHub** repository to Vercel\n2. **Set environment variables** in Vercel dashboard\n3. **Configure build settings**:\n   - Build Command: `npm run build`\n   - Output Directory: `.next`\n   - Install Command: `npm install`\n4. **Automatic deployment** on every push to main branch\n\n### **Socket Server Deployment (Render)**\n\n1. **Create Render account** (100% FREE FOREVER)\n2. **Connect GitHub** repository\n3. **Set root directory** to `socket-server`\n4. **Configure environment**:\n   - Build Command: `npm install`\n   - Start Command: `npm start`\n5. **Deploy** with automatic HTTPS\n\n### **Database Setup (MongoDB Atlas)**\n\n1. **Create cluster** in MongoDB Atlas\n2. **Set up network access** (IP whitelist or 0.0.0.0/0)\n3. **Create database user** with read/write permissions\n4. **Get connection string** and add to environment variables\n\n### **External Services Configuration**\n\n1. **Clerk**: Set up authentication and webhooks\n2. **Stripe**: Configure webhook endpoints\n3. **Cloudinary**: Set up image upload credentials\n\n---\n\n## 🎯 **Key Features \u0026 Implementation Status**\n\n### **✅ Production Ready Features**\n- **TypeScript compilation** with strict type checking\n- **Error handling** and graceful fallbacks\n- **Performance optimization** with database indexes\n- **Security** with protected API routes\n- **Responsive design** for all devices\n- **SEO optimization** with Next.js\n\n### **✅ Real-Time Features**\n- **Live chat** between buyers and sellers\n- **Instant notifications** for new messages\n- **Socket.IO integration** with Render hosting\n- **Message persistence** in MongoDB\n- **Connection status monitoring**\n\n### **✅ E-commerce Features**\n- **Product catalog** with advanced filtering\n- **Secure checkout** via Stripe\n- **Order management** system\n- **Wishlist functionality**\n- **User role management**\n- **Payment processing**\n\n### **✅ Authentication \u0026 Security**\n- **Multi-factor authentication** via Clerk\n- **Role-based access control**\n- **Protected API routes**\n- **Secure payment processing**\n- **Data validation**\n\n---\n\n## 🐛 **Troubleshooting \u0026 Common Issues**\n\n### **Development Issues**\n\n1. **MissingSchemaError**: Ensure all models are imported via `@/lib/models`\n2. **Socket connection failed**: Check Render socket server status\n3. **MongoDB timeout**: Verify connection string and network access\n4. **Build errors**: Check TypeScript compilation and dependencies\n\n### **Deployment Issues**\n\n1. **Vercel build failures**: Check for TypeScript errors locally\n2. **Render socket server down**: Monitor Render dashboard\n3. **MongoDB connection issues**: Verify Atlas network access\n4. **Stripe webhook failures**: Check webhook endpoint configuration\n\n### **Performance Issues**\n\n1. **Slow queries**: Database indexes are automatically created\n2. **Memory leaks**: Connection pooling is configured\n3. **Timeout errors**: Query timeouts are set to prevent hangs\n\n---\n\n## 🔍 **Monitoring \u0026 Health Checks**\n\n### **Health Endpoints**\n- `/api/health` - Overall system health\n- `/api/socket` - Socket service status\n- `/api/products` - Database connectivity\n- `/api/orders` - Order system status\n\n### **Performance Monitoring**\n- **Vercel Analytics** for frontend performance\n- **MongoDB Atlas** for database metrics\n- **Stripe Dashboard** for payment analytics\n- **Render Dashboard** for socket server status\n\n---\n\n## 🤝 **Contributing \u0026 Development**\n\n### **Development Workflow**\n1. **Fork** the repository\n2. **Create** a feature branch\n3. **Make** your changes\n4. **Test** thoroughly\n5. **Submit** a pull request\n\n### **Code Quality**\n- **ESLint** configuration for code standards\n- **TypeScript** for type safety\n- **Prettier** for code formatting\n- **Git hooks** for pre-commit checks\n\n---\n\n## 📄 **License \u0026 Legal**\n\nThis project is licensed under the **MIT License** - see the [LICENSE](LICENSE) file for details.\n\n---\n\n## 🙏 **Acknowledgments \u0026 Credits**\n\n- **Next.js team** for the amazing framework\n- **Vercel** for seamless deployment and hosting\n- **Render** for free socket server hosting\n- **MongoDB Atlas** for database hosting\n- **Clerk** for authentication services\n- **Stripe** for payment processing\n- **Tailwind CSS** for the design system\n- **Open source community** for various libraries\n\n---\n\n## 📞 **Support \u0026 Contact**\n\n- **GitHub Issues**: [Report bugs or request features](https://github.com/debabrataghoosh/AgroTrade-fullstack-project/issues)\n- **Email**: Contact through GitHub profile\n- **Documentation**: Check the code comments and API routes\n- **Deployment Guide**: See [DEPLOYMENT.md](DEPLOYMENT.md) for detailed deployment instructions\n\n---\n\n## 🚀 **Quick Start Commands**\n\n```bash\n# Development\nnpm run dev          # Frontend only\nnpm run socket       # Socket server only\nnpm run dev:all      # Both services\n\n# Production\nnpm run build        # Build for production\nnpm run start        # Start production server\n\n# Utilities\nnpm run lint         # Lint code\nnpm run type-check   # TypeScript check\n```\n\n---\n\n**AgroTrade** - Empowering Indian agriculture through technology! 🌾🚀\n\n*Built with Next.js, Deployed on Vercel, Powered by Render, Secured by Clerk, and Enhanced with Stripe*\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdebabrataghoosh%2Fagrotrade-fullstack-project","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdebabrataghoosh%2Fagrotrade-fullstack-project","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdebabrataghoosh%2Fagrotrade-fullstack-project/lists"}