Nov 2016 - Apr 2017
Today in Destiny was a website that displays a summary of the available activities and events in
Bungie's video game,
Destiny. It was accompanied by a
Twitter bot that tweeted out a summary of
the weekly activities at the beginning of the week. I built Today in Destiny to learn
more about modern web development and specifically chose to avoid the .NET stack (e.g. ASP.NET
MVC) as I was already familiar with it.
The frontend is built using React and a flux pattern
implementation called Alt. The backend is a
Node.js application built on top of
ExpressJS that exposes a REST API to the frontend.
The backend queries the Bungie.net API
to retrieve data about the active events in Destiny. Because both the backend and frontend are
written in JavaScript, the initial render of the React DOM can be performed on the server to
reduce page load times ("server-side rendering"). I used Gulp
to implement a custom build process that transpiles ES2015 JavaScript into backwards-compatible
JavaScript using Babel, allowing me to use modern language
features while still target older browsers. The build process also downloads and extracts the
Destiny manifest (static data pertaining to the game), compiles LESS stylesheets into CSS,
minifies images and bundles the app using Browserify. To
improve local iteration speed, the build process also supports running in a "watch" mode that
executes the above steps and reloads the browser using
Browsersync whenever a source file changes. The source
code is hosted in GitHub and any
commits to the master branch automatically trigger a deployment to
Heroku.
Languages | JavaScript, LESS |
Frameworks | React, ExpressJS |
Tools | Node.js, Heroku, Gulp |