Skip to content
rootnine
Work

New Dongtan Church Platform

In service

A church-wide portal and mobile app driven by an eight-tier permission model

Web portal + iOS · Android apps · 2025 — Present

Overview

This project replaced a static church website and a scatter of disconnected tools — an externally hosted booking page, paper reports, Google Forms — with one permission-aware system. Members book rooms and studio slots, read sermons and bulletins, and submit applications; cell-group leaders file a weekly report that moves up the chain for review by village leaders and pastors.

Permissions are the core of the design. Eight tiers — guest, member, sub-shepherd, shepherd, village leader, pastor, church admin, system admin — are enforced at the Postgres RLS and RPC layer. The public homepage stays open to non-members while functional areas gate on role, and the permission logic lives in one place so web and mobile share the same rules.

The web portal and the native app run side by side. Mobile shipped through version 1.44.0 to Google Play, ONE Store, and the App Store, and urgent fixes that should not wait for review go out over a self-hosted OTA channel.

Engineering highlights

Access control pushed down to the database

The eight tiers are not settled by conditional rendering. They are re-checked in Postgres RLS policies and security-definer RPCs, so bypassing the client does not open the data.

Reporting with a real approval chain

Weekly reports travel from cell group to village to pastor, with a review-and-return inbox and statistics dashboards. Work that used to move on paper and in chat threads became a traceable flow.

Form builder and application pipeline

Admins assemble form fields themselves; responses come in through tokenized public links. Deadlines and duplicate-submission blocking are built in, plus a bridge that turns an application into an education enrolment.

Two distinct booking domains

Room booking supports recurring schedules. Studio booking runs on its own rules: 30-minute slots, a six-month booking window, and blackout periods.

Security reviews kept as documents

Separate written reviews cover RLS/RPC, SSR authentication, and production configuration, backed by audit-log and login-history admin screens.