Inspiration

Illegal dumping in many South African townships is a visible problem that often feels invisible to systems of accountability. Residents see it daily, yet reporting channels are slow, inconsistent, and rarely transparent.

VukaMap reframes the issue. Instead of passive reporting, we create active participation. Residents become Civic Scientists and Kasi Heroes, identifying pollution, verifying cleanups, and competing to improve their communities.


What It Does

VukaMap runs on a simple three-step loop:

1. Spot

A user uploads a photo of pollution.
Azure Computer Vision analyzes the image, detecting waste-related objects and generating a severity score (0–100%) using weighted tags and confidence levels.

A red hotspot is created on the live map, GPS-tagged and timestamped.

2. Resolve

Another user accepts the cleanup mission and uploads an “after” photo.
We extract EXIF metadata and verify the new image was taken within 200 meters of the original location to prevent spoofed submissions.

3. Rank

Once verified, the hotspot turns green.
Users earn eco-credits and move up city-wide leaderboards — making environmental impact visible and rewarding.


How We Built It

Frontend

  • Next.js 15, React 19, TypeScript
  • Leaflet.js for interactive heatmaps
  • Tailwind CSS (mobile-first design)

Backend

  • ASP.NET Core (.NET 9) REST API
  • Entity Framework Core 9.0.2 (code-first migrations)
  • SQLite (development) with a migration path to PostgreSQL for production

AI & Validation

  • Azure Computer Vision for image analysis
  • MetadataExtractor for EXIF GPS validation
  • Haversine formula for geospatial distance checks

The “AI scanning” animation reflects real backend analysis, not just UI polish.


Key Challenges

GPS Drift

A strict 50m validation radius rejected legitimate cleanups due to mobile GPS inconsistencies.
We expanded to 200m and prioritized EXIF GPS over browser geolocation.

Defining “Dirty”

Severity is subjective.
We weighted tags differently (e.g., “landfill” > “litter”) and scaled scores based on confidence and object count to ensure fairness.

Framework Stability

Using .NET 9 required strict dependency control.
We pinned EF Core to v9.0.2 to avoid compatibility issues with .NET 10.

Hackathon Time Limits

We prioritized the core verification loop first, then layered gamification.


What We Learned

  • AI requires filtering. Vision APIs return dozens of tags — careful tuning is essential.
  • GPS data is inconsistent. EXIF metadata proved more reliable than browser location.
  • Gamification works. Leaderboards drove stronger engagement than points alone.
  • Code-first migrations accelerate iteration. Rapid schema updates were critical under time pressure.

Impact

VukaMap turns smartphones into civic tools.

It provides municipalities with granular data on waste patterns, increases public accountability, and restores neighborhood pride through visible progress.

This is more than a cleanup app.
It is a framework for data-driven, community-led environmental action.

Share this project:

Updates