iCrops

Crop Data Collection Tool for ICRISAT Scientists

React NativeReact.jsReduxPython

Project Overview

iCrops is a crop data collection tool made for ICRISAT scientists to collect crop images and parameters for research purposes from remote locations. The platform consists of an Android mobile application for field data collection and a web dashboard for data management and analysis.

Built with React Native CLI in TypeScript for the mobile app and React.js with Vite for the web dashboard, iCrops features automatic timestamping of coordinates and time on captured images, GPS sensor integration, Google Maps API for location services, and the ability to export data in .xlsx, .csv, and .shp formats with or without images. The offline-first architecture ensures data collection continues even without internet connectivity, with automatic synchronization when connection is restored.

Originally developed and tested on Debian with nginx, the application is deployed on Windows IIS server at maps.icrisat.org/react, leveraging IIS's built-in load balancing and routing capabilities for optimal performance.

Technology Stack

Mobile Application

  • React Native framework
  • TypeScript for type safety
  • Redux for state management
  • SQLite for offline storage

Web Dashboard

  • React.js with hooks
  • Redux Toolkit
  • Material-UI components
  • Chart.js for visualizations

Backend Services

  • ExpressJS REST API
  • Python data processing
  • MongoDB database
  • JWT authentication

Integration & APIs

  • Google Maps API
  • GPS sensor integration
  • Excel/CSV export
  • Real-time synchronization

Core Features

Mobile Data Collection

  • • Offline-first architecture
  • • Form-based data entry
  • • Photo and media capture
  • • GPS location tracking
  • • Barcode/QR code scanning

Web Dashboard

  • • Real-time data visualization
  • • Interactive maps integration
  • • Advanced filtering & search
  • • User management system
  • • Custom report generation

Data Synchronization

  • • Automatic sync when online
  • • Conflict resolution handling
  • • Incremental data updates
  • • Background synchronization
  • • Sync status monitoring

Location Services

  • • GPS coordinate capture
  • • Google Maps integration
  • • Geofencing capabilities
  • • Location-based filtering
  • • Route optimization

Data Export

  • • Excel (.xlsx) export
  • • CSV format support
  • • Custom field selection
  • • Batch data export
  • • Scheduled exports

Security & Access

  • • Role-based access control
  • • Data encryption at rest
  • • Secure API endpoints
  • • Audit trail logging
  • • Multi-tenant support

Installation & Usage

Web Dashboard Setup

# Clone and install dependencies
git clone https://github.com/devyk100/icrops-web.git
cd icrops-web
npm install
# Start development server
npm start

Mobile App Development

# Setup React Native environment
git clone https://github.com/devyk100/icrops-mobile.git
cd icrops-mobile
npm install
# Run on Android
npx react-native run-android
# Build APK
cd android && ./gradlew assembleRelease

Demo Videos

Mobile App Demo

Demo video coming soon

See the Android app in action with offline data collection, GPS tracking, and synchronization.

Web Dashboard Tour

Demo video coming soon

Explore the web dashboard features including data visualization, maps, and export capabilities.