SoilWise is an offline-first agriculture SaaS platform that combines IoT sensor monitoring, AI-powered crop advisory, and voice-enabled assistance. Built for rural deployment with Raspberry Pi-based edge computing and local LLM inference.
- 📊 Real-time IoT Monitoring - Soil moisture, temperature, pH, nutrients
- 🤖 AI-Powered Advisory - Crop recommendations, disease detection, yield optimization
- 🎙️ Voice Assistant - Offline speech recognition and synthesis
- 📱 Offline-First PWA - Works without internet connectivity
- 🔄 Edge Computing - Local processing on Raspberry Pi
- ☁️ Cloud Sync - Hybrid local/cloud data architecture
┌─────────────────────────────────────────────────────────────────┐
│ Cloud Services │
│ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │
│ │ Web Dashboard │ │ API Gateway │ │ Data Lake │ │
│ │ (React SPA) │ │ (Node.js) │ │ (PostgreSQL) │ │
│ └─────────────────┘ └─────────────────┘ └─────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
│ MQTT/HTTP
┌─────────────────────────────────────────────────────────────────┐
│ Edge Computing Hub │
│ (Raspberry Pi 4B+) │
│ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │
│ │ PWA Server │ │ AI Engine │ │ Voice Agent │ │
│ │ (Node.js) │ │ (Ollama) │ │ (Whisper) │ │
│ └─────────────────┘ └─────────────────┘ └─────────────────┘ │
│ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │
│ │ Local DB │ │ Vector DB │ │ MQTT Client │ │
│ │ (SQLite) │ │ (ChromaDB) │ │ (Node.js) │ │
│ └─────────────────┘ └─────────────────┘ └─────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
│
┌─────────────────────┴─────────────────────┐
│ │
┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐
│ Soil │ │ Temp/ │ │ pH │ │ Camera │
│ Sensor │ │ Humid │ │ Sensor │ │ Module │
└─────────┘ └─────────┘ └─────────┘ └─────────┘
- Node.js 18.0.0 or higher
- npm 8.0.0 or higher
- Git
- Clone the repository:
git clone https://github.com/your-org/soilwise.git
cd soilwise- Install dependencies:
npm install- Setup environment variables:
cp .env.example .env
# Edit .env with your configuration- Start development servers:
npm run devOnce running, access the services at:
- Web Dashboard: http://localhost:3005
- PWA Farmer App: http://localhost:5179
- API Server: http://localhost:8081
- Edge Hub: http://localhost:3002
| Command | Description |
|---|---|
npm run dev |
Start all services in development mode |
npm run build |
Build all applications |
npm run test |
Run all tests |
npm run lint |
Lint all packages |
npm run docker:up |
Start with Docker Compose |
- Voice assistant implementation
soilwise/
├── apps/ # Main applications
│ ├── web-dashboard/ # React dashboard (Cloud UI)
│ ├── pwa-farmer/ # Offline-first PWA (Mobile)
│ ├── api-server/ # Node.js API server (Cloud)
│ └── edge-hub/ # Raspberry Pi edge computing
├── packages/ # Shared packages
│ ├── ai-services/ # AI/ML services (LangChain, ChromaDB)
│ └── voice-assistant/ # Voice processing (Whisper, Coqui TTS)
├── docs/ # Documentation
│ ├── architecture/ # System architecture docs
│ ├── deployment/ # Deployment guides
│ └── api/ # API documentation
├── scripts/ # Setup and deployment scripts
└── docker/ # Docker configurations
- React 18 - Modern UI framework
- TypeScript - Type safety
- Tailwind CSS - Utility-first styling
- PWA - Offline-first mobile app
- Vite - Fast build tool
- Node.js - Server runtime
- Express - Web framework
- Socket.io - Real-time communication
- MQTT - IoT messaging
- SQLite - Local database
- Ollama - Local LLM inference
- Whisper - Speech recognition
- Coqui TTS - Text-to-speech
- LangChain - AI agent framework
- ChromaDB - Vector database
- Raspberry Pi 4B+ - Edge computing
- LoRaWAN - Long-range communication
- MQTT - Device messaging
- Docker - Containerization
- Real-time monitoring of soil conditions
- Historical data visualization and analytics
- Alert system for critical conditions
- Multi-farm management capabilities
- Works without internet connectivity
- Local SQLite database synchronization
- Field data collection and management
- Photo and note capturing
- Voice queries in local languages
- Spoken recommendations and alerts
- Hands-free operation for field work
- Offline speech processing
- Crop recommendations based on soil conditions
- Weather-based irrigation scheduling
- Disease and pest identification
- Yield optimization suggestions
# Start all services
npm run dev
# Start individual services
npm run dev:api # API server only
npm run dev:dashboard # Web dashboard only
npm run dev:pwa # PWA farmer app only
npm run dev:edge # Edge hub only
# Build and test
npm run build # Build all applications
npm run test # Run all tests
npm run lint # Lint all packages
# Docker development
npm run docker:up # Start with Docker Compose
npm run docker:down # Stop Docker services- Local Development: Use
npm run devfor hot-reload development - Testing: Run
npm run testfor unit and integration tests - Building: Use
npm run buildbefore deployment - Linting: Run
npm run lintto check code quality
docker-compose up -ddocker-compose -f docker-compose.pi.yml up -d- Architecture Guide - Detailed system architecture
- Deployment Guide - Deployment instructions
- API Documentation - API reference
- Hardware Setup - IoT sensor setup
- Troubleshooting - Common issues and solutions
Copy .env.example to .env and configure:
# Database
DB_PATH=./data/soilwise.db
# MQTT
MQTT_BROKER_URL=mqtt://localhost:1883
MQTT_USERNAME=your_username
MQTT_PASSWORD=your_password
# AI Services
AI_SERVICE_URL=http://localhost:8082
OLLAMA_API_URL=http://localhost:11434
# Voice Assistant
WHISPER_MODEL_PATH=./models/whisper
COQUI_MODEL_PATH=./models/coqui
# Cloud Services
CLOUD_SYNC_ENDPOINT=https://api.soilwise.com
CLOUD_API_KEY=your_api_key- Hardware Sales: IoT sensors, gateway devices
- SaaS Subscriptions:
- Basic: $29/month (5 sensors)
- Professional: $99/month (20 sensors)
- Enterprise: $299/month (unlimited)
- Installation & Support: $500-2000 per farm
- Data Analytics: Premium insights and reports
- Basic IoT sensor integration
- Web dashboard MVP
- Local database setup
- Development environment
- PWA development
- Offline synchronization
- Mobile optimization
- Camera integration
- Voice assistant implementation
- AI advisory engine
- LLM integration
- Advanced analytics
- Raspberry Pi optimization
- Field testing
- Commercial deployment
- Performance monitoring
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
MIT License - See LICENSE file for details.
- Documentation: docs/
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Email: support@soilwise.com