1. Principles and practices, Project management¶
PRINCIPLES AND PRACTICES¶
Activities Completed¶
- FabAcademy Day 1 Video: Watched and studied the content from the first day’s session
- Project Ideation: Developed concepts for 5 potential final projects
The 5 potential final projects under consideration are:
- Medical Pill Dispenser: An automated system for accurate medication dispensing and tracking
- Hologram Display: A device capable of creating holographic visual displays
- Automated Quantity Inspection System: A system using sensors and imaging for product quantity check and report the number of items .
- Smart Desk Organizer: An intelligent solution for workspace organization and management
-
Packing Machine: An automated system for efficient product packaging and sorting
-
Visual Research: Generated AI-assisted visualizations for all 5 project ideas to better understand their aesthetic and functional aspects
conveyor belt
I used deep ai to generate these images . i just inputed above details and asked deep ai to generate and regenerated till the moment when i was happy with the generated the images .
sample prompt " Generate an image of Smart Desk Organizer which is An intelligent solution for workspace organization and management .
Click here to access Deep Ai
Project Development Progress¶
Created a foundation for project selection by exploring multiple concepts and their visual representations. This approach will help in making an informed decision for the final project selection.
Next Steps¶
- [ ] Evaluate and analyze each project concept in detail
- [ ] Compare the feasibility of each project
- [ ] Select the most viable project for final implementation
FINAL PROJECT¶
I have selected the Product number counting system as my final project. where it counts the number products that are coming through the conveyor belt . I have attached a initial drawing below .
My next steps are to install Git Bash, generate an SSH key, and clone the repository.
Project Management¶
Version Control¶
Version control, also known as versioning or source control, tracks and manages changes to source code. It maintains a detailed record of every modification, making changes both trackable and reversible.
Version control is essential for software development and project management, with code tracking and versioning at its core.
Types of Version Control¶
Version control systems come in three main types:
Local version control: Changes are stored locally as hotfixes or patches before being pushed to a single code version in a database.
Central Version Control: Code versions are stored in a centralized repository where users can access, push, and pull changes.
Distributed Version Control: The most advanced type, where each local repository contains a complete copy of the central repository, including its history.
Version Control System and GitLab¶
Among version control systems like GitHub, GitLab, and Beanstalk, GitLab stands out for its high customizability and ability to adapt to specific needs, while GitHub offers more limited customization.
Getting started with GIT¶
Git is the free, open-source distributed version control system that manages all GitLab-related activities on your local computer.
Learn Git Branching
Learn Git Branching🔗https://learngitbranching.js.org/
Git Installation
First, install Git on your system.
Git Configuration¶
git config --global user.name "Your Name"
git config --global user.email "your_email@example.com"
git config
: Command to set Git configuration options.-global
: Applies the settings globally for all Git repositories on your system.user.name
: Sets your name for commit identification.user.email
: Sets your email for commit identification.
Repository Initialization¶
mkdir test
cd test
git init
mkdir test
: Creates a new directory named “test”.cd test
: Changes the current directory to “test”.git init
: Initializes a new Git repository in the current directory.
Adding Files to Git¶
git add demo.txt
git add
: Stages changes for commit.demo.txt
: The specific file to be staged.
Checking Repository Status¶
git status
git status
: Shows the current state of your working directory and staging area.
Setting up SSH keys¶
Open Git Bash
Enter the following command with your GitHub email address:
💠
ssh-keygen -t rsa -b 4096 -C "[your_email@example.com]"
Steps to Generate an SSH Key in Git Bash¶
- Open Git Bash: Launch Git Bash on your system.
-
Run the SSH Key Generation Command:Use the following command to generate an SSH key pair (private and public keys):Replace
"your_email@example.com"
with your email address. If your system doesn’t supported25519
, use:ssh-keygen -t ed25519 -C "your_email@example.com"
In my case ed25519 was not working so i used the below code to generate the ssh key.ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
I was confused about the differences between these methods, so I consulted Perplexity AI for clarification.
RSA and Ed25519 are two types of SSH key algorithms with several key differences:
Security¶
Ed25519 provides a high level of security with a smaller key size. It offers security comparable to RSA with a 3000-bit key
Ed25519 is more robust against PRNG (Pseudo-Random Number Generator) failures, which can be critical vulnerabilities in cryptographic systems
Key Size¶
Ed25519 keys are significantly smaller than RSA keys. An Ed25519 public key is only 68 characters long, compared to RSA’s 3072 characters
. Ed25519 keys are fixed at 256 bits, while RSA keys typically range from 2048 to 4096 bits
Performance¶
Ed25519 outperforms RSA in several aspects:
Algorithm¶
RSA is based on the mathematical properties of large prime numbers, while Ed25519 uses elliptic curve cryptography (ECC)
Compatibility¶
RSA is more widely supported, especially in legacy systems, while Ed25519 is gaining popularity in modern applications
Use Cases¶
- RSA: Often used in legacy systems, SSL/TLS, and scenarios requiring broad compatibility.
- Ed25519: Commonly used for secure communications, digital signatures, and authentication in modern applications, including SSH and GPG3.
- Save the Key Pair:
- When prompted to “Enter a file in which to save the key,” press
Enter
to accept the default location (~/.ssh/id_ed25519
or~/.ssh/id_rsa
). - If you want a custom location, specify it.
- Set a Passphrase (Optional):You can add an extra layer of security by entering a passphrase or leave it blank by pressing
Enter
. - Start the SSH Agent:Run the following command to start the SSH agent:
`eval "$(ssh-agent -s)"`
- Add the Private Key to the SSH Agent:Navigate to the directory where your private key is stored, then run:Replace
id_ed25519
with your private key file name if you used a different algorithm or name.`ssh-add ~/.ssh/id_ed25519`
- Add Your Public Key to GitLab:
-
Copy the contents of your public key file (
id_ed25519.pub
) using:`cat ~/.ssh/id_rsa.pub`
-
Log in to Gitlab and then go to preferences and then add public ssh key to it . the key that is generated now .
Purpose of SSH Keys¶
SSH (Secure Shell) keys are used for secure authentication between your local machine and remote servers like GitHub or GitLab. They serve two main purposes:
- Authentication Without Passwords: Instead of entering your username and password every time you interact with a remote repository, SSH keys allow automatic authentication. This is both more secure and convenient27.
- Enhanced Security: The private key remains on your machine, while the public key is shared with the server (e.g., GitHub). This ensures that only you can access and push changes to repositories associated with that public key27.
VS CODE¶
Visual Studio Code (VS Code) is a powerful, free source-code editor developed by Microsoft. It includes built-in support for JavaScript, TypeScript and Node.js and has a rich ecosystem of extensions for other languages and tools. Some key features that make VS Code particularly useful for development include:
- Integrated Git control and debugging support
- IntelliSense code completion
- Built-in terminal integration Install Visual Studio Code (Download VSCode)
Steps to Clone the Repository¶
- Copy the Repository URL:
- Log in to your GitLab account.
- Navigate to your FabAcademy repository.
- Click the Clone button and copy the SSH URL (e.g.,
git@gitlab.com:username/repository-name.git
).
- Open VSCode:
- Launch Visual Studio Code on your computer.
- Open the Command Palette:
- Run the Clone Command:
- Type
Git: Clone
in the Command Palette
- Type
-
Paste the Repository URL:
- Paste the SSH URL you copied from GitLab into the prompt and press Enter.¶
-
Select a Local Folder:
- Choose a folder on your computer where you want to clone the repository, then click “Select Repository Location.”
-
Open the Repository in VSCode:
- After cloning, VSCode will prompt you to open the repository. Click “Open” to start working on your project.
DOWNLOAD LIVESERVER EXTENSION AND ADD .
Website Development¶
After cloning the git and downloading the vs code my next task is to develop my site . I did some changes to my site using html . I used to know basic html and with the help of my instructors i was able to make some changes like adding my name , photo aligning it etc .
These are the basic things that i updated using html . since the process was time consuming for me , iasked my instructor for an alternative method and my instructor told me about mkdocs . Then i thought to try it . With the help of my instructor i was able to install mkdocs .
And i have finally setted up mkdocs and i am using it . And it is easy to use .
Conclusion¶
This week i have studied how to install git and clone repositories and did some basiic html and also installed mkdocs which would help me in the future documentation .we also came up with different project ideas for final project and we have chosen one from the five .