Week 1: principles and practices, project management
What did you do first in the week?
this week Assignment is to plan and sketch a potential final project.And download, read, and sign the student agreement, and commit the file to your repo, work through a git tutorial, build a personal site in the class archive, describing you and your final projectProject Selection
To chose a topic for the Fab final project,there are some fab criteria need to follow.
- Must have At least 1 output and 1 input
- Project must include a hardware component and a mechanical part
- It's better to have something moving controlled by electronics according to particular events
- It should use maximum fablab tools and machines as possible during the production
Smart Hair Oil Dispenser
For my Fab Academy final project, I planned to design a simple oil dispenser with an integrated heating system. The device is intended to warm the oil to a safe, controlled temperature before dispensing, improving usability and effectiveness while maintaining a compact and user-friendly design
Abstract:
The Smart Hair Oil Dispenser is an innovative personal care device designed to improve hair nourishment and scalp health through controlled oil heating, precise dispensing, and therapeutic massage. It features a 20 ml aluminum chamber with a maximum temperature of 60 °C to ensure safety and effective absorption. A precision nozzle delivers oil directly to the hair roots, while an integrated vibration motor enhances blood circulation. Wireless charging eliminates spark risks, and a rechargeable battery ensures uninterrupted operation.
the other proposed projects are given bellow
Smart Pill Dispenser
Abstract:
This project presents a Smart Pill Dispenser designed to improve medication adherence through automated, time-based dispensing. It includes 21 individual compartments for three daily doses over a 7-day period, ensuring accurate dosage and preventing medicine mixing. The system is particularly useful for elderly users and chronic disease management.
Assistive Smart Keyboard
Abstract:
The Assistive Smart Keyboard supports communication for differently abled individuals by integrating both QWERTY keys and Braille input. It enables effective interaction between disabled and non-disabled users through language conversion and includes a display for Braille visualization. This inclusive design promotes accessibility and independence.
Anti-Vibration Spoon
Abstract:
The Anti-Vibration Spoon assists individuals with hand tremors by minimizing involuntary shaking during eating or tool handling. Its compact and portable design improves stability, reduces spillage, and enhances daily independence for users with motor control challenges.
AI Walking Stick
Abstract:
The AI Walking Stick is an intelligent assistive device for visually impaired individuals. Using sensors and artificial intelligence, it detects obstacles and analyzes surface conditions such as soil, water, and rocks to guide users safely. This device improves independent mobility, safety, and confidence.
Git/GitLab & VSCode Setup
The entire Fab Academy documentation is written and presented through a website, allowing students to experience real-world online web documentation while improving their web development skills. As part of this week’s assignment, we focused on creating a basic website and uploading it to a GitLab repository. The Fab instructors recommended using a Linux operating system, as it is generally more suitable for this course. However, for my setup, I used Windows OS. There are many text editors available for web development, such as Brackets, Visual Studio Code, and others. In this tutorial, I am using Visual Studio Code (VS Code). VS Code is one of the most popular code editors, offering a wide range of extensions and features that make web development easier. It is a Microsoft product and works smoothly on Windows, Linux, and macOS. The installation process for VS Code is straightforward, and it provides an efficient environment for writing and managing web development projects.During the first week, the following setups were completed:
- Installed Git and configured global username & email.
- Created GitLab account and connected local repositories.
- Cloned initial project repositories from GitLab.
- Installed VSCode and set up necessary extensions for project development.
- Verified Git and VSCode integration to push and pull changes successfully.
After installing Visual Studio Code, a live server is required to preview the website in real time. Fortunately, VS Code provides a Live Server extension that can be easily installed. This extension can be found by searching for its name in the Extensions panel and installing it directly within the editor.
I installed useful VS Code extensions such as Live Server for real-time preview, Save Typing for faster coding, and a Code Spell Checker to correct spelling during documentation. I then created a project folder, opened it in VS Code, and organized the required files, including index.html for the home page and about_me.html for the About Me section. Using W3Schools and my HTML experience, I built a basic website with navigation menus and linked pages.
Directory structure:-
I organized the project files into a structured directory that includes separate folders for CSS, images, and JavaScript, along with the main HTML pages. The index.html file serves as the home page, while about_me.html contains personal information. The CSS folder holds the stylesheet used for UI design, and the images folder contains the Fablab Kerala logo and favicon. Using references from w3schools and my prior HTML experience, I developed a home page with the required navigation menu and linked pages.
The web page opened in a browser using a local host IP address (http://127.0.0.1:5500/index.html). The page was not developed in a single attempt; it required multiple tests and iterative code modifications to achieve the desired results.
This is the first assignment completed during this week’s documentation, and the same website template will be used for upcoming assignments throughout the course.
Starting with Gitlab
Git is a free and open-source distributed version control system that efficiently manages projects of any size. It is easy to learn, lightweight, and fast, offering advantages over other SCM tools like Subversion, CVS, and Perforce. Git provides features such as local branching, staging areas, and flexible workflows. Installing Git on Linux is straightforward and can be done with a single command. Git is a free and open-source distributed version control system that helps manage projects of any size efficiently. On Windows, Git can be installed easily using the official Git installer from here To verify the installation, open the Git Bash terminal and run:git --version
GitLab, GitHub, and Bitbucket are services that provide remote access to Git repositories. Besides hosting code, they offer additional features such as collaborative code sharing, bug tracking, wikis, and other tools for team development.
GitLab is a self-hosted Git repository management system that organizations can use to keep their code private while easily deploying changes.
Before using Git locally with GitHub or GitLab, it is necessary to configure a global username and email. This can be done using the following commands in Git Bash:
_blank "USERNAME"
git config --global user.email "email@example.com"
The configuration can be verified with:
git config --global --list To securely connect with GitLab, SSH keys are used. SSH provides an encrypted connection between your computer and the remote server. On Windows, an RSA SSH key can be generated using: ssh-keygen -t rsa -b 2048 -C "email@example.com"
The generated key is saved in a hidden folder under your user directory and can be secured with a password. GitLab supports RSA, DSA, ECDSA, and ED25519 keys.
The command above is used to generate an SSH-RSA key, which will be stored in a hidden folder within the user's directory. After creation, a password is required to secure the Git SSH connection.
this stage, the SSH‑RzA public key is stored inside the hidden .ssh directory within the user’s home folder, with the file extension .pub. To proceed, we need to copy the SSH public key from the id_rsa.pub file using the command shown below.
After that log in to gitlab then paste it to the ssh key column under the profile settings
This is the GitLab repository SSH URL used to clone the Fab Academy project repository. It provides secure access to the remote repository, allowing files to be cloned, updated, and synchronized between the local system and the FabCloud GitLab server.
git clone git@gitlab.fabcloud.org:academany/fabacademy/2026/labs/kochi/students/aliabdul-gafoor.git
The repository has been cloned into the user's folder. Navigate into that folder, delete the existing files, and replace them with the new website you created earlier. The following commands can be used to remove the old files:
With this, the first commit of the website is finished.
This is the final version of the website after it has been pushed to the GitLab cloud. The web address is automatically generated above the directory and is provided through the FabAcademy GitLab Pages service. The link to the website is shown below.
"The screenshot below demonstrates the layout and design improvements made to the website using the above HTML and CSS, highlighting the 'before' and 'after' states."