Skip to content

2. Project management

This week’s assignment:

work through a git tutorial

build a personal site in the class archive describing you and your final project

Luckily, I completed getting my site up and running in Week 1 (see documentation here). However, this week I also had to brainstorm more ideas for my final project and learn a little more about Git.

Potential Final Project #002

In a similar vein to my Potential Project #001, for #002, I am planning another weather-related project, an Outdoor Weather Station.

A list of desired features and a quick sketch

The Outdoor Weather Station will feature:

  • An ventilated, waterproof outdoor enclosure (e.g. with a Stevenson screen) that will house the electronics, along with a post to hold it in the ground (it could also be roof-mounted or otherwise mounted)

  • The station will run on a custom PCB (e.g. satshakit) connected to the WiFi to transmit sensor data to an external weather service (e.g. Weather Underground) &/or to a mobile interface to view data

  • The station will be solar-powered, using a small solar panel mounted on the roof of the enclosure, along with a power-management system and rechargeable battery to keep the system self-powered during cloudy weather and at night

  • The sensor will be based on the BME280 Temperature, Humidity, and Pressure sensor

I got many useful ideas for this design from online research, including:

Git Tutorial

To learn a little more about how Git works at a fundamental level, I checked out this tutorial. While I did learn plenty about how version control is managed by Git and services that use it, including GitHub and GitLab, which I use to update this very site, my favorite part was:

Git will make you think that the gods of speed have blessed Git with unworldly powers

The essential lesson is:

The basic Git workflow goes something like this:

You modify files in your working tree.

You selectively stage just those changes you want to be part of your next commit, which adds only those changes to the staging area.

You do a commit, which takes the files as they are in the staging area and stores that snapshot permanently to your Git directory.

Version control systems ensure that all changes to a repository of files are properly documented and can be reverted if necessary. Older versions of a file are archived and can be recovered if necessary.

Other version control services include Google’s Cloud Source Repositories and Microsoft’s Azure DevOps. Both have free plans for individuals and teams.