← All work
Product · 2014–15

Full-Stack Symfony + AngularJS Web App (Vagrant/Chef)

Overview

A full-stack web-application scaffold combining a Symfony 2.3 REST back end with an AngularJS client, wrapped in a reproducible Vagrant/Chef development environment. The folder name (“turboplay”) suggests a games/media or play-oriented product idea.

Why It Exists

To stand up a modern (for 2014–15) decoupled web app, REST API plus JavaScript SPA, with a one-command, provisioned dev box so the environment was consistent and disposable.

What We Built

A Symfony Standard Edition (2.3) project (src/Acme, src/Gecatalin) whose composer.json pulls in FOSUserBundle, FOSRestBundle, JMS Serializer, Doctrine ORM and a divi/ajax-login-bundle for AJAX authentication, i.e. a JSON REST API with token/AJAX login. A separate client/ directory holds the front end, and a Vagrantfile + Cheffile + boot.sh provision an Ubuntu box (Apache, PHP 5, MySQL via Chef, plus Node, Bower and Grunt for the front-end build) so the SPA and API run together locally.

Technologies & Approach

Symfony 2.3 (Doctrine, Twig, Swiftmailer, Monolog) for the API; AngularJS with a Bower/Grunt build for the client; Vagrant + Chef Solo for infrastructure-as-code provisioning. This mirrors the decoupled REST-plus-SPA pattern seen across the developer’s 2015 projects, here with the strongest DevOps/provisioning story.

Outcome / Impact

A working full-stack build and environment template. It validated the developer’s ability to integrate a Symfony REST API, an AngularJS client, and automated dev-environment provisioning into one project.

Capabilities Demonstrated

  • Decoupled full-stack architecture (Symfony REST API + AngularJS SPA)
  • AJAX/token authentication and serialization (FOSRest, JMS Serializer)
  • Infrastructure-as-code dev environments (Vagrant + Chef)
  • Front-end build tooling (Bower, Grunt)
More work See all →