Skip to content

Week_01:Principles&_Practices/Project_Management

This weeks assignments:

Principles and Practices

Project Management

  • 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.

Principles and Practices:

  • Final Project Sketch

sketch.jpg

Final project description:

For my final project I will be designing and building a modular, solar powered, unmanned surface vehicle (USV).

It will use large propellors and brushless motors to enhance efficiency and will be controlled through ardupilot opesaorce software installed on the machine and managed remotely through mission planner software

Each hull will have minimum 3 basic sections containing different modules designed for different purposes both hydrodynamicly and functionally and the two hulls will be held together with by a solar panel to increase efficiency that will house the electronics underneath it in a waterproof container:

Project Management:

For this course we will be completing weekly assignments colaborating with other students and tracking our final project progress through our own personal websites. We will set up local repositories to store our files on our computers and they will be published online through Git.

What is Git

Git is a version control system that tracks changes in files over time, synchronize files between different computers allowing you to save different versions, collaborate with others, and revert back to earlier versions if needed.

Documentation site workflow:

To be as efficient as posible with my limited html skill there will be 3 primary components to my weekly documentation:

  • Notion for basic documentation and feedback
  • Local repository for images and files
  • Gitlab web IDE for editing and final touches
  • I will document as I go using notion allowing me to be fast and efficient and organize the site visually with its useful drag and drop editing for test, images and files and get fast feedback from my instructor. Once I am satisfied with the documentation I will export the page.
  • Once I have exported my notion content I will convert and compress images using image magick and transfer them to my local repository folder to be pushed to git lab.
  • Finally I will do my final touches in the Git lab web IDE to check images and links are displaying correctly and everything is correctly formatted before publishing

setting up GIT on local computer

  • Install homebrew using the following command in terminal:
/bin/bash -c "$(curl -fsSL [https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh](https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh))"
  • once that's done install GIT using terminal on MacOs
brew install git

check instalation by typing git in the terminal and you should get something like this if successful

image.png

  • you will need to clone your git repository locally in order to be able to “push” (upload) files to gitlab which is the cloud based git interface we will be using.

start by making a new folder in a location where you would like to house your fab academy repository

  • next add an SHH key:

input the following in terminal to create a new key

ssh-keygen -t ed25519 -C "my-laptop-key-for-gitlab”

You will get a return like this

Screenshot 2026-01-27 at 18.21.42.jpg

  • add the private ssh key to your ssh agent
ssh-**add** ~/.ssh/id_ed25519

Then navigate to you profile in Gitlab and under the “SSH keys” tab click the add new button and paste in the following:

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

to verify if it was successfully added try the following in your terminal and it should return a welcome message

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

once that is done change directory in your terminal by typing “ cd Users/name/ location” of your folder for example mine is:

'/Users/fl4m0/Desktop/Fab academy/repo’  

on your git lab repository home page click the dropdown arrow of the blue “Code” button

the first option will read “clone with SSH”

click the copy button and paste into terminal and your gut hub student repository will be pulled to your local repository folder and you will be ready to start uploading your files

GIT workflow basics

you must start by initiating git in the terminal

git init

this will initiate Git and it should return with the name of the Git repository like so:

Reinitialized existing Git repository in /Users/fl4m0/Desktop/Fab academy/repo/james-stewart/.git/

once Git has been initialized you must “pull” your repository to consolidate any changes between local repo and the cloud

Screenshot 2026-04-21 at 08.15.20.png

check the status once your Files have been added to your local repo

git status 

This will name the files that need to be added with the following command just replace with the file path location.

git add <file> 

once files have been added you must commit the files and add a message to log what changes you have made

git commit -m "message"

once this is done you can now upload or “push” your changes

 git push 

check with git status one done to see that everything was uploaded correctly and also visit your URL to check that everything is displaying as intended and done

Screenshot 2026-04-21 at 08.25.13.png

Git Commands cheat sheet

git init Initialize a new Git repository
git clone Clone an existing repository
git add Add files to the staging area
git commit -m "message" Commit changes to the repository
git fetch Only download changes from the remote repository without pulling them into your local branch
git push Push changes to the remote repository
git pull Pull changes from the remote repository
git status Show the status of files in the working directory
git log Show the commit history

References:

https://fabacademy.org/2026/recitation/version-control/#36