←Back to Works / Projects
Mobile//Full-Stack
LIVE SYSTEM
MobileFull-Stack

Community Connect

Civic Engagement Platform with Firebase Auth & Supabase RLS

Stack:FlutterReactFirebase AuthSupabase
YOUR ROLE & SCOPEFull-Stack Developer
TIMELINE4 Weeks
CORE CONSTRAINTSMulti-platform support (Android + Web) with strict row-level security for citizen grievance reports
DEPLOYMENTFlutter + React + Firebase + Supabase
error_outline

// 01. THE PROBLEM

Citizens struggle to report ward-level civic issues directly to local representatives with transparent status tracking.

account_tree

// 02. SYSTEM ARCHITECTURE & PIPELINE FLOW

STAGE 01AUTH

Firebase Phone OTP Authentication

Authenticates citizen phone numbers securely.

STAGE 02REPORT

Geographic Grievance Submission

Captures location coordinates, photo proof, and grievance classification.

STAGE 03SECURE

Supabase PostgreSQL RLS Verification

Passes auth JWT to Supabase RLS policies to restrict editing to report creators.

STAGE 04TRACK

Real-Time Status Synchronization

Broadcasts resolution state updates to citizen dashboard.

balance

// 03. TECHNICAL APPROACH & DECISION MATRIX

01Firebase Auth + Supabase RLS Bridge

✓ DECISION CHOSEN

Firebase Phone Auth JWT passed to Supabase SQL RLS Policies

Leveraged Firebase phone auth while utilizing Supabase declarative SQL authorization rules.

✕ REJECTED ALTERNATIVE

Custom Authentication Server

Increased operational burden without providing additional security benefits.

terminal

// 04. CORE ARCHITECTURAL LOGIC

Passing Firebase Auth JWT token to Supabase client for Row Level Security.

auth/supabase_rls_bridge.ts
123456789101112131415
import { createClient } from '@supabase/supabase-js'; export function getAuthenticatedSupabaseClient(firebaseIdToken: string) { return createClient( process.env.NEXT_PUBLIC_SUPABASE_URL!, process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!, { global: { headers: { Authorization: `Bearer ${firebaseIdToken}`, }, }, } ); }
task_alt

// 05. TRADE-OFFS & HONEST REFLECTION

Dual-backend integration required syncing JWT tokens between Firebase and Supabase, but provided robust security for citizen reports.

query_stats

// 06. CONCRETE OUTCOMES & VERIFIED METRICS

PostgreSQL
Row Level Security
Declarative data access rules
Flutter & React
Cross-Platform
Android and Web client parity
Real-Time
Status Updates
Supabase WebSocket listeners