1-Principles and Practices / Project Management¶
Asssisnments¶
- plan and sketch a potential final project
- Work through a git tutorial
- Build a personal website describing you and your final project. Refer to the lecture material for examples.
Covered Lessons¶
- git tutorial- config your git - create a ssh-key - clone ssh-key to your gitlab - commit and push your changes
- Website development.
- final project plan and sketch
To keep track of all my assignments, I decided to make a timetable
You can view my timetable here
I will be using this same method in the later weeks as well.
Project Management¶
Now, before we start, I’ll be using the markdown format for writing my website. What exactly is markdown? And a website needs to generate HTML code so how is it possible that you can use markdown to add content to a website
- Well, markdown is a lightweight markup language that lets you write formatted text using plain, easy-to-read syntax.
- Websites need HTML, not Markdown, though because web browsers can’t read Markdown directly.Due to this, what happens is you write your content in Markdown (.md file) Than a Markdown engine (like markdown-it, showdown, or built-in tools in frameworks like Jekyll or Hugo) processes the Markdown. Lastly it translates the Markdown into valid HTML.
VS Code has built-in Markdown support with a preview feature so I used vs code for making and editing my website as well.
As for my Static site generator, I’m using MKdocs.Now what is MkDocs? Well, it is a static site generator that’s specifically designed for building project documentation using Markdown.
It takes your .md files and turns them into a clean, styled website.
It’s simple to use, especially for tech documentation, and it uses themes like Material for MkDocs to make the output look professional.
Git Tutorial¶
GitLab is a web-based DevOps platform that provides a full suite of tools for software development, continuous integration/continuous deployment (CI/CD), version control, and collaboration. It allows teams to collaborate on code, automate workflows, and manage the entire software development
I watched the tutorial here
Why do we need public/private keys?
When we clone, push, or pull from a remote git repository with shh, the system we use needs to make sure that you are actually you. That too, without having to ask for our user credentials every single time. That’s when public/private key pairs come in.
-
Private Key stays on our computer and should be kept secret. It acts like your personal key.
-
Public Key are uploaded to our Git hosting account (like GitHub or GitLab). It’s like a lock that your private key can unlock.
Step-1¶
Config your git. You can see below that the file does not exist, so firstly, we need to config our git.
The prompts needed are here.
- Set the global username: git config –global user.name “YourUsername”
- Set the global email: git config –global user.email “your@email.com”
- Check the configured values: git config –global –list
Step-2¶
Creating a ssh-key.
- I ran: ssh-keygen and pressed Enter.
- After that, press Enter again to get to the default file location.
Step-3¶
Clone ssh-key to gitlab.For this I couldn’t find the pub file, so I directly accesed it by opening the id_rsa.pub file (located in ~/.ssh/) and copied the contents of the file
- With that, I loged into my gitlab account and clicked the yellow iccon on the menu bar, and went to edit profile.
- From there, you’ll see a file called ssh-keys. Click on that, then you can paste the code you got above.
- Lastly, I clicked ‘addkey’ to save
Step-4¶
Commit and push your changes.For this, the comamands required are
- git status
- git add .
- git commit -m ""
- git push
📂 git clone This Copies an entire remote repository (including history) to your local machine. It is used for getting a copy of someone else’s repo so you can work on it. - Remote + Local (downloads from remote to create a local copy)
➕ git add It stages and records changes (modified or new files) to be there in our next commit. It is used in reparing your changes before committing. - Local only
✅ git commit What it does: Saves a snapshot of your staged changes to your local repository. It is used when recording what you commited in your history.(like leaving a message ) - Local only
📤 git push It sends your committed changes from the local repo to the remote repo. It is uesed when sharing your work or backing it up to GitHub/GitLab/etc. - Local + Remote (uploads from local to remote)
If you type cmd in the above space, it will take you to
After running the prompts I listed above, it should save all your changes
Website¶
After you are done with all the steps above,it will take you here!
Step-1¶
Make your local repositary(zip code)
After the folder is made(downloaded), click on it
It should then apper on your desktop
Step-2¶
- Edit your site and add your template.
- Afterwards, go to cmd again and push the changes so that it will show up on your vs code site. (Make sure whenever you want images or videos, always push the changes so that it gets saved on vs code for your use as well)
Here are some commands that can be used for editing your site on vs code:
- Preview Markdown: Ctrl + Shift + V
- Bold Text:Add asterisks (**) in the front and back of selected text for bold: Ctrl + B
- Italic Text:Add single asterisks (*) in the front and back of selected text for bold: Ctrl + I
- Outline view: ##outline
- Header: #header
- Images: 
- Links : [text](link)
I think my favourite editor for editing my code is VScode .Thought I haven’t really tryed others, I find markdown more simple than html personally, and some other benifits of VS code include additional features like Syntax highlighting, IntelliSense, Git integration, extensions for nearly every language
This website template was used from Mr. Anith Ghalley with his permission.
Final Project¶
Now, Finally for my decided final project, I have decided to make a robot! The main idea for this came from the general idea of technology. Most people, apon hearing this word will think of robots, so I really wanted to be able to make one as well. And, with an oppurtunity like this, I know it can and will be possible!
Refrences!¶
# 1-Eilik The eilik is a tiny pet like robot! Its touch sensitive and can make different expressions and move according to where and how you touch it.
Points I want to imply to my project:
- The display that can change expressions
- The arm like structure that will be able to make movements
# 2-Samsung Ballie Robot This robot’s purpose is to be able to follow you around your home, and remember your routines. Its known as a home helper(as it can be connected to the electrical appliances of your home) and also comes with a projector.
Points I want to imply to my project:
- The bollinng ball like sturcture that makes it sturdy
- Maybe the wheels and how it moves.
# 3-Wall-E This robot may be from a cartoon, but I found the structure of the overall design intresting. This robot is mainly used to clean and sort out the garbage on Earth in the movie.
Points I want to imply to my project:
- The Camera eyes of the bot that helps it move and detect objects
So, to sum it up, I want to make a robot that moves and can detect objects with a camera, but also has a display where it can make expressions and wave if it sences a person near them.
Possibal additional features to add include the camera will be able to record will moving around(or I’ll keep it just for the robot to detect objects)
With all that in mind, I decided to make the final draft look like this-
I will later decide on the additional components and what I want to remove, but until then, this is how i’ll keep my sketch.
You can find more on my project here