Web Development MVC Project

A rewrite of a management system for a marketing mailing platform was required. The existing system (which I wrote ~8 years previously) had become bogged down with legacy code and shifting business identities.

It was decided to create the new project using a Laravel (PHP) backend and a Vue.js frontend. The CSS was written in SASS and utilized Bulma, a flexbox based framework. The code deployment was setup using envoyer.io.

Skills & Technologies

PHP
Laravel
Vue.js
Webpack
Bulma
SCSS
Git(hub)
axios
MySQL
pusher
envoyer

Frontend

Since the the system consisted of many large parts, the decision was made to follow a single page app (SPA) approach but with an SPA for each “section”. This was implemented using vue-router and vuex (think redux) for state management. All data was obtained using JSON calls to the backend via the axios library.

Use was made of the pusher realtime pub/sub websocket based library. To broadcast event messages.

The code was written in ecmascript 6, to the “standard” style.

Backend

The backend utilized Laravel 5.4 intially and updated through to 5.8. It was developed using a TDD (phpunit) process. The code is structured using a domain-driven design (DDD) approach. This we felt was required because actions could be performed from several different endpoints for example: UI HTTP, Token based API & Console Commands.

The code was written to the PSR2 standard.

Team

This project was created by a team of 3 people with me as the lead. All code commits were reviewed as pull requests.