Skip to content

2. Project management

This week we did learn basics of project management. The first thing we learnt was to use version controllers for managing project development. GIT an opensource version control system can be conveniently employed to track changes in the working repositories stored in the local machine (computer) and update the cloud server parallely.Things like what the changes were (what was added? what was removed from the file?), who made the changes, notes and comments about the changes by the changer, and at what time the changes were made. It enable one to work parallely, remotely without the need for carrying your work in storage devices everywhere. Also it would allow multiple users to work on a project where each one’s changes are stored as commits. These commits needs to be pushed to the remote cloud server (Fab cloud in this case).

GIT Lab home page GIT Lab student home page. In red circle shows the url of the published static site. GIT Lab home page Commits/ changes made and pushed to the cloud repo shown as timestamp.

Initially to start with,a trial project repository was made available for every student in the fabacademy in Fab Cloud. We were given access in the Fab Cloud in GIT Lab,a web based GIT repository manager that has features such as wiki,issue trackers,CI/CD(Continous Integration/Continous Delivery) pipeline features.

One big feature of Git Lab is Issue trackers these can be generated to raise issues and find solutions within. We can contribute to the issues and those are recorded chronologically as posts.

Web development

Although we thought we would have to use HTML to build a website a more easier option was at our disposal. We learnt that our work pages can be published as websites using GIT LAB PAGES feature of the GIT Lab. This enables creating an online content management system where by you can publish static websites directly from a repository in GIT Lab. Websites are written with markup languages for easier documentation proess.For this we learnt how to use Markdown a markup language tool that translates the code to HTML. The markdown files come with .md extension. Text and images that we intent to broadcast has to be manually edited just like in a normal text editor. The templates are available for making the websites more interactive. These templates can be configured and customised using mkdocs.yaml file found in the project repository.

To use GIT Lab pages, first project is created in GIT Lab to store the website’s files. The websites are build using CI/CD( continuous integration service ) feature and are published to the GIT Lab Pages server. This is facilitated by running scripts in the .gitlab-ci.yml file which can be edited as per our need. GIT Lab home page The scripts shown in this file are executed to get the website.

For compressing images GIMP an opensource image editor was used.

Steps to configure GIT in the local machine:

1) Install GIT
2) Create a local repository in the local machine
3) Enable git by git init
4) Configure by giving your fabcloud username and email by using git config 5) Generate SSH key in the local machine. Use ssh-keygen -t rsa -C "your.email@example.com" -b 4096
6) Copy the SSH key generated to the FabCloud account.
7) Clone the repository from the fabcloud. Use git clone username@host:/path/to/repository command.
8) Commit the changes by git commit -m "Commit message"
9) Find the status of changes in the repo by git push
10)Then push the files to the cloud repo by using git push

Some basic functions in GIT and commands

git config --global user.name "Sam Smith"- To tell GIT who you are
git config --global user.email sam@example.com - To tell GIT your email address
git init- To create a local repository
git clone username@host:/path/to/repository- To copy from cloud repo to your local repository
ssh-keygen -t rsa -C "your.email@example.com" -b 4096 : To generate SSH keys in the local machine
git add * add files to GIT
git commit -m "Commit message"- To commit changes commit changes to head (but not yet to the remote repository)
git commit -a- Commit any files you’ve added with git add, and also commit any files you’ve changed since then
git status - List the files you’ve changed and those you still need to add or commit
git push - Send changes to the master branch of your remote repository
git pull - Fetch and merge changes on the remote server to your working directory

The commands used for a git push.

References

  • [Basic GIT commands] (https://confluence.atlassian.com/bitbucketserver/basic-git-commands-776639767.html)
  • [GIT Lab] (https://en.wikipedia.org/wiki/GitLab)
  • https://docs.gitlab.com/ee/user/project/pages/