I. Committing the Student Agreement to the Repo#

Show / Hide

One of the first tasks in Fab Academy is to acknowledge and commit to the Student Agreement. I followed these steps:

a. Clone my repository from GitLab:#

git clone https://gitlab.fabcloud.org/academany/fabacademy/2026/labs/creativespark/students/shaaz-ahmed.git
cd shaaz-ahmed

b. Copy the Markdown Student Agreement from the GitLab UI#

c. Create a new file in the repository root directory with agreement content#

nano students.md
# Paste the content and add name Shaaz Ahmed at the end

d. Commit it to repo and push:#

git add student-agreement.md
git commit -m "Add signed student agreement"
git push

II. Git Tutorial & Creating My Personal Website#

Show / Hide

1. Set up Git#

a. Install Git

brew install git

b. Configure git

git config user.name "Shaaz Ahmed"
git config user.email "myemail@gmail.com"

2. Clone my personal website repository#

Login to FabLab GitLab via the Web UI (https://gitlab.fabcloud.org)

In my fabacademy root directory (e.g. ~/workspace/fabacademy), run:

git clone https://gitlab.fabcloud.org/academany/fabacademy/2026/labs/creativespark/students/shaaz-ahmed.git

This creates the shaaz-ahmed dir.

3. Install Hugo and get the Hugo template#

Install hugo

brew install hugo

In my fabacademy root directory (e.g. ~/workspace/fabacademy), run:

git clone git@gitlab.fabcloud.org:academany/fabacademy/templates/student-template-hugo.git

And then I cleaned my personal website dir shaaz-ahmed (except .git file):

mv ~/workspace/fabacademy/shaaz-ahmed/.git ~/workspace/fabacademy/
rm -r ~/workspace/fabacademy/shaaz-ahmed
mv ~/workspace/fabacademy/.git ~/workspace/fabacademy/shaaz-ahmed/

4. Use a new theme (Terminal)#

Used Claude Code. Run

claude

Run the following prompt on Claude Code:

Set the hugo theme in this directory to https://github.com/panr/hugo-theme-terminal

5. Update the content in shaaz-ahmed/content#

Used the Cursor editor and just typed the text

6. Test it#

From the dir ~/workspace/fabacademy/shaaz-ahmed, run:

hugo server

And visited localhost:1313 in my browser.

7. Commit and push it to deploy it#

git add .
git commit -m "shaaz-ahmed: add personal website"
git push

Lecture Notes#

Website Development Fundamentals#

  • Central server with files for all students
  • Each student has starter website to develop throughout semester
  • Three levels of website creation:
    1. Hand-coded HTML (recommended starting point)
    2. Integrated development environments (VS Code, VS Codium)
    3. WYSIWYG editors (LibreOffice, Dreamweaver)
  • JavaScript enables interactivity (examples: Windows desktop simulation)
  • Markdown option available after mastering HTML basics
  • Web browsers can open files locally for testing
  • Python/JavaScript commands start local web servers for development

Git Version Control System#

  • Maintains file history through commits (snapshots)
  • Supports multiple branches for different versions
  • Push/pull functionality for distributed work
  • Works across devices (computers, phones, memory sticks)
  • GitLab platform serves repositories with web interface
  • Tutorial completion required this week
  • Local setup recommended after web interface mastery
  • Terminal commands preferred over GUI for efficiency

Project Management Principles#

  • 80/20 rule: 80% of tasks take 20% time, 20% take 80% time
  • Supply-side time management: schedule in advance vs demand-side task completion
  • Spiral development over linear progression:
    • Each loop produces complete deliverable
    • Incremental feature additions
    • Continuous testing capability
  • Documentation must happen during work, not after
  • Debugging approaches: top-down simplification or bottom-up building
  • Lab cleanliness integrated into work cycle

Assignment Requirements & Next Steps#

  • Complete Git tutorial and HTML documentation review
  • Build personal website describing yourself and final project
  • Final project description (can evolve throughout semester)
  • Sign student agreement by editing and committing file
  • Image compression critical: use JPEG for documentation, avoid oversized PNGs
  • Schedule management: allocate specific days for Git, HTML, editor selection, prototyping
  • Recitation Monday 9AM Eastern with Julian on version control
  • Global open time Saturdays 10AM Boston time for additional support