Week 1 Assignment: Principles And Practices, Project Management
MAKE YOUR OWN WEBSITE:
TECHNOLOGY USED:
HTML
CSS
Java Script
FRAMEWORK USED:
Bootstrap
EDITOR USED
Text Wrangler
OPERATING SYSTEM USED:
OS X El Capitan
COMPUTER USED:
Macbook Pro
As I am from electronics background but I was aware about various technologies and methodologies to create the website. I referred various online tutorials on to learn HTML, CSS, JS etc. One of the best documentation and easy going tutorial I found was www.w3schools.com
Since I have not done much of the development on MAC OS. I was not aware about the editors to use, so I did search on Apple app store and found Text Wrangler in top code editors app which was free to use.
Text Wrangler for code editing purpose as the editor is very easy to use and provide color coding also provide brackets management and line code numbers facility. On the left side it provides the list of files which we are currently editing. So making it easy to switch between the files and also provides SAVE or NOT indicator in order to check whether we have saved our files or not.
STEPS TO CREATE WEBSITE
- Understanding the requirement
- Creating Specifications from the requirement
- Creating design/layout by referring to multiple websites
- Confirming the website layout with local Fablab instructor
- Downloading required softwares and framework files to start the development
- Creating index.html file and creating resources folders like CSS, IMG, JS to store the resource files.
- Creating One more page to write about the first assignment.
Searching on the internet about the good website designs and saw lots of websites for the reference. Link of website I visited for the reference : https://themeforest.net
Version Control Protocols
There are many advantages to use version control protocols.
Version control systems are a category of software tools that help a software team manage changes to source code over time. Version control software keeps track of every modification to the code in a special kind of database.
- A complete long-term change history of every file.
This means every change made by many individuals over the years.
- Branching and merging
Creating a "branch" in VCS tools keeps multiple streams of work independent from each other while also providing the facility to merge that work back together, enabling developers to verify that the changes on each branch do not conflict.
- Traceability.
Being able to trace each change made to the software and connect it to project management and bug tracking software such as JIRA, and being able to annotate each change with a message describing the purpose and intent of the change can help not only with root cause analysis and other forensics.
Collaboration:
With a VCS, everybody on the team is able to work absolutely freely - on any file at any time. The VCS will later allow you to merge all the changes into a common version. There's no question where the latest version of a file or the whole project is. It's in a common, central place: your version control system.
Storing Versions (Properly)
A version control system acknowledges that there is only one project. Therefore, there's only the one version on your disk that you're currently working on. Everything else - all the past versions and variants - are neatly packed up inside the VCS. When you need it, you can request any version at any time and you'll have a snapshot of the complete project right at hand.
Restoring Previous Versions
Being able to restore older versions of a file (or even the whole project) effectively means one thing: you can't mess up! If the changes you've made lately prove to be garbage, you can simply undo them in a few clicks.
Every time you save a new version of your project, your VCS requires you to provide a short description of what was changed.
Backup
A side-effect of using a distributed VCS like Git is that it can act as a backup; every team member has a full-blown version of the project on his disk - including the project's complete history.
Other version control protocols:
Most web-developers have probably worked with some sort of revision control system, but designers may find it a foreign concept. The most obvious benefit of using revision control is the ability to have an unlimited number of people working on the same code base, without having to constantly send files back and forth.
CVS:
CVS is the grandfather of revision control systems. It was first released in 1986, and Google Code still hosts the original Usenet post announcing CVS. CVS is the de facto standard and is installed virtually everywhere. However, the code base isn’t as fully featured as SVN or other solutions.
Tortoise CVS is a great client for CVS on Windows, and there are many different IDEs, such as Xcode (Mac), Eclipse, NetBeans and Emacs, that use CVS.
Reference link: http://www.linuxdevcenter.com/pub/a/linux/2002/01/03/cvs_intro.html
SVN
Subversion is probably the version control system with the widest adoption. Most open-source projects use Subversion as a repository because other larger projects, such as SourceForge, Apache, Python, Ruby and many others, use it as well. Google Code uses Subversion exclusively to distribute code.
Because of Subversion’s popularity, many different Subversion clients are available. If you’re a Windows user, Tortoise SVN is a great file browser for viewing, editing and modifying your Subversion code base. If you’re on a Mac, Versions is an elegant client that provides a “pleasant way to work with Subversion.” Xcode is Apple’s developer environment and Subversion client that ships with Leopard on a Mac.
Reference link: https://www.smashingmagazine.com/2009/03/ultimate-round-up-for-version-control-with-subversion/
GIT:
Git is the new fast-rising star of version control systems. Initially developed by Linux kernel creator Linus Torvalds, Git has recently taken the Web development community by storm. Git offers a much different type of version control in that it’s a distributed version control system. With a distributed version control system, there isn’t one centralized code base to pull the code from. Different branches hold different parts of the code. Other version control systems, such as SVN and CVS, use centralized version control, meaning that only one master copy of the software is used.
Git prides itself on being a fast and efficient system, and many major open-source projects use Git to power their repositories
why use git?
Git is not better than Subversion. But is also not worse. It's different.
The key difference is that it is decentralized. Imagine you are a developer on the road, you develop on your laptop and you want to have source control so that you can go back 3 hours.
With Subversion, you have a Problem: The SVN Repository may be in a location you can't reach (in your company, and you don't have internet at the moment), you cannot commit. If you want to make a copy of your code, you have to literally copy/paste it.
With Git, you do not have this problem. Your local copy is a repository, and you can commit to it and get all benefits of source control. When you regain connectivity to the main repository, you can commit against it
.
Task 2 : USING GIT
Step 1 : Download git-2.10.1-intel-universal-mavericks.dmg from the github for MAC OS X

Step 2 : To install git, double click on .dmg file

Step 3 : Open the terminal to check the git installation by typing git

Step 4 : Log on to GitLab. URL : git.fabacademy.org

Step 5 : Create SSH key to connect with git, following the instructions on git.fabacademy.org
ssh-keygen -t rsa -C "amit.vy@somaiya.edu"
Step 6 : Copy and paste the key on Gitlab (git.fabacademy.org)
Step 7 : Clone the repository copy the clone address from Gitlab
git clone git@git.fabacademy.org:fabacademy2017/fablabriidl.git

Step 8 : Change the Git configurations
git config --global user.name "Amit"
git config --global user.email "amit.vy@somaiya.edu"
Step 9 : There will be a directory created in the name of your fablab. In my case it was fablabriidl. Copy paste or create html files in that directory under student/"Your roll number" folder.

Step 10 : Follow the basic git workflow. ( Credits - http://beachlab.org/fab2016/repo.html)
cd ~/folder_name # go to the repository folder
git pull # pull other students changes
git add --all # add your changes
git commit -m "message" # write a meaningful message
git push