Week 1. Principles and practices, Project management¶
Final project¶
Concept 1¶

For my final project, I am trying to build an Automated Welding Gauge. This device will measure the thickness of metal and automatically adjust the welding machine parameters accordingly. The goal of this project is to simplify the welding process, reduce human error, and improve the overall quality of welds.
I am testing this device in practice because it will be very useful not only for me but also for other students at our university. It is designed to make welding more precise, efficient, and easier to perform for metal pieces of different thicknesses.
Working Principle:
-
The device includes a caliper-like probe that measures the thickness of the metal.
-
When the probe touches the metal, it reads the thickness and sends the data to the control unit.
-
The control unit processes the data and calculates the optimal welding parameters such as voltage and current.
-
These parameters are automatically sent to the welding machine, which adjusts its settings accordingly.
-
The machine performs the welding operation with the calculated settings, ensuring precise and high-quality welds.
This system is intended to be practical and helpful, improving workflow and making welding safer and more efficient.
Concept 2¶

My final project is an interactive object designed for outdoor environments. The core concept is built around the contrast between light and darkness, day and night. The object is designed to have different characteristics and behavior depending on the time of day, responding both to the passage of time and to environmental conditions.
The object will be fully powered by solar energy. During daytime, it collects energy through solar panels and stores it in a battery system. At night, the stored energy is used to power the lighting and sensor systems. In this way, the object not only reacts to the transition between light and darkness but structurally depends on this natural cycle for its operation.
During the daytime, the object functions as a silent, minimal sculptural form. At this stage, the emphasis is placed on materiality, geometry, and the interaction with natural light. Sunlight passes through or around the object, creating shadows and visual effects without artificial illumination. At the same time, the system accumulates solar energy in preparation for the night phase.
At night, the object “awakens.” It becomes internally illuminated using LED lighting and begins actively responding to environmental changes. Light becomes the primary communication medium of the object, generating visual signals and atmosphere.
The object is equipped with multiple sensors that measure environmental parameters such as temperature, humidity, and ambient light levels. The light sensor distinguishes between day and night, while temperature and humidity data influence the color, intensity, and behavior of the lighting. For example, higher temperatures may result in warmer color tones, while higher humidity levels may trigger slow pulsation or variations in intensity. In this way, the object “speaks” through light, translating environmental data into visual expression.
Technically, the system may be based on an Arduino or ESP32 microcontroller, environmental sensors, LED modules, and a solar energy management system (solar panel, battery, and charge controller). Since the object is intended for outdoor installation, particular attention is given to enclosure protection and system reliability under varying weather conditions.
This project integrates art, technology, and sustainable energy principles. It is not only a functional and autonomous system, but also a conceptual object that lives in harmony with natural cycles—feeding on light and manifesting in darkness. Over time, the object changes, responds to its environment, and creates different experiences for the viewer during day and night.
Introduction to Website Development and Documentation¶
During the first week, I became familiar with the website development process and created my own documentation page to present my journey throughout the Fab Academy program.
Since I had no prior experience in website development, I began by exploring the documentation pages of Fab Academy participants from previous years. In particular, I studied the documentation of last year’s participant Mkhitar Evoyan, the previous year’s participant Elen Grigoryan, and Rudolf Igityan, a participant from 2023.
Through this research, I understood that documenting work on the Fab Academy website requires working with several essential tools.
Requirements - [x] GitLab - [x] Git Bash - [x] Visual Studio Code
• Git is used to manage the Fab Academy documentation repository and upload changes to the GitLab platform. It operates through commands and allows tracking and controlling changes made to files.
• Visual Studio Code is used to write, edit, and manage the website code and Markdown files.
Setting Up Git¶
What is Git? Why I need Git?¶
Git is a tool that tracks all changes made to files, stores their history, and helps manage projects in a safe and organized way. It allows users to return to previous versions, compare changes, and see what has been modified on GitLab.
Support During the Learning Process¶
Although I studied the purpose of Git and its role in the Fab Academy documentation process, during the first week I was not able to fully configure the website and upload changes using Git on my own.
As a result, I received support through a Zoom meeting, where my instructors explained the process in detail and helped me overcome the difficulties I encountered. In particular, Onik Babajanyan provided significant support by guiding me step by step through the logic of Git and the correct structure of the documentation page.

This support played an important role in my learning process and helped me confidently continue my work within the Fab Academy program.
Commands needed to work with Git¶
There are two common ways to connect to a Git repository: using an SSH key or the HTTPS protocol. I set up and used an SSH key to connect to the Git repository.
So we got the programs Git and Visual Studio, now let’s run Git Bash somewhere in a Fablab” folder (prepared in advance) by right click > * show more options (for Windows 11) > Open Git Bash here.

cd documents
cd Fabacademy2026
I used the ՝cd՝ command to make sure I was in the correct folder.

I went to the Fab Academy repository on GitHub/GitLab, clicked Code, selected SSH, and copied the displayed URL.
This URL allowed me to establish a secure connection between my computer and the remote repository.

In order to establish a secure connection with GitLab, I generated an SSH key using the following command.
I used this instruction for SSH. Generate SSH with following command in Git Bash, comment is optional There are several supported SSH key types.
$ ssh-keygen -t ed25519 -C "<comment>"
To copy the public key, I used:
$ cat ~/.ssh/id_ed25519.pub

I added an SSH key to GitHub/GitLab

After generating the SSH key, it needs to be added to the ssh-agent so that Git knows which key to use.
First, start the ssh-agent by running the following command in Git Bash:
$ eval "$(ssh-agent -s)"

I added my SSH key to the agent.
$ ssh-add ~/.ssh/id_ed25519
$ ssh-add -l

I checked that the key was loaded and ready to use.
Once my SSH key was added and the connection was established, I cloned the Fab Academy repository to my local computer. Cloning creates a complete copy of all files, folders, and the entire history of the remote repository, allowing me to work locally while keeping it in sync with the remote version.
I ran the command:
$ git clone SSH_URL

-
Git created a new folder with the repository name inside my current working directory (Fabacademy2026).
-
All files from the remote repository have been downloaded to my computer.
-
Git automatically sets up a remote called origin, which manages the connection to the remote repository. This allows me to push my changes back and pull future updates from the remote repository.
By cloning the repository, I ensured that I have the full history of the project, not just the latest files. I can now safely start working on assignments, create new files, and make changes locally before pushing them to the remote repository.
After cloning the repository, I opened the project in Visual Studio Code to start working on my assignments and documentation. Opening the folder in VS Code allows me to edit files, manage version control, and preview changes.



After making the changes, I first checked the changes.
git status
This shows me:
-
Modified files
-
New files not yet tracked
-
Any files ready to commit
To add all changed files:
git add .
I commit the staged files to my local repository with a descriptive message:
git commit -m "Add Week 01 documentation and setup instructions"
The message should clearly describe what I changed or added.
I can go to GitHub/GitLab in a browser to make sure my new files or changes appear there.
git push
After running this command, my changes are uploaded and visible in the remote repository.
I can go to GitHub/GitLab in a browser to make sure my new files or changes appear there.
While working in my folder, I noticed that a large ZIP file was present in the repository. This file was preventing me from successfully pushing my changes to the remote repository.
To fix this, I did the following steps:
Deleted the ZIP file from my local folder, because it was unnecessary for version control.
Ran the command to undo the last two commits while keeping the changes staged:
git reset --soft HEAD~2


After this, I was able to recommit the changes without the ZIP file and successfully push to the remote repository:
git push