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