Line-by-line explanations on how I built this.