Barangay certificates · Web & mobile

Luna CertSys.

A certificate system for Barangay Luna, Surigao City, Philippines, built as a web admin panel and a mobile app on one database. Residents request, pay for, and track their certificates from a phone, and the barangay reviews and releases them.

MY ROLEFull-stack development · Web admin, mobile app & database
PROJECT TYPELocal government · Brgy. Luna, Surigao City, Philippines
YEAR2025
THE STARTING POINT

A problem worth exploring.

A barangay certificate usually means a trip to the barangay hall: fill in a form, wait your turn, pay at the counter, and come back when it is ready. On the other side of that counter, someone has to keep every request, payment, and resident record straight. Luna CertSys brings the whole exchange into one system, from the first request to the released document.

THE APPROACH

Less friction. More intention.

Give each of the three roles only what it needs. A resident signs up with a photo of their face, and the chairman of their purok approves the account before it can be used. After that a certificate takes a few taps: pick the type, state the purpose, pay with GCash or PayMaya, and watch the status change. Barangay staff work from a web panel where walk-in and mobile requests share one list, with payments and reports beside it, and the database itself decides who can see what.

  • Certificate requests from a phone, with live status and push notifications at every step.
  • Sign-up with a face photo, approved by the resident’s own purok chairman.
  • GCash and PayMaya payments, and certificates issued as ready-to-print PDFs.
  • A web admin panel for residents, requests, payments, and reports exported to PDF.
ENGINEERING

Inside the build.

  1. Resident & chairmanReact Native · Expo · TypeScript
  2. Shared data & accessSupabase · PostgreSQL · Row-level security
  3. Barangay adminVue · Vite · Pinia
Authorize at the database
Residents, purok chairmen, and admins share one database. Row-level security defines what each role can read and change, so permissions apply to both the web and mobile clients.
Follow the whole request
Registration approval, certificate selection, payment, review, and PDF release belong to one workflow. A resident’s status and the admin’s queue refer to the same request.
Demonstrate all three roles
The browser demo shares fictional data across resident, chairman, and admin views. It makes the handoff visible without requiring accounts, live payments, or access to resident records.

Checks & walkthrough

Create a sample request in the resident view, switch to the chairman or admin view, and follow it through review and release. The public demo uses browser data; the client system uses Supabase.

THE WORKFLOW

What the system enables.

Before
Residents filled in forms and followed up at the barangay hall, while staff kept requests, payments, and resident records straight at the counter.
With Luna CertSys
Residents can request, pay, and track from their phone. Chairmen review requests, and staff manage them through release in a shared web panel.
A LITTLE REFLECTION

What this project taught me.

Three roles on one database meant the rules had to live in the database. Once row-level security decided what a resident, a chairman, and an admin could each read and change, both apps became simpler, because neither one had to be trusted to hide anything.

BUILT WITH

Web admin
Vue, TypeScript, Vite, Vue Router, Pinia
Mobile app
React Native, Expo, TypeScript, React Navigation
On the device
Expo Camera, Face detection, Push notifications, Maps
Shared backend
Supabase Auth, PostgreSQL, Row-level security, Supabase Realtime, Supabase Storage
Documents
jsPDF, Expo Print
Payments & email
PayMongo, Brevo
Mobile builds
Expo EAS
Web & mobile source
UP NEXT

PediaSafe

Ward incidents, reported without a name.