Skip to content

Development technologies

Brian Pan edited this page Feb 18, 2017 · 4 revisions

This page introduces some of the technologies used in this project.

WordPress Installation

  • Bedrock - The website is built from the Bedrock WordPress boilerplate as a starting point.
  • Composer - Bedrock includes Composer for mananging PHP dependencies.

Front-End Tools

  • Sage - This website's theme is based on Sage. The theme files are in the directory: web/app/themes/thepoliticalsage.
  • Forty by HTML5 Up - The website's responsive design is based on a template called Forty.
  • Sass - Sage includes Sass for creating CSS stylesheets. Sass is an extension of CSS that adds features like variables, imports, and hierarchical (nested) selectors.
  • npm - Sage includes npm for managing front-end dependencies.

Version control

  • Git - A distributed version control system.
    • Version control is a system that manages changes to the files- tracking history and adding changes (via branches and commits).
    • Distributed means there is no "central" repository, except by convention. When you clone a repo to your laptop, that clone is a complete mirror of the entire repository. As far as git is concerned, they are both equally valid versions of the same repository. (Forking is creating an entirely new repository by starting from a copy of an existing one.)
    • Read the Pro Git book for a great overview.
  • GitHub - A website that hosts git repositories. GitHub provides pull request code reviews, notifications, and other workflow tools (like this wiki).

Deployment

  • Docker - Docker is a container platform. It allows us to deploy the same container locally or to production. When code runs inside a Docker container, it sees the exact same environment no matter where it's deployed. In our case: Linux, PHP7, MySQL, etc.
  • Travis CI - Automated test and deploy. When your pull request is merged, Travis CI will automatically build and deploy the code.