← Crafts
Redress preview

Redress

Civic pilot Full-stack engineer

Community complaint filing and barangay case management — citizens, lupon members, and admins share one auditable complaint graph.

Problem

Barangay dispute resolution spans citizens, Lupon Tagapamayapa members, and admins — each with different permissions. complain-ant (portfolio name: Redress) models complaints as the center of a relational graph: barangays, documents, history, and participants all link back to a single case record.

Data model

The README documents table roles explicitly. Complaints carry complaint_status values (PENDING, IN_PROCESS, RESOLVED, DISMISSED) with history rows for every lupon action. Admin views use drag-and-drop boards for case triage.

What it covers

  • Citizen complaint filing with evidence attachments
  • Lupon member status updates with audit history
  • Role matrix across citizens, lupon, and admins
  • Dashboard views for SLA and case volume
lupon accepts agreement no merit PENDING IN_PROCESS RESOLVED DISMISSED
Complaint resolution
export type ComplaintStatus =
  | 'PENDING'
  | 'IN_PROCESS'
  | 'RESOLVED'
  | 'DISMISSED';

export type ComplaintRow = {
  id: string;
  case_title: string;
  description: string;
  status: ComplaintStatus;
  barangay_id: string | null;
};
Redress complaint board placeholder
Screenshot placeholder — lupon kanban and citizen complaint detail.