SmartGov Checklist

Inspiration

The idea came from a personal frustration that almost every Filipino can relate to. A family member once took half a day off work to process a Barangay Clearance, only to find out upon arriving that they were missing one supporting document. They had to come back the next day — another half day gone.

That moment stuck with us. It was not a failure of effort. It was a failure of information. There was no single place to check what documents were needed, how long the process would take, or which nearby office had the shortest queue. People were navigating government processes through word of mouth, outdated Facebook posts, and trial and error.

We built SmartGov Checklist because no one should lose a day of work over a missing photocopy.


What We Learned

Building this project taught us more than we expected — both technically and about the communities we were designing for.

  • Government processes are more complex than they appear. Requirements vary by municipality, change without notice, and often depend on the purpose of the document. Mapping these dependencies forced us to think carefully about data modeling and edge cases.
  • Community data is powerful but fragile. Crowdsourced waiting time data is only as useful as the volume and accuracy of submissions. We learned to design for data sparsity — showing confidence indicators when estimates are based on few reports.
  • Geospatial filtering has real UX implications. A radius too wide overwhelms users. A radius too narrow returns nothing. Finding the right default required user testing and iteration.
  • Accessibility matters from day one. Many of our target users are first-time smartphone users or elderly citizens. We learned to prioritize clear language, large tap targets, and minimal steps over feature richness.

How We Built It

SmartGov Checklist is a web application built with a three-layer architecture.

Frontend We built the user interface as a responsive web app, focusing on mobile-first design since most users access the platform via smartphone. The checklist generator uses a decision-tree structure to surface the correct document requirements based on the user's selected purpose.

Backend The server handles checklist logic, user session tracking, and community data aggregation. Document requirements and process dependencies are stored as structured data, making it straightforward to add new use cases over time.

Database We designed normalized data models for documents, offices, user progress records, and community-submitted reports. Geospatial queries use latitude and longitude coordinates with radius filtering to return nearby offices sorted by estimated wait time.

Community Contribution Layer After completing a transaction, users can submit their actual processing time and experience. These submissions feed into a rolling average that continuously improves the system's estimates.


Challenges We Faced

Sourcing reliable baseline data There is no centralized, machine-readable database of government office locations or processing times in the Philippines. We had to manually research and encode initial data for each document type, cross-referencing official agency websites, advisories, and community forums.

Handling process variability Requirements for the same document can differ between cities, or even between branches of the same office. Designing a data model flexible enough to capture this variability without overwhelming the user was one of our hardest design problems.

Building trust in crowdsourced estimates Users were skeptical of wait time estimates when they did not know where the numbers came from. We addressed this by showing how many community reports each estimate was based on and flagging low-confidence estimates clearly.

Scope management The problem space is vast. We had to make hard decisions about which document types and use cases to include in the first version, resisting the temptation to boil the ocean. Focusing on the highest-frequency transactions — clearances, IDs, and permits — helped us ship something useful without overextending.

Built With

Share this project:

Updates