GreenThumBot is an AI-powered urban greening platform created by Queen’s University Belfast students for the 2024 Sustainability Hackathon (“Re-Naturing the City” challenge, Belfast Agenda 2024–2028).
🏆 Winner of the “Best Use of AI” prize (community vote).
- Pitch Video
- Background & Theoretical Motivation
- System Architecture
- Project Structure
- How to Run
- API Endpoints
- Team & Credits
- License
Our official hackathon video submission (featuring a blend of humor):
GreenThumBot is an open-source, AI-powered platform designed to help Belfast and its communities optimize urban tree planting and green infrastructure, making the city greener, healthier, and more resilient.
Belfast, like many modern cities, faces mounting environmental pressures:
- Low urban tree coverage and a declining canopy
- Air pollution and worsening urban heat islands
- Loss of biodiversity and the need for resilient green infrastructure
- Limited adoption of sustainable food practices and green space for communities
Meeting these challenges is essential to align with the ambitions set out by the Belfast Agenda 2024–2028, which calls for urgent, nature-based climate action and a healthier, more livable city for all.
GreenThumBot is an open, data-driven platform designed to transform urban greening in Belfast through a unique blend of:
- Geospatial data analytics
- AI-powered recommendations
- Community engagement
- IoT integration (future vision)
GreenThumBot empowers everyone — from city planners to local residents — to discover, visualize, and act on the most impactful locations for new trees and green infrastructure.
-
Interactive Maps:
Visualizes current tree coverage, green spaces, and urban pollution, enabling clear understanding of where change is needed most. -
Smarting Planting Recommendations:
Uses public geospatial data and AI logic to recommend the best places for new trees or green spaces. -
Community-Focused:
Designed for both residents and organizations to explore, participate in, and lead greening projects. -
Sustainable Food & Urban Gardening (future vision):
Plans to enable residents to reserve garden plots, reduce food waste, and strengthen local food systems. -
Scalable, Modular, and Open:
The platform is built as microservices with open data and Docker for ease of deployment, extension, and integration.
GreenThumBot leverages Northern Ireland’s rich public geospatial datasets, including:
- Belfast Trees Dataset (OpenData NI)
- FODC Tree Preservation Orders
- Belfast City Parks
- National Natural Reserves & Areas of Outstanding Beauty
- Townlands Boundaries
These datasets enable comprehensive mapping and analysis, forming the backbone of the platform’s recommendations.
- The platform ingests and processes up-to-date open geospatial datasets.
- AI-driven analysis identifies priority sites for planting and pollution mitigation, taking into account ecological, infrastructural, and social factors.
- Users interact with clean, interactive maps to see opportunities for planting and to track progress city-wide.
- Future plans include integrating IoT hardware to monitor plant and soil health, supporting a real-time feedback loop.
By aligning with the city’s sustainability agenda and harnessing the collective power of data, technology, and the community, GreenThumBot aims to:
- Improve air quality and urban resilience
- Increase tree canopy and green spaces
- Support local biodiversity and sustainable food systems
- Empower communities with actionable data
GreenThumBot is structured as a modern microservices web app, with each component containerized for easy deployment and development.
-
Backend Services:
- Greening Service: Generates dynamic tree density maps from public geospatial data.
- Pollution Service: Generates real-time urban pollution maps.
- Both are independent Flask microservices using shared utilities for data processing and map generation.
-
Frontend:
- Angular single-page app presenting a simple UI to trigger map generation.
- On click, maps open in a new tab for user interaction.
-
Communication:
- All interaction is via RESTful HTTP endpoints.
- No shared state; services can scale independently.
-
Deployment:
- Entire stack runs via Docker and Compose.
- Supports both local development and production.
Extensible, modular, and open—GreenThumBot is ready for new features and city-wide scale.
greenthumbot/
backend/
services/
greening/
app.py
controller.py
routes.py
pollution/
app.py
controller.py
routes.py
common/
utils.py
config.py
data/
pollution/
...CSV files... #data not easily retrievable via URL
tests/
test_greening_service.py
test_pollution_service.py
Dockerfile.greening
Dockerfile.pollution
requirements.txt
frontend/
src/
app/
map-viewer/
map-viewer.component.html
map-viewier.component.ts
map-viewer.component.csss
Dockerfile.frontend
nginx.conf
...Angular files...
docker-compose.yml
README.md
- Docker & Docker Compose
git clone https://gitlab.com/sustainability-hackathon-2024/greenthumbot.git
cd greenthumbotFrom the project root:
docker-compose up --build- This will build and start all backend and frontend services.
- Backend services will run on their respective ports (e.g., 5001 for greening, 5002 for pollution).
To stop the stack:
docker-compose downYou can run the backend or frontend services individually for faster development and debugging.
Backend (e.g greening-service)
cd backend/services/greening
docker build -t greening-service .
docker run -p 5001:5001 greening-serviceFrontend (Angular w/ live reload)
cd frontend
npm install
ng serve- Datasets that were not accessible via URL are located in backend/data/pollution
- Dataset URLs are located in backend/common/config.py
- If you wish to use custom datasets or ports, edit the relevant Dockerfile or Compose file.
- Ensure no other services are using the same ports (3000, 5001, 5002, etc).
- For any issues, check the logs for each service container:
docker-compose logs <service-name>GET /generate-map
Generates and returns an interactive HTML map visualizing tree density or recommended planting locations.
param(optional): Number of top results or a filter parameter, depending on implementation.
GET http://localhost:5001/generate-map
GET http://localhost:5001/generate-map?param=10- Returns a complete HTML document (map), suitable for viewing in a browser.
GET /generate-pollution-map
Generates and returns an interactive HTML map visualizing pollution levels.
None
GET http://localhost:5002/generate-pollution-map- Returns a complete HTML document (map), suitable for viewing in a browser.
- No authentication is required (for demo/hackathon use).
GreenThumBot was developed by a multidisciplinary team for the Sustainability Hackathon, 2024. All team members contributed to ideation, development, and presentation.
Team Members:
- Blake Harris - Backend Development
- Ben McKenna - Frontend Development
- Jamie Farrell - Documentation & Testing + Procurement of the Doom source code.
- Cameron McCusker - Long-range emotional support
- Mark Moore - Accepting the £30 prize
Special Thanks & Data Sources
- OpenData NI — Belfast Trees Dataset, City Parks, and other geospatial data
- Queen's University Hackathon organisers, mentors, and judges for their support and guidance.
This project is licensed under the terms of the MIT License. See the LICENSE file for details.