Logo Lanfrica

VINN5/Agroweather

Domain:

agriculture

Record type:

software
Creator:
VIN
Host:
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 …