Week 1

A.Project Management

This is the fist Assignment in Fab Academy that started on Wednesday 26th Jan, 2021. We will start by working through Git and kowing what does it do

Git is the most commonly used version control system, it tracks the changes you make to files, so you have a record of what has been done, and you can revert to specific versions should you ever need to. Git also makes collaboration easier, allowing changes by multiple people to all be merged into one source.

So regardless of whether you write code that only you will see, or work as part of a team, Git will be useful for you.

Git is software that you can access via a command line (terminal), or a desktop app that has a GUI (graphical user interface) such as Sourcetree.

Chania

Create an account

First we go to GitLab's website

Then we sign up for a new account, and confirm it from the email sent to you from gitlab.

Cloning the project

First, we need to clone the project to our local PC in order to control and edit the website and then we have to download a Graphical user interface (GUI) to be able to control our site like Sourcetree we mentioned earlier.

Then we need to generate a Private and Public keys to publish your work and then add the key to your account on Sourcetree, from SourceTree > Tools > Create SSH Keys > *Create or import SSH keys

Then click Generate












Now you just need to save the keys generated to use them later on Sourcetree.

After that we can Clone our project

Horrrrayyyy

Now you are ready to publish your website.

Then we need to download Bootstrap 5 from here, which will be easier to use as you don't need to write down your code in html, CSS, and JavaScript individually.


Then you need to download any code editor software as Notepad ++ or Visual Studio Code which I prefer as it's more stylish. As We explained before in the Fab Academy student bootcamp how to create and clone a git website that you can find here . Now we need to work on a new website in order to document all our work through Fab Academy, so I visited HTML5UP and found a very cool template called Phantom .


After extracting the files of the template, we will find the following files


After that we only need to edit the template as we need in our website through VS Code

Typing in Bootstrap was a bit challenge as it was my first time to do it so I used a lot of useful resources that you can find later here.

Getting started with Bootstrap

Then we can edit the code by just getting the right code for every edit we want to make and type it down in our code to be customized as following.

So we can find that each button for example has a certain code that we can use. And on the left bar we can find other stuff we can use as Images, Navbars, Dropdowns and so on...

Actually I had to search a lot for useful resources for bootstrap codes so I found the following that can be useful to you as well

getbootstrap.com

w3schools.com

Pushing the websit online

We need now to edit a file called .gitlab-ci.yml.

Chania

We need to delete its content and add the following code in order to make Fab academy's website take the new files we made.

pages:
stage: deploy
script:
  - mkdir .public
  - cp -r * .public
  - mv .public public
artifacts:
  paths:
  - public
  only:
  - master
						
Chania

Then we get to Source tree, and we will find that we need to stage all the edits we've made, click on Commit, and then Push them all as shown.

And this will be the shape of the final website :)


B.Principles & Practices

Thinking about the final project wasn't easy of course, as I needed to get an idea that meets the Fab Academy project criteria which is as following:

The project should incorporate:

  • 2D and 3D design
  • additive and subtractive fabrication processes
  • electronics design and production
  • embedded microcontroller design
  • interfacing
  • programming
  • system integration and packaging
Where possible, you should make rather than buy the parts of your project.

Final Project initial idea

So I came up with an initial idea, which is a Automated Cotton Candy Machine

Simply, the idea is to build a cotton candy machine that makes cotton candy out of sugar by heating up a small holed container in the middle that rotates at a very high speed. Then the sugar will melt as it's rotating to be forced out of the holes in the container by centrifugal force and create a floss of sugar starting from the container up to the bigger container holding it. The main purpoe of the project is to make collecting the floss automated, so we should build also another mechanism that holds the wooden stick that will collect the floss and make it rotate around bigger container with its facing down in order to collect allthe floss that is made.

I believe that a machine like this can be operated easily by anyone above 10 years old, as it must be simple enough to be used

You can find also the working priciple of the cotton candy machine here

BOM

Name Quantity Notes
Dc motor 2 One big motor for the outer case and one for robot's base
Heater 1
3D printed robot arm 1
Outer case 1
Control unit 1 Controller, drivers, etc...

So who could be using this project?

Anyone who likes cotton candy can simply use this project to make his own cotton candy.