Individual Assignment
Table of contents
Week 1 Work Plan

Project Requirements
- Must have at least one output and one input.
- Include a hardware component and a mechanical part.
- Preferably, it involves something moving controlled by electronics in response to specific events.
- Utilize a maximum number of Fab Lab tools and machines during production.
- Project files must be open-source and accessible to the community.
- Considering the Fab Lab criteria for the final project, four ideas were presented to the instructors for evaluation.
Final Project Ideas
- Online Chess to Offline Chess Converting Serial Robot
This project is designed to bridge the gap between digital and physical chess. The robot is programmed to replicate on a physical chessboard the moves made in an online game. This allows players to enjoy the tactile experience of traditional chess while benefiting from the convenience and wide player base of online platforms. Whether used for practice, exhibition, or just for fun, this project brings a new dimension to the timeless game of chess.
In addition, the chessboard also captures the moves made by the offline player and feeds them back into the online game. This two-way interaction ensures seamless integration between the online and offline platforms, providing a truly immersive experience.
- Soft Robotic Fish
Soft Robotic Fish aims to create an underwater robotic fish capable of mimicking the movements and behaviour of real fish. This soft robot, made from flexible materials, is designed to move through the water with the same grace and efficiency as its biological counterparts.
The initial version of the "Soft Robotic Fish" project was much more modest in scope. It was designed to operate within the confines of an aquarium, navigating through the water and interacting with other fish in a limited space. Despite its limited range, this early version was crucial in demonstrating the feasibility of creating a soft robot that could effectively mimic the movements of a real fish. It laid the groundwork for the more ambitious versions of the project that followed.
The project aims to provide a new tool for underwater exploration that can blend in with marine life, causing minimal disturbance to the environment.
- Robotic Assistant for Disabled Chess Players
This project aimed to make the game of chess more accessible to people with physical disabilities. This robotic assistant is equipped with voice control functions, allowing players to dictate their moves without having to physically move the pieces.
The assistant is designed to understand a wide range of voice commands, can recognize standard chess move notation, and is capable of accurately moving the pieces to the correct positions on the board. This allows players with disabilities to compete on an equal footing, removing physical limitations from the game.
- Interactive System of Robotic Head
The Interactive System of Robotic Head is a project that aims to develop a robotic head that not only detects movement in its range but also responds with appropriate facial expressions. The system is designed to track moving objects in its field of vision and translate these movements into a range of facial expressions, effectively mimicking human responses to stimuli. This feature enhances the interactive capabilities of the robot, making it much more engaging and effective in situations that require human-like interaction.
Professor Neil's first session
My first day at Fab Academy was awesome. I have chosen the Kochi node to pursue my fab academy. Once I reached the Fab Lab on January 24, 2024, the session about the Fab Academy and Fab Lab tour provided by the local instructors started sharp at 2:00 pm IST. It helps to get an overview of the Fab Lab machinery and facilities. The first online session by Professor Neil Gershenfeld about the topic " Project Management, Principles & Practices" started exactly at 7:30 pm and ended at 11:00 pm IST in Zoom. It was amazing to attend Neil's online session along with my peers, and I had a lot of fun.
Version Control
- Version control, also known as versioning or source control, is the practice of managing changes to source code. Itβs about keeping a detailed account of every modification made to the code, ensuring that these changes are both trackable and reversible.
- Version control plays an integral role in both software development and project management. The tracking and versioning of source code changes in the repository form the heart of this process.
Types of Version Control
Version control systems come in three main forms, each with its own set of advantages and drawbacks:
- Local version control: In local version control, changes are stored locally in the files as a hotfix or patch before being pushed to a single version of code in a database.
- Central Version Control: Central version control hosts different versions of the code in a centralized repository. Users can access these versions, and push or pull changes as needed.
- Distributed Version Control: Distributed version control is the most sophisticated of the three. Here, each local repository fully mirrors the central repository, including its history.
Version Control System and GitLab
There are different versions of control systems available. For instance, there are GitHub, GitLab, and Beanstalk, out of which GitLab is preferred because GitLab is highly customizable and can be tailored to fit your specific needs, while GitHub has more limited customization options.
Getting started with GIT
Git is the free and open-source distributed version control system that's responsible for everything GitLab-related that happens locally on your computer.
- Learn Git Branching
Learn Git Branching is an interactive web-based tutorial that allows users to learn Git commands and concepts. It is designed to help beginners understand the basics of Git and how it works. The tutorial provides users with a virtual environment where they can practice Git commands without having to install anything on their computers.
π
- Git Installation
Firstly, git needs to be installed in the system.
Git - DownloadsThe entire Pro Git book written by Scott Chacon and Ben Straub is available to read online for free. Dead tree versions are available on Amazon.com.https://git-scm.com/downloads
To check if git is already installed in the system, search for git bash or type the below command in the command prompt :
πgit - -version
- Git Configuration
Configuring user information used across all local repositories:
- Set a name that is identifiable for credit when reviewing the version history
πgit config --global user.name β[firstname lastname]β- Set an email address that will be associated with each history marker
πgit config --global user.email β[valid-email]β- Verify username and email address by using
πgit config --global --list
- Git Initialization and Cloning
- Initialize an existing directory as a Git repository
πgit init- Retrieve an entire repository from a hosted location via URL
πgit clone [ URL ]
- Add, Commit, and Push
- To show modified files in the working directory, type:
πgit status- To add a file as it looks now to my next commit (stage), type
πgit add [ file name ]- To add all changed files, type
πgit add - -all- To commit changes
πgit commit -mβ[descriptive message]β- To transmit local branch commits to the remote repository branch
πgit push
Setting up SSH keys
- Open Git Bash
- Type the text below, replacing the email used in the example with your GitHub email address.

This creates a new SSH key, using the provided email as a label.

- The encryption key is kept in a hidden folder in the user directory with the extension.pub after the SSH-RSA has been made. To display the public keys, open Git Bash and type
- To add this SSH key to GitLab πOpen GitLab π user settings π SSH keys π Add new keys π paste the public key π click on add key


Cloning the Git-Repository
Once done with the SSH keys setup we need to clone the repository provided by the Fab Foundation form GitLab to our system.
πOpen GitLab
πFrom the homepage select the repository

πClick on the code menu

πCopy the βclone with SHHβ URL

π Create a new folder to clone our Git repository

π Open the created folder
π Right-click and select βOpen Git Bash hereβ

π To clone the Git repository, type the below command:

Once we are done with cloning the Git repository, it will appear in the folder

Web Design
My next task is to build a personal website which includes a brief description of myself, documentation of individual weeks and a description and sketch of my final project idea.
Getting started with web design
- Learning the basic
HTML, CSS, and JavaScript are the three main languages used by web developers to build websites.
- HTML is the backbone of any web page. It provides the structure and semantic meaning to the content on a website.
- CSS is the language used to style the elements on a web page.
- JavaScript is a powerful programming language that adds interactivity and dynamic functionality to web pages.
- Select a code editor
- There are various online and offline-based code editors available to download. For instance, Atom, Visual Studio Code, and brackets. However, I have chosen VS Code as my code editor because I am already familiar with using this code editor.
- Follow the link to download VS Code .
https://code.visualstudio.com/
Visual Studio Code
- My first task is to build a landing page that includes information about myself and a sketch of my final project.
- VS Code is a user-friendly editor that includes numerous extensions that enable a wide range of applications. Three extensions can be really useful while creating web pages, they are:
- Once the VS Code and extensions are installed
π Open the folder that contains the git repository
π Edit the existing files and add new files to build a website
π Add the changed files to the git
πCommit the changes to git
π Push it to the GitLab repository branch
- I have created my landing page in VS Code using HTML, CSS , Java Script, and Bootstrap. Finally I made my first webpage.

Bootstrap
Bootstrap is a free and open-source CSS framework that is widely used for responsive, mobile-first front-end web development. It contains CSS and JavaScript-based design templates for typography, forms, buttons, navigation, and other essential interface components. Bootstrap's responsive features make it easy for developers to create websites that automatically adjust to different screen sizes and viewports. It's a popular choice for developers because of its consistency, versatility, and user-friendliness.
W3school
W3Schools is a popular web development educational website. It offers free tutorials in all web development technologies, such as HTML, CSS, JavaScript, Python, Java, SQL, and many more. It is widely known for its simplicity and easy-to-understand approach, making it a great resource for both beginners and experienced developers. In addition to providing tutorials, it also offers references, examples, exercises, and quizzes to enhance learning and testing knowledge.
πI have used W3school tutorials to learn about the basics of HTML, CSS, and JavaScript.



ChatGPT
It is an artificial intelligence (AI) chatbot technology that can process our natural human language and generate a response. Simply put β you can ask Chat GPT a question, and it will give you an answer.
- I have found chatGPT to be a very useful tool for resolving my queries and clarifying my doubts. The platform has been able to provide me with accurate and reliable information in a timely manner, making it a go-to resource for me whenever I need assistance.

Notion
Notion is a powerful productivity tool that allows you to organize your work and life all in one place. It is an all-in-one workspace where you can write, plan, collaborate, and get organized - it essentially combines note-taking, task management, databases, and much more. With Notion, you can create your own system of pages, or use pre-made templates to get started. It is versatile and customizable, allowing you to structure your workspace exactly as you want. Whether you're an individual or part of a team, Notion's broad functionality can help streamline your workflow and increase productivity.
Follow the link to download the notion.

- I have used the notion to create my weekly documentation
πFinally, export it to an HTML file
π Extract the file and I have added to my directory