Logo Lanfrica

VINN5/Agroweather

Domaine:

agriculture

Type de record:

software
Créateur:
VIN
Hôte:
Full-stack weather intelligence dashboard for Nyeri, Kenya farmers. Built with FastAPI + React + WeatherAI API. # AgroWeather Nyeri 🌱 A full-stack weather intelligence dashboard built for Central Kenya farmers, powered by the WeatherAI API. Built as a technical challenge submission demonstrating API integration, clean architecture, and local agricultural context. --- ## Features - **Live Weather Dashboard** — real-time conditions for Nyeri, Kenya with temperature, humidity, wind speed, and feels-like - **7-Day Forecast** — daily outlook with weather icons and min/max temperatures - **AI Farming Advice** — Gemini-powered summaries with crop-specific recommendations - **Tree Canopy Scanner** — upload aerial/drone farm images for AI-powered tree count, canopy coverage, and health analysis - **Swahili Language Toggle** — full English/Swahili i18n support - **Auto Location Detection** — IP-based geo lookup defaulting to Nyeri coordinates --- ## Tech Stack **Backend** - Python 3.12 + FastAPI - httpx for async HTTP - Pydantic v2 for data validation - Uvicorn ASGI server **Frontend** - React 18 + TypeScript - Vite - Tailwind CSS v4 - i18next for internationalization - Axios **Infrastructure** - Docker + docker-compose - Nginx (frontend serving + API proxy) - Backend deployable to Render/Railway - Frontend deployable to Vercel --- ## Project Structure ``` agroweather/ ├── backend/ │ ├── app/ │ │ ├── api/v1/endpoints/ # weather.py, trees.py │ │ ├── core/ # config, logging, exceptions │ │ ├── services/ # http_client, weather, trees │ │ ├── schemas/ # pydantic response models │ │ └── main.py │ ├── Dockerfile │ └── requirements.txt ├── frontend/ │ ├── src/ │ │ ├── api/ # client, weather, trees │ │ ├── components/ # TreeScanner │ │ ├── i18n/ # English + Swahili translations │ │ └── App.tsx │ ├── Dockerfile │ └── nginx.conf └── docker-compose.yml ``` --- ## Local Setup ### Prerequisites - Python 3.12 - Node.js 20+ - Docker Desktop (optional) - WeatherAI …