Week 01 - Principles and practices, Project Management
The first lecture was held on January 22nd and this page documents the assignments of week 01.
- Plan and sketch a potential final project
- Read and sign the student agreement and commit it to your repo
- Work through a git tutorial
- Build a personal website describing you and your final project
Plan and sketch a potential final project
All documentation on my final project can be found on this subpage.
Read and sign the student agreement and commit it to your repo
The student agreement template is available on the global fabacademy webpage.
I copied the file to my local folder, read it carefully and signed with my name. Then I pushed it to my repository, so here it is.
Work through a git tutorial
I decided to watch a series of GitLab tutorials on Youtube. Here is the playlist
To begin with I learned how to create a project and how to commit and push a file from the local folder to the repository at GitLab using the following commands:
Next I learned how to fork a project/repository, which means copying a project. The tutorial explains it using the GUI, but it should also work using the command line. The SSH-video I skipped, as I already have one created.Then I learned about GitLab Runner, which is the integration service for running jobs and sending results back to GitLab and how to set it up. In the settings of a project under CI/CL there you find "Runner" which manages the project runners.
The last tutorial video explains how CI/CD works. (B.t.w. it stands for continous integration and continous delivery.)
I learned how to write a simple script to be run each time some changes are commited to the repository. This is done by placing the .gitlab-ci.yml file in the root of the repository and connecting it to the runner.
One error occured, that I could solve by searching for the error message from the job that failed.
The problem is that in the config.toml file of the GitLab Runner the pwsh
is not recognized in the windows environment. Changing it to powershell
solved the issue.
Build a personal website
Here comes the documentation on what steps where needed to set up the homepage for the FabAcademy 2025 using GitLab and Markdown. This approach is what was recommended by my supervisor and as I have very little experience in webdesign, I followed his advice.
Markdown is a convenient and time-saving approach on quickly creating webbased content. The files are saved as *.md in my GitLab repository and will be converted into html-format by an automatic process. The html-files are then visible to the visitor using the url of my homepage.
A good guide on the syntax of Markdown can be found here, which I used a lot to customize my pages.
The tutorial I found most helpful, is this one on Youtube.
In advance
I already had different software setup in my computer. This included VSCode and Python.
It is not required using VSCode and editing the *.md files is also possible directly in the repository, but pulling and pushing the files from the repository to my local storage and back again and using VSCode for editing is very convenient.
Connecting the GitLab repository to VSCode
Last year I set up a webpage using GitHub and VSCode, but GitLab behaves a little bit different. My instructor told me that to connect the repository to VSCode I would need a SSH key. As I haven't worked with SSH keys before and therefore didn't have one available, I needed to learn how to create one. This page was very helpful and explains it well.
Once the key had been created on my local drive, I copied the content of the public key into my clipboard and went to the GitLab repository and into the preference menu - SSH keys.
Here I could add a new key and paste the public key into the window, name it with a title and adjust the expiry date.
Then, back in my repository, I could click on the blue "Code" button and select "Open in your IDE" - "Visual Studio Code (SSH)".
Now the repository got connected to VSCode and I could see the template homepage there.
Creating the markdown homepage
First I deleted all files from the template and then I set up the environment for markdown-materials using the terminal.
Next I created the new markdown page.
Now the main structure is there and files can be edited and added.
The index.md is the frontpage and the mkdocs.yml is basically a settings file. It is good to add some basic information the the settings:
site_name: Jóhannes FabAcademy
site_url: https://fabacademy.org/2025/labs/isafjordur/students/johannes-andresson/
theme:
name: material
Publishing the markdown pages into html
As I mentioned before, GitLab will take care of running the program needed to convert the .md* files into .html files and create the actual webpage. To get this up and running, a CI-script - placed in the root of the repository - is required. It is named .gitlab-ci.yml*. Once I had this file created I used these instructions to copy and paste the content of the file, save it and upload it together with the rest of the new files. After a while the changes had been processed and the new, raw homepage based on markdown was online.
Finetuning the homepage using packages
When everything was finally running, I started adding supbages and content. I also added some features and made design changes to the homepage by modifying the mkdocs.yml file (according to the Mkdocs-material documentation).
One thing that is good to know is the format of the url, when using hyperlinks or inserting images. Make sure to use the relative format depending on the location of the webpage in the directory.
Excluding files from the translation process
When some files are not ment to be included in the git version control, it is a good idea to exclude them. This can be done by placing a .gitignore file in the root directory. There you can define certain file types, folders or specific files to be excluded.
In my case I used the .gitignore file from a previous project, which I copied originally from my supervisor Svavar.