1. Project management
Principles of project management:
Work on schedule rather than working on tasks=> do planning "tasks based".
Apply triage principles like in hospital (too late /almost dead, injured seriously=> can be saved, very light injury=> not urgent
Apply the triage => find "injured tasks where stituation can be saved or recovered => this should be your focus
Serial vs parallel development
Apply spiral development principles: first spiral with limited features, second iteration / spiral: spirial is larger with more features
Iteration process / AGILE sprints: discover, design, develop, test
Bottom-up vs Top-down debugging.
Document your projects along the way !!! => if your work is nicely documented, your webpage should look like a notebook.
Useful project management links:
Basic Terminal commands:
A selection of the most useful commands to get started with.
$ pwd // print working directory
$ ls // to get the list of files in the working directory
$ ls - al // List of files in working directory (including hidden files)
$ rm // remove from working directory
$ rm –i // will ask confirmation before deleting file
$ rm // will delete the directory assuming it is empty
$ rm –r // will recursively delete a directory and all its contents
$ cd [OPTIONS] directory // will change directory
$ cp path_2_sourcefile/file path_2_destination // file copy
Basic Git commands:
Gitlab is the tool yhat we will be using to manage the versioning of all the project files.
The Git repos is essential to keep your work, manage SW releases of your website and also for any code we generate for the final project
Gitlab will not only be used for control versioning but also as a project management (creation of issues, milestones and kanban boards
Gitlab key functionalities
git init: to activate versioning control in a working directory
git add: to add files in the staging area
git add -u => to perform an add of all the files modified since the last commmit on the local Repo
git add . => to perform an add of all files that are “untracked"
Git commit -m "text to document commit" => to perform to add files to the local repository
Each "commit" operation will be associated to a pipeline
git push origin main => from local repo to main brabnch of the remote Repo
Illustration of the 3 local areas and remote area and key mechanisms between the levels
SSH key creation:
To ensure strong authentication in the connections, the preference is given to the SSH protocol that
will be used in the connection between the SSH Client and the server.
Given that the SSH provides strong encryption and integrity protection, it will enable secure automated transfer of the files between the local and the remote repositories
SSH KEYS creation:
step 1
I have been using the Terminal commandline on the MAC OS platform.
The SSH key generation process can be done using the command ssh-keygen. For full details, check the screenshot below
step 2.
step 3.
At completion of these operations, an SSH key consisting of a pair of files has been generated
The private key: never share this SSH key !!!
The public key: which allows you to safely log-into remote containers
Early idea of the final project:
My idea is to create a square panel covered with a patterm of flowers (fake ones made of paper or Vinyl)
These flowers would open and close when the sun rises and humans in the room wish to shield the light in the room
Overview of the high level architecture and concept:
Link to the final project page:
Final Project page