How this site is built
This portal is designed and built using the following principles:
- everything has to be version controlled
- adopt KISS principle: Keep It Simple and Stupid.
- build a static website
- use open source tools whenever possible
Open source/Free tools and services we use
- git : a distributed version control system.
- Hugo : a static site generator.
- GitHub Pages : a service by GitHub whereby you can have a website served on the Internet for every user, organization or repository.
- GitHub Organizations : a service by GitHub for groups of people.
- Travis CI : a hosted, distributed continuous integration service used to build and test software projects.
- R : a free software environment for statistical computing and graphics.
- Tidyverse : is an opinionated collection of R packages designed for data science. Among them:
- dplyr : a grammar of data manipulation, providing a consistent set of verbs that help you solve the most common data manipulation challenges.
- readr : a fast and friendly way to read rectangular data (like csv, tsv, and fwf).
- ggplot2 : a system for declaratively creating graphics, based on The Grammar of Graphics.
- Google Charts : an interactive Web service that creates graphical charts from user-supplied information.
- Netlify : offers hosting and serverless backend services for static websites.
This website is a statically generated one: there is no CMS, no database, no authorization server behind it. It is just a bunch of HTML pages. These pages are generate by Hugo either out of plain Markdown or R Markdown.
Hugo is a static site generator, i.e. it takes a description, generally a template, of the pages you want to build and generates the relevant HTML.
We use git as our (distributed) version control system. And we selected GitHub as the central server for our git repositories.
In order to group all our repositories we created a GitHub Organizations called
euctrl-pru. It is a sort of company/team account.
We have one repository for the source pages, portal, where you can find and follow all we publish.
Once we submit a change to the (master branch of the)
portal repository, Netlify triggers a build of the website and publishes it.
Continuous Integration and Deployment
We use the continuos integration service of Netlify to automatically
build every commit in our release branch (any branch name starting with
2016<2 digit month number>-release). These build can include tests to be executed in order to garantee a certain level of quality…
masterbranch commit and if successful deploy the generated site. This is a way to publish our releases and make them available on the Internet. (Less work for the Humans more boring work for the Machines)