Skip to main content
Back to all projects

OMSP Document Tracking

A role-based system that replaced a provincial government office’s manual assistance paperwork with a fast, auditable web app.

Firebase Vanilla JS Role-Based Auth Analytics Vercel
My Role Project Manager & Fullstack Developer
Type Team Project
Status Live
Screenshots coming soon Project captures and a full walkthrough will be added here. For now, explore the live site above.

Overview

Built for the Office of the Majority & Secretary of the Sangguniang Panlalawigan of Bataan, this system manages the financial and personal assistance extended to constituents across 14+ Board Members. It replaced manual paperwork with duplicate detection, real-time budget tracking with rollover, e-signature transaction slips, and a full audit trail — all in the browser, no installation.

The Problem

The office processes hundreds of assistance requests every month across 14 Board Members, each running their own staff and ₱70,000/month budget — all tracked on paper, spreadsheets, and printed slips. There was no fast way to catch duplicate or cross-office aid, budgets were calculated by hand, official slips and reports were retyped from scratch, and there was no audit trail of who encoded what.

The Solution

A centralized, role-controlled web app where each user sees exactly what they should. Staff encode FA/PA records only for their assigned Board Members, budgets are tracked per office with rollover, duplicate and cross-office beneficiaries are flagged automatically, cooling-off periods are enforced, and official transaction slips and reports export in one click — all in the browser, synced through Firebase, with no backend to maintain.

Key Features

  • Role-based access for SysAdmin, Staff, Board Members, and Performance Managers
  • Real-time budget tracking with automatic monthly rollover (₱70k/BM)
  • Duplicate detection and configurable cooling periods per beneficiary
  • Generate and bulk-export official transaction slips with staff e-signatures
  • Full activity logs — every action is auditable

Tech Stack & Why

  • Firebase Realtime Database — Instant sync across staff sessions and zero server maintenance for a small government IT footprint.
  • Vanilla JS (no framework) — Keeps the app lightweight and easy for the office to maintain long-term without a build pipeline.
  • Role-Based Auth — The whole product is about who-can-see-what; access control had to be first-class, not an afterthought.
  • Vercel — Free, fast static hosting with simple deploys for a browser-only app.

Biggest Challenge

Concurrent edits without losing work. The original sync used a single global timestamp, so any user's save made everyone else's next save look stale — forcing a blocking refresh that discarded unsaved form work. The fix was a silent merge-and-retry: re-pull fresh cloud data, re-apply the user's pending changes per-key (last-write-wins per key, not for the whole dataset), and retry once. A tab-session snapshot cache then cut full re-downloads (~1.3–2 GB/month) down to a lightweight timestamp check.

Results & Impact

  • In daily production use across 14 Board Member offices and ~10 active staff
  • Report and slip generation went from a retyping chore to one-click export
  • Surfaced cross-office duplicate assistance that was previously invisible
  • Kept hosting and database on a near-free footprint after the caching fix

What I Learned

Leading a real government deployment taught me that clarity of roles and a trustworthy audit trail matter more than fancy features — people need to trust the numbers. Scoping the budget-rollover logic carefully up front saved us from painful edge cases later.