WarungHemat: Hyperlocal Food Rescue Mobile App

Context

IBM Mini - Hackathon (Capstone Project)

My Role

Sole Mobile Developer

Duration

7-Day Hackathon

Tech Stack

Flutter, Appwrite, MaterialUI, Riverpod

WarungHemat App Screenshot

Project Overview & Business Context

"WarungHemat" is a mobile application developed for a 7-day IBM mini-hackathon, designed to address two critical socio-economic challenges in Indonesia: the financial vulnerability of culinary Micro, Small, and Medium Enterprises (MSMEs) and the high rate of food waste. Indonesia discards up to 48 million tons of food annually, resulting in economic losses of up to Rp 551 trillion per year.

The app acts as a hyperlocal bridge, connecting MSME merchants with surplus food to local consumers seeking affordable meals. The primary goal was to rapidly develop a Minimum Viable Product (MVP) that demonstrates the concept's feasibility and potential for positive social impact through a user-centric and technically sound solution.

My Role & Key Contributions

As the sole developer, I was responsible for the end-to-end design, development, and implementation of the entire Flutter application within the 7-day timeline. My key contributions focused on delivering the core MVP features:

Dual-Role Authentication System

Implemented a secure authentication flow using Appwrite, supporting distinct roles for 'merchant' and 'consumer' to manage access and functionality.

Geo-Location Discovery Feature

Developed the core consumer feature to automatically display nearby surplus food, sorted by proximity, by implementing client-side distance calculations.

Merchant Food Management

Created an intuitive interface for merchants to manage their profile, upload surplus food items (name, price, quantity), and update item status (available/sold out).

Efficient Database Architecture

Designed and implemented a normalized database schema in Appwrite with separate collections for users, profiles, and food items to ensure data integrity and scalability.

Technology Stack

Frontend & State Management

  • • Flutter (Cross-Platform UI)
  • • Dart (Programming Language)
  • • Riverpod (State Management)
  • • Material 3 (Design System)
  • • geolocator (GPS Services)
  • • go_router (Navigation)

Backend (BaaS)

  • • Appwrite Authentication
  • • Appwrite Databases
  • • Appwrite Storage
  • • Normalized Data Collections
  • • Role-Based Security Rules

Design & UX

  • • User-Centric Design
  • • Intuitive Merchant Flow
  • • Passive Discovery for Consumers
  • • Psychological Color Palette
  • • flutter_screenutil (Responsive UI)

Technical Challenge & Solution

Client-Side Geo-Location Query Implementation

Problem: Appwrite, the chosen BaaS, lacks native geo-query capabilities (e.g., "find all documents within a 5km radius"). This was a critical blocker for the app's core feature.


Solution: I engineered a pragmatic client-side solution. Instead of storing a geopoint, merchant locations were stored as separate `latitude` and `longitude` float attributes. The Flutter app then performs the following logic:

  1. Fetches the user's current GPS coordinates using the `geolocator` package.
  2. Queries Appwrite to retrieve all available food items.
  3. Locally, on the user's device, it iterates through each item, calculates the distance between the user and the item using `Geolocator.distanceBetween()`.
  4. Sorts the entire list based on the calculated distance before rendering it in the UI.

This approach, while not ideal for massive datasets, was a perfect and rapidly implementable strategy for an MVP, demonstrating problem-solving under tight constraints.

Project Outcome & Professional Achievement

Successfully delivered a fully functional full-stack mobile application MVP from concept to completion within a 7-day hackathon. The project effectively demonstrates a solution to a significant real-world problem through rapid, focused development.

Key Technical Achievement: The primary achievement was overcoming a critical backend limitation by architecting and implementing a client-side geo-query solution. This showcases strong problem-solving skills, adaptability, and the ability to deliver core functionality under pressure and technical constraints.