week 1. Project management
Table of Contents
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:
- Hand-coded HTML (recommended starting point)
- Integrated development environments (VS Code, VS Codium)
- 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