Back to Projects
KarbonKita
KarbonKita is a gamified climate-action platform for Indonesian cities — AI-verified waste sorting, green mobility tracking, and Eco Points redeemable for MSME vouchers with real-time Xendit payouts.

Overview
KarbonKita (small actions, big impact) is a climate-action platform built as two apps in one repo: a Flutter + flutter_bloc + Dio mobile app and a Laravel 12 + MySQL + Sanctum API, with server-side Gemini Vision and Xendit Disbursement. My main contribution is the backend.
Architecture & Integrity
Dumb frontend, smart backend — AI validation and payouts never trust the client. All responses use a {success, message, data} envelope, and financial flows run in DB transactions with row locks plus dual ledgers (point_transactions + disbursements).
- Waste Mission + Anti-Fraud (backend): photo verification with MIME + SHA256 duplicate check (409 on duplicates), best-effort EXIF, Gemini confidence ≥85 rewards XP and Eco Points.
- Green Mobility (backend): GPS track sync (distance, duration, route), CO2 math at 210 g/km, anti-cheat above 30 km/h, mobility logs + carbon stats.
- Gamification (backend): XP and levels (Earth Warrior), daily streaks, Saga quiz map, RT/RW leaderboards with composite indexes.
- Circular Economy (backend): voucher marketplace, QR claim codes, merchant scan redeem, automatic Xendit payout to store balance with rollback on failure.
- Roles + Donations (backend): citizen, verified MSME (KTP/NIB + bank account), admin verification queue, public donation campaigns with Xendit webhooks, Docker + CloudPanel deployment.
Technologies
FlutterLaravelMySQLGemini APIXenditSanctum
Screenshots







