Kelontong.id

AboutJuly 2025

18· Software EngineeringNot recently updated·Academic project, team of 5

An offline-first Flutter inventory app for Indonesian UMKM, built with no backend at all because an app that needs connectivity to check stock is an app that fails exactly when a shop is busiest.

mobileoffline-first

Source ↗

Home pageBrowse
The home screen, grouping stock by category with a color-coded safe/low/out badge on every item card.
Add itemAdd
The add-item form: a photo, name, category, stock with increment/decrement, a price, and a description.
Item detailDetail
A saved item's detail view, with edit and delete actions underneath it (edit is still UI-only for now).
Write-up

Kelontong.id is an inventory app for Indonesia's UMKM (micro, small and medium businesses), built with a team of five for the Teknologi Berkembang course at the Information Systems Department, ITS. The audience is specific and it shapes everything: warung and small shop owners, many on low-end Android phones with patchy or metered data. That is why there is no backend at all, an architecture that would be a mistake for a funded startup and is the right call here.

A shop owner sets up their store profile once (name, owner, address, saved via Shared Preferences), then adds, searches, edits and removes products from a home screen that groups them by category and flags stock as safe, low or out based on quantity. The automatic flagging is the one feature that turns an inventory list into something that prompts a restock, instead of leaving the owner to read quantities and do the comparison themselves.

The inventory itself is serialized to JSON and written to a local text file via path_provider, decoded back on the next run. That holds up reliably on Android, on both the emulator and a physical device, but not in the web build, where the same file does not persist correctly across an add, edit or delete. That is a genuine unresolved bug as of this progress report, kept here rather than quietly dropped.

Things to underline
  • Built entirely offline: a shop profile via Shared Preferences, and inventory serialized to a local JSON text file, no backend at all
  • Flags each item's stock as safe, low, or out automatically based on quantity, color-coded right on the home screen
  • Built as a 5-person team for a course project, with Create/Read/Delete shipped and Edit still in progress
  • Inventory persistence currently only holds up on Android; the same local-file approach doesn't read or write correctly in the web build
Built with
FlutterDart
GitHubdarrellathaya/Kelontong.id
  • Dart 63.0%
  • C++ 20.5%
  • CMake 12.3%
  • Swift 1.8%
  • Other 2.4%
Commits
2
Status
Not recently updated