Website Development

I started my website development with deciding what template to use. As in any case too many choice is killing choice so I started with setting up some requirements to narrow my search.
My Fab Academy website has to be:
1. Mobile friendly
2. User friendly
3. Compact
4. Easy to customize
5. Free
6. Pleasant to the eye

In my estimation the HTML5 UP templates fully meet those requirements. While previewing the templates I’ve concluded that I need two templates one for my home page and another one for my weekly activity postings.

I’ve chosen Dimensions template for home section and Editorial for weekly postings.


Code Editing Software

The next step was to choose code editor in order to customize the website. I tried to play with html before and used Notepad++ but after I was introduced to Visual Studio Code a week ago I realized that I was wasting so much time by refreshing the browser and jumping from one file to another. It has live preview so whenever you make a change it automatically updates the preview page on the browser, it has useful and customizable keyboard shortcuts for almost any action and it has folder loading capability that’s very useful. So I will never go back to Notepad++ for web development work. I have some experience with HTML and CSS but for students who dive in web development for the first time the HTML tutorial by Krisjanis Rijnieks will be a good starting point. I will try to explain some key concepts that in my estimation would be handy for Fabacademy students.
There are 6 Header tags from h1 to h6 you use them for headings here they are:


<h1>Header1<h1>

Header1


<h2>Header2<h2>

Header2


<h3>Header3<h3>

Header3


<h4>Header4<h4>

Header4


<h5>Header5<h5>
Header5

<h6>Header6<h6>
Header6

<p> and it's ending <p> are used for paragraphs
<p>This is a regular paragraph</p>

This is a regular paragraph


<br> enters to a new line

<a> and it's ending </a> are used for hyperlinks both for websites and internal pages and files.
<a href="http://fabacademy.org/2019/">FabAcademy Website<a>
FabAcademy Website

<a href="../cad files/week4/rfid antenna.svg">rfid antenna.svg<a>
rfid antenna.svg

And finally image tag <img/>
<img src="../images/Border.png" alt="Border" /> Border


Saving size

The next thing that I discovered was Fontawsome it’s a special web font with vector icons and social logos that you can use without worrying about imhttp://fabacademy.org/2019/docs/FabAcademy-Tutorials/week01_principles_practices_project_management/html_basics.htmlage sizes or formats. The problem was in order to use this font HTML5 UP templates have a special directory assets/fonts where they store font files locally. While checking the icons and deciding which one to use, I discovered that I make my website to get the fonts externally by changing the first line of the main.css code:
Replace @import url(font-awesome.min.css);
with this @import url(https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css);
delete assets/fonts directory.
By doing this I saved 1.1Mb. delete fontawesome.min.css in assets/css and saved 31kb. I’ve decided to continue my size optimization and the next interesting thing was the jquery.min.js at assets/js directory (JavaScript library) that was the second biggest file.
Replace this line in index.html file src="assets/js/jquery.min.js"
with this src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"
with this you save 87kb. So in total I got about 1.22Mb saved. Taking into consideration that each student has 300Mb and 1Mb per week this savings are tangible.


Image sizes and formats

The next important points are image sizes and formats. Some years ago I was working for an online publication and used Adobe Photoshop, Illustrator, InDesign for creating web banners logos newsletter designs and brand books. There’s a very useful feature in Adobe Photoshop called “Save For Web & Devices” where you can play with different settings and web formats while being able to see resulting file size, loading time and even preview the resulting image.

While I find myself rather interesting and fun person I think that my website should have something about my wonderful country. So I decided to have a background image about Armenia. The background image on my website’s home section is a decorated manuscript page from T'oros Roslin Gospels a manuscript that was made in 1262 in Armenian Cilicia Kingdom .


Version Control

Version control systems help us to keep track of our changes on the files and projects and helps to recover old versions in case you need them or something goes wrong. There are three types of version contorl sytems:
Local Version Control Systems - This is not the best solution although in sime cases it's the only option.
Centralized Version Control Systems - This one is better in terms of accessibility but is bad for safety of the data (in case the central unit dies).
Distributed Version Control Systems - This one is the best one since it's not centralized and it enables people to work colaboratively. This is what we will use during our FabAcademy course.
Git is a Distributed version control system mainly used by software developers.

Installing Git on Linux

Open the terminal and enter this:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install git
Make sure git is installed by typing:
git version
For setting up you Git check this Git simple cheat sheet
The main commands that we'll use are:
git status Shows what files are untracked what commits are waiting to be pushed etc.
git add filename Adds certain file to staging area (The place where it can be commmited)
git add . adds all root files to staging area
git add --all (or -A) finds all new and updated files in root and subfolders and takes them to staging area.
git commit -m "commit message" commits all staged changes with a message.
git push uploads the local repository to remote repository.