Study archive - Week 1
Principles and practices. Project management
This week started with a video lecture on Wednesday 27.1 about principles and practices of using Fab lab, and project management.
The tasks of this week consists of (1) planning and sketching a project, and (2) building a website on top of git as well as documenting git commands.
Final project proposalMy final project is about designing and building a functional prototype of a smart home panel that enables people to communicate better with peers and environment, namely helps them monitor and control different house parameters such as temperature, humidity, and light, as well as send data to family and own computer device for future analysis. An initial sketch of the prototype shows the interactions, inputs, and outputs of the system.
WebsiteI built this site using a free CSS template found on the Internet. I searched using the keywords "simple CSS free template" and after inspecting some pages, I liked this one the most and downloaded from www.free-css.com. It is called "Substance Professional " and is based on Bootstrap development framework.
I have modified the template using the editor Brackets, recommended by Jani - the Fab Lab Oulu manager.
I learned some tricks and tips about coding in Html by using the W3schools.com tutorial.
Git tutorialIn the class, we logged in to GitLab - the git repository of Fab Academy archive. Beforehand, we created useraccounts: it was needed a valid email address; with this we created a new username and password for GitLab (see here git.fabacademy.org) and were added as developers of the repository.
Fablab Oulu is one project in Fabacademy 2016 group. In GitLab one can see Activity of each developer and also the Files, Commits, History, etc.

When selecting a project (e.g., fablaboulu), more options in the left-hand side menu are available.

Commits are important in git; they record the changes to the local repositories. However, these are not published in the central or remote repository until we push them (using the command "git push origin master").
The first thing to do in order to use git is to generate an SSH key. This is important for the authentication when pushing new content to the remote repository. For this I have used the Git Bash terminal and entered the command:
ssh-keygen -t rsa -C "<email address>"
Next, the key is saved in GitLab interface. In Gitlab, click on Username > Profile Settings > SSH Keys.

Next, we create a local git directory of fablaboulu project using the command "git clone":
git clone git@git.fabacademy.org:fabacademy2016/fablaboulu.git
The git fablaboulu project is ready to be updated. Throughout the Fab Academy project I have used Git Bash to upload the files to the repository (see here Git Bash download).
After setting up the git repository locally with "git clone", the following commands are used to inspect and add content to the local and remote repository:
git status
- to inspect the local repository for changes.
git pull
- to copy the contents of the remote repository into the local repository. It ensures that the local repository is up-to-date.
git add .
- to add new files to the local repository. The files should have been copied into the local repository from the workspace beforehand (i.e., staged).
git add <filename>.
- to add specific files to the local repository. The files should have been copied into the local repository from the workspace beforehand (i.e., staged).
git commit -m "message"
- to record the changes to the local repository.
git push origin master
- to publish/push the local changes into the remote repository.
It has to be noted that git add
commands should be given when we are in the correct directory (use cd..
and cd <path>
to navigate within a directory and use ls
to list the contents of a directory).
A more detailed tutorial on Git can be found here (by atlassian.com)
Summary of Tools used
Substance Template from Bootstrap - a nice CSS template, based on which I built this website
www.free-css.com - for finding free CSS templates
Brackets - for editing web pages
w3schools.com - for learning HTML
Git and Git Bash - for sharing the website files and maintaining history