Week 01 — Principles & Practices / Project Management

Goal for Week 01: set up a clean documentation workflow (website + Git) and make my first real edits/commits. This page is written as a documentation log: steps, commands, problems, and fixes.


Week 1 assignment

  • Plan and sketch a potential final project
  • Read, sign (add your name to) the student agreement, and commit it to your repo
  • Work through a git tutorial.
  • Build a personal website in the class archive describing yourself and your final project. Refer to the lecture material for examples.
  • Upload parts 1 and 2 to the class archive.

  • Checklist


    Key idea (how I want to work each week)

    A useful pacing strategy I found:

    Tip: This structure helps reduce stress and keeps progress steady.


    Step-by-step setup

    1) Install Git on macOS

    I followed the official Git install page for macOS. It requires Homebrew. Official guide: git-scm.com/install/mac

    Problem 1: the installation didn’t work smoothly on the first try (I missed a few commands).

    Solution 1: I followed a YouTube tutorial and carefully repeated the missing steps.

    Result: Git installed successfully ✅

    Git installed on macOS YT video
    Screenshot: Git installation confirmation and YouTube video

    2) Understand “good documentation” (examples)

    Before writing my own pages, I studied a few strong documentation examples to understand structure and clarity.

    Clue: It’s easy to get overwhelmed by too many sources. What helped me most was doing one full cycle: edit → commit → push → see website update. After that, the “blur” disappears.


    3) Make the first website edit + commit

    During Global Open Time, Adrian Torres explained the basics of making website changes and committing them correctly. After that session I made my first commit (I even added the word “MASTER” as a test) and saw the site update.

    Mini checklist for a safe edit:

    1. Edit one small thing (a word or heading).
    2. Save and preview (locally if possible).
    3. Commit with a clear message.
    4. Push and verify the website updated.
    First commit on GitLab
    Screenshot: First commit / GitLab history
    Website updated after commit
    Screenshot: Website after update

    4) Clone the repository locally

    Web editing worked, but I wanted a faster workflow: edit locally and push from my computer.

    Problem 2: Git asked for login/password. I expected fablab.io auth to work, but it didn’t in my case.

    Solution 2: I set up a password on gitlab.fabcloud.org and then git clone worked.

    Command (example)

    git clone <YOUR_REPO_URL>
    cd <YOUR_REPO_FOLDER>
    Git clone works Git clone works
    Screenshot: Error and Successful git clone in terminal

    5) Install VS Code

    I installed VS Code to speed up editing and make file management easier.

    VS Code setup
    Screenshot: VS Code installed and ready

    6) Generate an SSH key for GitLab (recommended)

    To avoid repeated password prompts, I generated a dedicated SSH key for GitLab.

    Command I used

    ssh-keygen -t rsa -C "yadigital@gmail.com" -f ~/.ssh/id_rsa_gitlab
    Wrong SSH

    Problem 3: SSH generation didn't fit. Don't know what to do next

    Web SSH

    Solution 3: Study more and check with instructor. Later on I got feedback to check recitation video from the last year or wait for the session on Monday evening


    Practice with Git ( push / pull / SSH)

    Practice with git clone

    Git Clone

    Result: Repository cloned locally ✅


    Practice with git push

    I changed some text in 404.html and pushed it to the remote repository.

    404 local edit 404 push

    Result: Changes pushed to the remote repo✅

    404 final

    What git add . means?

    git add . stages everything I changed in this folder (and all subfolders) for the next commit.


    Git has 3 main states


    Example workflow

    git status                      # see changes
    git add .                       # stage all changes (select files)
    git status                      # now they’re “staged”
    git commit -m "Update week 1"   # save a snapshot
    git push                        # push from local to remote repo

    Safer alternatives (when you don’t want to add everything)

    Tip for my Fab Academy site: be careful with git add . if I have big folders (e.g. node_modules/), exported build folders, or huge videos. Always check first: git status.


    Practice with git pull

    I updated remote file by WEB IDE and commited remotely. Then pulled locally

    Git pull 1 Git pull 2

    Result: Local repository updated with remote changes ✅


    It can also be done step-by-step:

    git fetch                           # download without merge
    git diff main..origin/main           # compare local vs remote after fetch
    git merge                           # merge changes into local branch

    Practice with SSH key creation. Attempt 2

    Create a new key:

    ssh-keygen -t ed25519 -C "fablab-gitlab"
    ssh key generated ssh key generated1

    Add the private key to the system SSH agent:

    ssh-add ~/.ssh/id_ed25519
    ssh key add

    Copy the public key (.pub) to the clipboard (macOS):

    tr -d '\n' < ~/.ssh/id_ed25519.pub | pbcopy
    ssh key Copy

    Verify SSH connection

    ssh -T git@gitlab.fabcloud.org

    Problem 4: I got a “Connection closed” message (GitLab was reachable, but SSH didn’t complete).

    Solution 4: I copy passed error message to ChatGpt and we had a debug dialogue.

    ChatGPT

    ChatGPT suggested command

    Debug command:

    ssh -vvv -T git@gitlab.fabcloud.org

    Solution 4: During the dialogue I figured out that it might be connection problem. And decided to turn off VPN on Mac and on Router — and it worked ✅

    yes

    What I learned


    References

    power

    Week 01 Reflection

    Learning process and time spent (rough log)

    Because I work full-time, I did most of this work at night. I didn’t track minutes perfectly, but these estimates are close enough to learn from:

    Task Time (approx.) Notes
    Reading examples + understanding “good documentation” structure 2–3 h Helpful, but easy to over-consume sources.
    Git install + basic setup on macOS 1–2 h Small blockers at the beginning.
    First edit → commit → push → verify site updates 1 h The biggest “aha moment” — after one full cycle everything became clearer.
    Clone repo locally + credential / password setup 1–2 h Confusing at first, but solved after setting GitLab password correctly.
    VS Code setup + local workflow improvements 1 h Fast win: editing became much smoother.
    SSH key setup (attempts + debugging) 3–5 h The most time-consuming part due to uncertainty + troubleshooting.
    Git practice (add/commit/push/pull, remote vs local) 2–3 h Repetition made it stick.
    Writing documentation + screenshots 3–4 h Takes time, but it’s “real work” that I can reuse later.

    Total: ~13–21 hours (spread across multiple late evenings)


    What was productive

    What I struggled with (and where I wasted time)

    Mindset note

    This week I felt the Fab Academy reality: “done is when it’s done.” It’s not about finishing fast — it’s about finishing correctly.

    Because I’m working full-time, I decided to push through many tasks at night until they were truly done, even if the time was unpredictable.

    Plan to manage time + energy better (Week 02)

    Feedback I got: manage time and manage energy. So next week I will:

    1. Timebox learning vs doing
      • 20–30 min: learning / watching / reading
      • 60–90 min: building + committing
      • If I’m still stuck after ~30 min on one issue → ask instructor / classmates / use a focused question to ChatGPT.
    2. Define the “minimum done” early
      • First aim: meet the assignment requirements with a simple version.
      • Then improve: add polish only after the core is submitted.
    3. Daily micro-progress
      • Even on busy workdays: one small commit (documentation, photo, paragraph, or a fix).
      • This keeps momentum and reduces weekend panic.
    4. Plan rest like a task
      • If it’s past a certain time and I’m not making progress, I stop and sleep.
      • Better energy = faster debugging the next day.
    5. Keep a simple time log
      • Quick notes: what I did, how long it took, what blocked me.
      • This will help me estimate future weeks more realistically.