Skip to content

2. Project management

This week I tried to go through all the topics Professor Neil taught. Main focus was given on Version Control & Web Development.

Synchronization

Two types of synchronisation, rsync & unison were taught. Synchronisation softwares are used to maintain two or more file systems to behave like clones of each other

Version Control

I got access to my repo in gitlab & was able to edit the files online itself. From What I understand, there are two protocols available with Gitlab. HTTPs and SSH. For using SSH, we need to use special software for generating the keys and paste the key in the repo in a designated location. HTTPs encrypts the data when it moves between our PC and the remote server. This works flawlessly and is a bit easy on noobs like me. I decided to stick with HTTP protocol.

I downloaded Git for windows and used the Git Clone command to make a local backup of the repo

After editing on the cloud, I used Git Pull command to make the same changes in my local files

Web Development

I used Visual Studio Code as a text editor for writing the code

I used the Live Server for seeing the updates I make real time

A screenshot of the Website Preview and the code underlying, side by side

Now I decided to edit the Markdown files instead of making a new website from scratch. Markdown felt a lot simpler than HTML. I installed Python so that Mkdocs servve can be used for live preview

I tried installing Mkdocs using the pip method, but it showed pip is not a recognised command

So I searched online to solve this

Installed PIP as recommended in the GitHub

Tried to install Mkdocs again

The Material theme was not recognised

Searched online about the issue. GitHub came to rescue again

Mkdocs was installed succesfully & I used Mkdocs serve

Preview of the website and the underlying Markdown code side by side. I learned Markdown from Github guides

I came to know that VS Code has a builtin terminal also!

Project Management Principles

  • serial vs parallel development - A concept in which a Project is broken down into smaller projects that dont depend on each other and working on them at the same time.
  • spiral development - Breaking down the project into smaller goals and finishing it one by one.
  • bottom-up vs top-down debugging - Bottom up means looking at the finer details first and making sure everything functions as required. Then consider bigger sysytems and finaly the entire system. Top down is the opposite of it.