Individual Assignment

βœ…
Plan and sketch a potential final project
βœ…
Learn about version control systems such as GIT
βœ…
Create a personal website

Table of contents

Week 1 Work Plan

Project Requirements

Final Project Ideas

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

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

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

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

Types of Version Control

Version control systems come in three main forms, each with its own set of advantages and drawbacks:

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

  1. Git Installation

    Firstly, git needs to be installed in the system.

    Git - Downloads
    The 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
  1. 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
  1. 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 ]
  1. 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

πŸ’ 
shh -keygen -t rsa -b 4096 -C β€œyour_email@example.com”

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

πŸ’ 
cat ~/.ssh/id_rsa.pub

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:

πŸ’ 
git clone [ url ]

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

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

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.

W3Schools Online Web Tutorials
W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.
https://www.w3schools.com/

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.

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.

Notion Desktop App for Mac & Windows | Notion
Enjoy an infinitely flexible and adaptable workplace that optimizes around your personal and team needs. Download the Notion desktop app for Mac and Windows
https://www.notion.so/desktop