Skip to content

preetam-90/Agrkserve

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

74 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Seedling Agrirental – Smart Farming, Smarter Rentals Tractor

🚀 Rent premium agricultural equipment and hire skilled labor seamlessly across India 🇮🇳

Typing SVG

Website Status Version Stars Forks License

Next.js React TypeScript Tailwind Supabase Bun Vercel Umami

Agrirental Banner

Scorecard

Seedling About Agrirental

Coding

Agrirental is a cutting-edge agri-tech marketplace designed to revolutionize agricultural operations across India. Our platform bridges the gap between farmers and premium equipment providers, making it easier than ever to rent tractors, harvesters, tillers, trucks, trailers, and hire skilled agricultural labor.

Question Why Agrirental Exists

Indian farmers face critical challenges:

  • 💰 High Equipment Costs: Purchasing machinery is unaffordable for small-scale farmers
  • 👷 Unreliable Labor Access: Difficulty finding and hiring skilled agricultural workers
  • 📉 Inefficient Rental Markets: Fragmented, offline processes lead to wasted time and resources
  • 🌏 Limited Reach: Rural entrepreneurs struggle to connect with customers beyond their locality

Star Real-World Impact

Agrirental solves these problems by:

  • 📈 Boosting Productivity: Instant access to modern equipment increases farm output
  • 🌍 Promoting Sustainability: Shared equipment reduces waste and environmental impact
  • 💵 Increasing Income: Providers earn from idle equipment; farmers save on ownership costs
  • 🤝 Building Community: Connecting rural stakeholders in a trusted digital ecosystem

Tractor Key Features

🎯 Feature 📝 Description
🚜 Equipment Rental Marketplace Browse, search, and rent tractors, harvesters, tillers, trucks, and trailers with real-time availability
👨‍🌾 Labor Hiring Platform Find and hire skilled agricultural workers, operators, and service providers
🔍 Advanced Search & Filters Filter by location, equipment type, price range, ratings, and availability dates
Instant Bookings Reserve equipment and labor with one-click booking and automated confirmations
🔐 Multi-Auth Support Sign in via email/password, Google OAuth, or phone verification (OTP for Indian numbers)
🔔 Real-Time Notifications Get instant updates on bookings, messages, and availability via Supabase Realtime
💬 In-App Chat Direct messaging between renters and providers for seamless communication
Reviews & Ratings Build trust with verified user reviews and 5-star rating system
👤 Role-Based Dashboards Customized interfaces for renters, providers, laborers, and administrators
📊 Analytics Insights Track platform usage and user behavior with privacy-focused Umami analytics
🖼️ Secure Media Uploads Cloud-based storage via Supabase and Cloudinary for equipment photos and documents
📱 Mobile-First Design Fully responsive UI optimized for smartphones and tablets
🗺️ Geospatial Search Location-based equipment discovery powered by PostGIS
🌙 Dark Mode Support Eye-friendly dark theme for comfortable browsing

Palette UI & Animations

🎨 Design Philosophy

Agrirental features a modern, colorful, and highly interactive user interface designed to delight users while maintaining professional aesthetics.

✨ Design Highlights

  • 🎨 Farm-Inspired Palette: Vibrant greens, blues, and earth tones create a natural, welcoming atmosphere
  • 🌊 Framer Motion Integration: Smooth page transitions, interactive card hovers, animated loading states, and micro-interactions
  • 🌙 Dark Mode: Automatically adapts to user preferences for comfortable viewing in any lighting
  • 📱 Responsive Design: Seamless experience across desktop, tablet, and mobile devices
  • Accessibility-First: Built with Radix UI primitives for keyboard navigation and screen reader support
  • 🎭 Animated Components: Dynamic equipment cards, smooth modal transitions, and engaging call-to-action buttons

Tech Stack

🎯 Frontend Technologies

Next.js React TypeScript Tailwind CSS

Framer Motion Radix UI Lucide Zustand


🗄️ Backend & Database

Supabase PostgreSQL PostGIS Auth


📊 Analytics & Deployment

Umami Vercel Cloudinary


🛠️ Development Tools

Bun Git GitHub

Folder Project Structure

📂 Click to expand/collapse folder structure
📦 agrirental/
┣ 📂 src/
┃ ┣ 📂 app/
┃ ┃ ┣ 📄 page.tsx                 # 🏠 Homepage
┃ ┃ ┣ 📂 login/                   # 🔐 Authentication pages
┃ ┃ ┣ 📂 phone-setup/             # 📱 Phone verification flow
┃ ┃ ┣ 📂 onboarding/              # 👋 User onboarding
┃ ┃ ┣ 📂 profile/                 # 👤 User profile management
┃ ┃ ┣ 📂 provider/                # 🚜 Equipment provider dashboard
┃ ┃ ┣ 📂 renter/                  # 👨‍🌾 Renter dashboard
┃ ┃ ┣ 📂 admin/                   # 👑 Admin panel
┃ ┃ ┣ 📂 auth/                    # 🔑 Auth callbacks
┃ ┃ ┗ 📄 layout.tsx               # 🎨 Root layout
┃ ┣ 📂 components/
┃ ┃ ┣ 📂 ui/                      # 🎯 Reusable UI components (Radix)
┃ ┃ ┣ 📂 layout/                  # 📐 Header, Footer, Sidebar
┃ ┃ ┣ 📂 landing/                 # 🌟 Homepage sections
┃ ┃ ┣ 📂 notifications/           # 🔔 Notification components
┃ ┃ ┗ 📂 messages/                # 💬 Chat/messaging UI
┃ ┣ 📂 lib/
┃ ┃ ┣ 📂 services/                # 🔌 API service layers
┃ ┃ ┣ 📂 auth/                    # 🛡️ Authentication utilities
┃ ┃ ┣ 📂 store/                   # 🗄️ Zustand stores
┃ ┃ ┣ 📂 supabase/                # 💚 Supabase client config
┃ ┃ ┣ 📂 types/                   # 📝 TypeScript type definitions
┃ ┃ ┗ 📂 utils/                   # 🛠️ Helper functions
┃ ┗ 📄 middleware.ts              # 🚦 Next.js middleware (auth guards)
┣ 📂 supabase/
┃ ┗ 📂 migrations/                # 🗃️ Database migrations
┣ 📂 public/
┃ ┣ 📂 images/                    # 🖼️ Static images
┃ ┗ 📂 assets/                    # 🎬 Banners, logos (*.svg, *.mp4, *.gif)
┣ 📂 scripts/                     # ⚙️ Build/deployment scripts
┣ 📂 docs/                        # 📚 Documentation
┣ ⚙️ next.config.ts              # 🔧 Next.js configuration
┣ 🎨 tailwind.config.js          # 💅 Tailwind CSS configuration
┣ 📘 tsconfig.json               # 📖 TypeScript configuration
┣ 📦 package.json                # 📋 Dependencies (Bun)
┣ 🔒 .env.example                # 🗝️ Environment variable template
┗ 📜 LICENSE                     # ⚖️ MIT License

Gear Installation & Setup

📋 Prerequisites

  • Bun ≥ 1.x (Install Bun)
  • Node.js 18+ (for compatibility)
  • Supabase Account (Sign up)
  • Git installed

🚀 Quick Start

📥 Step 1: Clone the Repository
git clone https://github.com/preetam-90/agrkserve.git
cd agrkserve
📦 Step 2: Install Dependencies
bun install
🗄️ Step 3: Set Up Supabase

Create a new project on Supabase and run database migrations:

Option A: Via Supabase Dashboard

  • Copy SQL from supabase/migrations/
  • Execute in SQL Editor

Option B: Via Supabase CLI (Recommended)

npx supabase link --project-ref your-project-ref
npx supabase db push
🔐 Step 4: Configure Environment Variables
  • Copy .env.example to .env.local
  • Fill in your Supabase credentials (see Environment Variables section below)
▶️ Step 5: Run Development Server
bun dev

🎉 Open http://localhost:3000 in your browser!

Lock Environment Variables

Create a .env.local file in the root directory:

# 💚 Supabase Configuration
NEXT_PUBLIC_SUPABASE_URL=https://your-project.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=your-anon-key

# 🌐 Application URL
NEXT_PUBLIC_APP_URL=http://localhost:3000

# 📊 Umami Analytics
UMAMI_WEBSITE_ID=your-umami-website-id
UMAMI_API_URL=https://umami-analytics-pk.up.railway.app

# ☁️ Cloudinary (Optional - for media operations)
NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME=your-cloud-name
CLOUDINARY_API_KEY=your-api-key
CLOUDINARY_API_SECRET=your-api-secret

⚠️ Important: Never commit .env.local to version control. Use .env.example as a template.

Rocket Running Locally

🎯 Start the development server:

bun dev
Local Server

🛠️ Additional Commands

Command Description Usage
🏗️ Build Build for production bun run build
🚀 Start Start production server bun start
🔍 Lint Run linting bun run lint
✅ Type Check TypeScript validation bun run type-check

Camera Screenshots & Demo

📱 Experience Agrirental in Action

🖼️ Click to view all screenshots

🏠 Homepage

Homepage Beautiful landing page with hero section and featured equipment

🔐 Authentication

Authentication Secure login with multiple authentication options

📋 Equipment Listings

Equipment Listings Browse and filter agricultural equipment with advanced search

📊 Dashboard

Dashboard Interactive provider dashboard with real-time analytics

🚜 Equipment Details

Equipment Details Detailed equipment information with booking options

📱 Mobile Experience

Mobile View Fully responsive mobile interface for farmers on the go

Chart Analytics Integration

🔍 Why Umami?

Agrirental uses Umami, a privacy-focused, open-source analytics platform that respects user privacy while providing valuable insights.

Benefits:

  • Privacy-First: No cookies, GDPR/CCPA compliant
  • Self-Hosted: Full data ownership on Railway
  • Lightweight: Minimal performance impact
  • Real-Time: Live visitor tracking and event monitoring

📊 View Analytics Dashboard

Analytics Dashboard

🔧 Integration Steps

  1. Add Umami script to src/app/layout.tsx
  2. Configure environment variables: UMAMI_WEBSITE_ID and UMAMI_API_URL
  3. Track custom events using Umami's JavaScript API:
window.umami?.track('equipment_booked', { type: 'tractor' });

Globe Deployment

🚀 Optimized for Vercel Deployment

Deploy on Vercel

📋 Deploy to Vercel

1️⃣

Push to GitHub

git add .
git commit -m "Initial commit"
git push origin main
2️⃣

Import to Vercel

3️⃣

Configure Environment Variables

  • Add all variables from .env.local in Vercel project settings
  • Navigate to Settings → Environment Variables
4️⃣

Deploy

  • Click "Deploy"
  • Vercel will automatically build and deploy your application
  • Future commits to main will trigger automatic deployments

💡 Pro Tips

Enable Vercel Speed Insights for performance monitoring
🌐 Set up a custom domain in project settings
📊 Monitor deployment logs for errors
🔗 Update Supabase redirect URLs:
• Go to Supabase Dashboard → Authentication → URL Configuration
• Add https://your-domain.vercel.app/** to allowed redirect URLs

Railway Roadmap

🌟 Our Vision for the Future

🚀 Phase 1: Enhanced Features

  • 💬 Real-Time Chat Enhancement
    • WebRTC-powered video calls
    • Equipment demonstration capabilities
  • 🤖 AI-Powered Recommendations
    • ML-based equipment suggestions
    • Farm size & crop-type optimization
  • 🌐 Multilingual Support
    • Hindi, Tamil, Telugu, Marathi
    • Regional language integration

🌟 Phase 2: Expansion

  • 📍 Advanced Geospatial Search
    • PostGIS-powered radius search
    • Route optimization for delivery
  • 📱 Mobile Applications
    • Native iOS app
    • Native Android app
  • Scalability Improvements
    • Edge functions for faster API
    • Cron jobs for automation

🎯 Phase 3: Growth & Innovation

  • 🏆 Gamification System
    • Loyalty rewards program
    • Provider rankings & achievements
  • 🔗 Third-Party Integrations
    • Payment gateways (Razorpay, Paytm)
    • Weather APIs for seasonal insights
  • 📊 Advanced Analytics
    • Predictive demand modeling
    • AI-powered pricing optimization

Handshake Contributing

🎉 We welcome contributions from the community!

PRs Welcome Contributors Wanted

🚀 How to Contribute

1️⃣

Fork the Repository

git clone https://github.com/your-username/agrkserve.git
cd agrkserve
2️⃣

Create a Feature Branch

git checkout -b feat/your-feature-name
3️⃣

Make Your Changes

  • Follow the existing code style
  • Write meaningful commit messages using Conventional Commits:
    • feat: add geolocation search
    • 🐛 fix: resolve booking confirmation bug
    • 📝 docs: update installation guide
4️⃣

Test Your Changes

bun dev
bun lint          # Run linting
bun type-check    # TypeScript validation
5️⃣

Submit a Pull Request

  • Push your branch to GitHub
  • Open a pull request with a clear description
  • Reference any related issues

📜 Contribution Guidelines

Keep PRs focused on a single feature or fix
Update documentation for new features
Ensure backward compatibility
Respect the project's code of conduct

Scroll License

This project is licensed under the MIT License

License: MIT

See the LICENSE file for details.


Inbox Contact & Support

💌 Get in Touch

📧 Email
support@agrirental.com

🐛 Bug Reports
GitHub Issues

🌐 Live Website
agrirental.vercel.app

📊 Analytics
View Dashboard

Folded Hands Credits & Acknowledgements

💝 Built with World-Class Open Source Technologies

Next.js
**Next.js**
The React Framework
Supabase
**Supabase**
Open Source Backend
Tailwind
**Tailwind CSS**
Utility-First CSS
Framer
**Framer Motion**
Animation Library
Radix
**Radix UI**
UI Components
Lucide
**Lucide**
Icon Library
Zustand
**Zustand**
State Management
Umami
**Umami**
Privacy Analytics

👨‍💻 Built with ❤️ by Preetam

📍 New Delhi, India 🇮🇳 • 📅 2026


⭐ Star this repository if you find it helpful!

GitHub stars

🍴 Fork and contribute!

GitHub forks

👁️ Watch for updates!

GitHub watchers

🌾 Made with love for farmers across India 🇮🇳

About

Agricultural equipment & vehicle rental platform connecting farmers with verified service providers. Built with modern web tech. A modern agri-rental platform to rent farming equipment & vehicles—fast, affordable, and farmer-first.

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Contributors