1. Project management and documentation#

1. Meeting the professors and the students#

During the first class, we had the opportunity to meet the students of the class. This class is open to students from different faculties such as polytechnic, computer science, biology, physics, or bioengineering (like myself). We enjoyed some activities to break the ice wich enabled us to get to know our fellow students better, something that might become important during the rest of the term when we’ll need eachother’s help.

2. Documentation#

2.1 What is Git and why do we use it?#

Our first task was to set up and use Gitlab, a version control and task management software based on Git, that will enable us to document our work, and most importantly to make it publicly available. The idea is to create an environment where all processes are documented, allowing people to get access to not only the results of other people’s work, but also to the path they took to get there. This is great for learning from people’s mistakes, or to find a solution to a problem, since there’s a very great chance someone else already encountered the same problem and found a solution.

We use Git to work on a ‘working copy’ of an online project. This means we can document our work on our pc without having to be connected to the server the whole time. We work on our local copy, then commit and ‘push’ (~uploading) these changes to the server when we’e done. We do this in the Git Bash terminal, using the commands detailed below.

2.2 Setting up and using Git#

To set up Git, we had to install it, configure it, and set up an SSH key. I followed this tutorial

It is already explained well in the tutorial so I won’t go into further detail here.

2.3 important Git commands#

  • cd (martin.molitor) This command tells git to change the working directory. I need to use it everytime I reopen Git Bash otherwise it doesn’t know where to look

  • git pull This command downloads the latest version of the online project. I need to use it everytime I have uploaded an image and I want to insert it in my documentation, otherwise Git doesn’t recognize the file path

  • git add -A
  • git commit -m ‘description of the operation’ (ex. updating my documentation on 3D printing)
  • git push

These last 3 commands stage, commit and push changes in the project. This means uploading them to the server.

2.4 HTML vs markdown language#

“Hypertext Markup Language (HTML) is the standard markup language for documents designed to be displayed in a web browser. It defines the content and structure of web content.” (Wikipedia)

Since HTML is a complicated markup language, it is quite burdensome to write in. This is why we use the much simpler Markdown language. I write my content in Mardown using a text editor (VSCodium in this case) and MkDocs converts the mardown language to HTML for it to render correctly on the website.

I used this tutorial to learn the basics of Markdown.

2.5 compressing and uploading images#

Before uploading an image, we have to compress it so it doesn’t take up too much space on the server. I use the GIMP for this purpose.

1. Open GIMP and upload the image. To do this click file > open > select your image#

step1

2. Click image > scale > scale it down to the point where the highest of the 2 values is below 700 pixels. This is more than enough#

step2 step3

3. Export the picture as a JPEG. To do this click file > export as > choose a name and make sure to export is as a JPG#

step4

4. Turn the quality down (70 is more than enough) and then click export#

step5

2.6 Errors and problems#

  1. When I tried to commit my changes for the first time, I got the message ‘fatal, not a git repository’. This problem is solved by using the ‘cd’ command detailed in point 1.3.1

  2. I encountered some trouble with uploading images. When I tried to commit changes made on the local copy containing links to images, Git tells me it doesn’t recognize the file path to the image I uploaded on the server.

image_error

This is solved by using the ‘git pull’ command, as detailed in point 1.3.1

3. Project management#

In this class we learned some tips and tricks for how to manage our Fabacademy projects. To goal of this unit is to learn how to accomplish your goals withing a limited timeframe. To achieve this, we were taught about:

3.1 Modular & hierarchical planning#

This is the idea of this planning method is to divide your task into smaller independent modules, that each take a limited amount of time to complete.

3.2 Supply-sided instead of demand-sided management#

Doing supply-sided project management means looking at the (weekly) amount of time you are able/willing to spend on the project, and then assign a certain part of this time onto each task. The idea behind this is to let time control your tasks instead of the other way around. I have to say that for now I am still sceptical about this methor for 2 reasons:

  • I’m a perfectionist, so if I am not completely satifsied with my results, I want to spend more time to improve them.
  • The amount of time needed to complete a task is often unpredictable, so being able to adapt is more important to me than precise planning.

3.3 Spiral and parallel development#

  1. The idea of spiral development is to initially create a very simple project idea, but to focus mainly on a simple, strong and functioning foundation. Once this has been achieved, we add a new functionality to obtain a more complex project and so on. This method makes sure that you will at least have a finished product for the project deadline.

  2. Parallel development is when different parts of the project are made at the same time. In the end, these parts are combined to create a fonctioning result. This can be a great method when working in groups, because each person or subgroup can focus primarily on one part/subject.