The Technology
Contents
Front end
The front end is built with VueJs. If you are new to VueJS, there is video tutorial series
for FREE DOLLARS! Put together by Jeffery Way at Laracasts.
- Vue-CLI to scaffold out WebPack 2 and my directory structure
- WebPack 2 for module bundling & build process
- Vue-Router for URL routing
- Vuex for state management
- Vuex router sync for keeping router in sync with storage.
- ChartJS for pie, bar, & line charts
- Leaflet for maps
- Leaflet.markercluster for clustering points on a map
- Leaflet.heat for heatmap effect on maps
- MomentJS for date formatting and manipulation
- Pikaday for date pickers
- Eric Meyer’s CSS Reset for css reset
- Lodash for utility
- Axios for async promise based API calls
Back end
I’m a PHP developer so I built the backend in PHP. I like the Laravel PHP framework, so I used that.
If you’re new to Laravel, guess what? There is ANOTHER video tutorial series to help you get started with Laravel. Also for FREE DOLLARS by Jeffery Way. Whatta guy! If you’re looking for a book on Laravel, well lucky you. Matt Stauffer recently published his book Laravel Up & Running. I bought it. It’s good. I’m using MySQL for my database.
As mentioned in the story, the data is being downloaded from a json feed provided by data.seattle.gov. There is a job scheduled that will download collisions from the past 150 days, check for changes, then update existing collisions and create new ones. I’d like to write a blog post sometime that talks more about the import process, how I transformed the data, and challenges I ran into. This is on my to do list.
Vendors
- WebFaction for hosting the front end VueJS app
- Digital Ocean for hosting the back end Laravel app serving up the API.
- Laravel Forge for server provisioning
- Envoyer.io for deployment
- CloudFlare for DNS
- BitBucket for Git repository
- Gandi for domain registration