Location Heatmap API (Silex Microservice)
Overview
The backend microservice powering the WAVE location heatmap. Built on the Silex PHP micro-framework, it aggregated and served the location/check-in data consumed by the navodariro Angular heatmap front end.
The Challenge
The heatmap UI needed a small, fast HTTP service to collect and return geolocation data points, without the overhead of a full Symfony application.
What We Built
A Silex (silex/silex ~1.0) service composed from Symfony components (Yaml, Config, Security, Validator), Doctrine ORM via the dflydev service provider, a Facebook service provider for social login/data, Twig for any rendered output, and Monolog for logging. Routing lived in config/routes.yml, application bootstrap in application.php, with custom code under src/Gc. The repo shipped a PuPHPet-generated Vagrant + Puppet environment (including a bundled phpMyAdmin) for one-command local setup.
Technologies & Approach
PHP Silex chosen for a minimal, route-centric microservice; Doctrine ORM for persistence to MySQL; Facebook provider for social context; Vagrant/Puppet for reproducible provisioning. The micro-framework kept the geo API lean and deployable.
Outcome / Impact
Provided the live data layer behind the WAVE heatmap, validating a micro-framework approach for a focused geospatial API and showing comfort with both heavyweight (Symfony) and lightweight (Silex) PHP stacks.
Capabilities Demonstrated
- Building lean REST microservices on the Silex micro-framework
- Geospatial data aggregation and serving
- Facebook / social-login integration in PHP
- Reproducible PHP environments with Vagrant + Puppet (PuPHPet)