Skip to content

Principles and Practices & Project Management

Assignment:

  • 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.
  • Upload parts 1 and 2, to the class archive.

To-do List:

  • Sketched your final project idea(s)
  • Described briefly what it will do and who will use it
  • Made a website and described how you did it
  • Created a section about yourself on that website
  • Added a page with your sketch and description of your final project idea(s)
  • Documented steps for setting up your Git repository and adding files to it
  • Pushed to your class GitLab repository
  • Signed and uploaded Student Agreement

Learning Outcomes:

  • Communicate an initial project proposal
  • Identify and utilise version control protocol(s)
  • Explore and use website development tool(s)

Time Management

Before getting started, I made sure to plan and outline my journey by making a Timetable. Hopefully, I will be able to stick to it.

You can access the link to my timetable here.

GitLab

GitLab is a web-based platform used for version control, collaboration, and software development. It helps teams manage their code, track changes, and collaborate effectively.

Setting up our GitLab


First of all, I downloaded Git Bash in my computer. You can do so by visiting this website.

To get started, I went through this tutorial.

Once you have downloaded Git Bash, you need to set up it up. To set up your GitLab, open Git Bash and run the command git —version to verify whether Git is installed or not.

Once you have made sure it’s installed, prompt the following commands to configure your user:

  • Set up your global username: git config --global user.name "YourUsername"
  • Set up your global email: git config --global user.email "your@email.com"
  • Cross-check the information: git config --global --list

SSH Key


To generate my SSH key, I ran the command ssh-keygen. After that, press enter for default location of files. Do the same if you don’t have a passphrase. You will be left with 2 files afterwards; one for the private key and one for the public key.

Now, we need to access the contents in the .pub file, which is where the public key should be stored. If you can’t find the file, you can run the command cat ~/.ssh/id_ed25519.pub which will provide you with its contents which you can then copy and paste. Replace ‘id_ed25519’ with the actual name of your file.

Next, visit your GitLab account, tap on your profile, go to ‘edit profile’, then to ‘settings’, and tap on ‘SSH Keys’. There, you will be able to paste the contents on the public key in the space provided.

After pressing ‘Add Key’, you will have successfully created your SSH key:)

Cloning Your Repository


Cloning your repository is very important because it allows you to work locally on your computer and sync changes.

In order to clone your project, open your project/repository in GitLab, tap on ‘Code’, and copypaste the contents on ‘Clone with SSH’.

Next, run the command git clone enter_your_url_here

Good Job! You have successfully cloned your repository.

Commit and Push Changes


It is very important to commit and push your changes in order to save your work. To do so, you must use the following commands:

  • Current state of your project: git status
  • Stage changes: git add .
  • Commit the changes: git commit -m "name_of_your_commit"
  • Push the changes: git push

Before pushing your files, one thing you need to keep in mind is the total size of your files( if you want to avoid appearing on the HALL OF SHAME). Each week, the files you push must not exceed 10 MB. To resolve this issue, I used Optimizzila, an online image compressor. It reduces the size of your images without affecting its quality.

Edit: I just found out that each file must not be more than 200 KB. Unfortunately, Optimizilla was not able to reduce all the files’ sizes to less than 200 KB.😭

Therefore, I resorted to XnConvert. XnConvert is a very user-friendly application that can reduce the sizes of images by a very significant amount. You can download it here. To go about it, I went through this tutorial. It has been very helpful in compressing the images.

Website


For the website, I used the template of my instructor, Mr. Anith Ghalley. To do so, I downloaded his template and made the necessary changes.

To work on your project locally, you can use various applications. I personally prefer using VS Code.

Here is how you can open your project on VS code.

I used Markdown to document my work. Here are some basic commands that you can easily use as well:

  • # Heading 1
  • # Heading 2
  • # Heading 3
  • **Bold text** or __Bold text__
  • *Italic text* or _Italic text_
  • ***Bold+Italic text*** or ___Bold+Italic text___
  • -List
  • 1. Ordered List
  • [text](link) : to link a text with a link
  • ![Alt Text](Image_URL) : to attach an image

Final Project Idea

Coming up with a creative yet useful final project was quite difficult for me. I wanted to create something that was useful to the people and could be implemented in our school.

Here is an image, overviewing a few of my possible final project ideas:

iPad Management System

In the end, I decided to make an iPad Management System! Here is a basic sketch outlining my design:

Objective:

Here in my school, students are required to make daily vlogs each year in order to enhance the student’s technical skills such as video recording and video editing skills. These vlogs also serve as a wonderful way to cherish their memories and see how much they have grown throughout the years. For this very purpose, students from each grade are handed out iPads daily, with a new student receiving one each day. However, managing the iPads can be quite difficult. Some are not always returned on time and some get damaged along the way, making it hard to track who has them. To solve this issue, I decided to make an iPad Tracking System. It is a smart method to manage the iPads by keeping track of which student took the iPad and when they returned it.

Working Mechanism:

The iPad Tracking System will consist of a box with six compartments, one for each iPad. Each compartment will contain a sensor which detects whether an iPad is present inside or not. Every student in my school will be provided with an RFID card, which they will be using to access the iPads. Students will be required to scan their RFID card in order to open the box to access the iPads. The name of the student, the date, and the iPad they took or returned will be recorded in a spreadsheet.

Reflection

I am surprised at how much I was able to learn in just a span of one week. I was able to use GitLab properly and I am happy with my final project idea. Hopefully, I can make it come to life.😶‍🌫️

That’s all for Week 1

Thank you!

The template for this website was provided by Mr. Anith Ghalley and used with his permission


Last update: February 19, 2025