Skip to content

kafaat/sahool-project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

64 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sahool - Smart Agricultural Platform

Sahool Logo

منصة زراعية ذكية متكاملة | Integrated Smart Agricultural Platform

License: MIT Python FastAPI Next.js Docker

🌾 Overview

Sahool is an enterprise-grade agricultural platform that combines satellite imagery, weather forecasting, AI-powered insights, and field management into a unified system. Built with modern microservices architecture, it provides farmers and agricultural organizations with data-driven tools for precision farming.

Key Features

  • 🛰️ Satellite Imagery Analysis: Automated Sentinel-2 data ingestion and NDVI calculation
  • 🌤️ Weather Forecasting: Real-time weather data and forecasts from Open-Meteo
  • 🤖 AI Field Assistant: Intelligent recommendations powered by AI
  • 📊 Field Analytics: Health scoring, alerts, and timeline visualization
  • 🗺️ Geographic Management: PostGIS-powered spatial data handling
  • 🔐 Multi-tenant Architecture: Secure tenant and user management
  • 📱 Modern Web Dashboard: Responsive Next.js interface
  • 🐳 Cloud-Native: Docker and Kubernetes ready

🚀 Quick Start

Prerequisites

  • Docker & Docker Compose
  • Python 3.11+
  • Node.js 18+
  • Git

Installation

# Clone the repository
git clone https://github.com/kafaat/sahool-project.git
cd sahool-project

# Copy environment template
cp .env.example .env

# Start all services
make up

# Or manually
docker-compose -f docker-compose.enterprise.yml up -d

Access the Platform

📁 Project Structure

sahool-project/
├── multi-repo/                 # Microservices
│   ├── gateway-edge/          # API Gateway
│   ├── geo-core/              # Geographic data service
│   ├── weather-core/          # Weather data service
│   ├── imagery-core/          # Satellite imagery service
│   ├── soil-core/             # Soil data service
│   ├── analytics-core/        # Analytics engine
│   ├── alerts-core/           # Alert management
│   ├── timeline-core/         # Timeline aggregation
│   ├── agent-ai/              # AI assistant
│   ├── ndvi-processor/        # NDVI calculation
│   ├── satellite-ingestor/    # Sentinel-2 ingestion
│   ├── weather-ingestor/      # Weather data ingestion
│   └── platform-core/         # User/tenant management
├── web/                       # Next.js frontend
├── tests/                     # Integration tests
├── helm/                      # Kubernetes deployment
├── scripts/                   # Utility scripts
└── docs/                      # Documentation

🏗️ Architecture

Sahool follows a microservices architecture with the following layers:

  1. Frontend Layer: Next.js web application
  2. Gateway Layer: API gateway with routing, caching, and rate limiting
  3. Core Services: Domain-specific microservices (geo, weather, imagery, etc.)
  4. Processing Services: Data ingestion and processing pipelines
  5. Data Layer: PostgreSQL + PostGIS, Redis, MinIO

See ARCHITECTURE_v15.md for detailed architecture documentation.

🛠️ Development

Local Development

# Start infrastructure only (DB, Redis, MinIO)
make dev

# Run a specific service
cd multi-repo/geo-core/multi-repo/geo-core
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
uvicorn app.main:app --reload --port 8001

Running Tests

# Run all tests
make test

# Run specific service tests
cd multi-repo/geo-core/multi-repo/geo-core
pytest -v

Code Quality

# Format code
make format

# Run linters
make lint

See DEVELOPMENT.md for detailed development guide.

📚 Documentation

🔧 Configuration

Key environment variables (see .env.example):

# Database
DATABASE_URL=postgresql+psycopg2://postgres:postgres@postgres:5432/sahool

# Satellite Data (Copernicus)
CDSE_USER=your_username
CDSE_PASS=your_password

# Object Storage
MINIO_ENDPOINT=http://minio:9000
MINIO_ROOT_USER=minioadmin
MINIO_ROOT_PASSWORD=minioadmin

# Cache
REDIS_URL=redis://redis:6379/0

🌐 API Endpoints

Core Services

  • Geo Service: http://localhost:9000/api/geo/*
  • Weather Service: http://localhost:9000/api/weather/*
  • Imagery Service: http://localhost:9000/api/imagery/*
  • Analytics Service: http://localhost:9000/api/analytics/*
  • Agent AI: http://localhost:9000/api/agent/*

Health Checks

# Check all services
curl http://localhost:9000/health

# Check specific service
curl http://localhost:9000/api/geo/health

🚢 Deployment

Docker Compose (Development/Staging)

docker-compose -f docker-compose.enterprise.yml up -d

Kubernetes (Production)

cd helm/sahool-platform
helm install sahool-platform . -n sahool --create-namespace

See README_ENTERPRISE.md for production deployment details.

🤝 Contributing

We welcome contributions! Please see CONTRIBUTING.md for guidelines.

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'feat: add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

🙏 Acknowledgments

📞 Support


Built with ❤️ for sustainable agriculture

WebsiteDocumentationBlog

About

Sahool - منصة زراعية ذكية متكاملة | Smart Agricultural Platform with Satellite Imagery, Weather Forecasting, NDVI Analysis & AI-powered Field Assistant

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors