← All work
Product · 2015

Online Petition App with SMS Verification

Overview

A single-page civic petition app for residents of Năvodari to protest the poor condition of public transport to Constanța. It pairs an AngularJS Material front end with a small PHP backend that persists signatories and integrates an SMS gateway.

The Challenge

Collect verified petition signatures online, capturing name, phone and address with strong client-side validation and SMS confirmation, to present to local authorities.

What We Built

An Angular Material (ngMaterial + ngMessages) form with sidenav layout, live field validation (Romanian-language error messages, regex-validated phone numbers in 07XXXXXXXX format), and submission via $http to a PHP API. The PHP side (papi.php, api.php) handled addUser persistence using RedBeanPHP (rb.php) as a zero-config ORM, plus an SMS integration layer (SmsApi.php, Curl.php, ErrorCodes.php) for phone verification/notifications. Google Analytics tracked engagement.

Technologies & Approach

AngularJS 1.3 with Angular Material 0.8 for a mobile-friendly Material Design UI; PHP with RedBeanPHP for fast persistence; a third-party SMS API for verification. The stack favoured rapid delivery of a focused, public-facing campaign tool.

Outcome / Impact

A complete, deployable petition tool with validated data capture and SMS verification, a tidy example of civic-tech delivered end-to-end on a small footprint.

Capabilities Demonstrated

  • Building public-facing single-page forms with Angular Material
  • Robust client-side validation with localised messaging
  • SMS gateway integration for verification
  • Lightweight PHP persistence with RedBeanPHP
More work See all →