Week 1: Principles, Practices, and Project Management
Initial Ideas for Final Project:
Idea #1: Go-Kart for Kids


Opportunity: In the large, shared yard there is a smooth track for running, but nobody uses it for that purpose.
However, this track would be perfect as a racetrack for small go-karts for children up to age 12.
For reference, the racetrack length is about 200 metres around and has two lanes, each about 80 cm wide.
The idea is inspired by one of the neighbours who already has a cheap plastic Chinese electric go-kart for their child.
The dream is to make multiple go-karts for racing, in an aesthetically pleasing way from good material,
and further involving children in the construction process as a hands-on educational activity.
Specifically this could be the core activity in a 2 or 4 week summer camp. Our initial project is to make a working prototype.
The following features may be included:
- Electric
- Controlled (started) from phone
- Sleek design
- Safety features (for kids)
- Self-driving features!?:
- computer vision to follow a track
- stop automatically if obstacle detected
Idea #2: Robotic "Gatekeeper"


The general idea is to have a simple Robotic "gatekeeper" which would be at the entrance to an extra-curricular Robotics space.
Two primary functions:
- Keep attendance
- Dispense treats
Developing the personal page:
I'm developing my website using VSCode and writing in HTML. I started with the provided template, later I want to improve it.

This week I spent the most time and learned the most about using HTML. Here are some of the things I've learned:
- Making lists.
- Linking to internal pages of the same site
- Linking to external sites
- How to display HTML code without having the code interpreted as HTML
GIT:
In short, GIT is some kind of management or version control system for software (or websites in our case).
Basically, participants have their local repository of files and webpages that they can develop locally on their computers and then periodically publish.
To do this, we are instructed to use something called GIT BASH. There are a few essential commands to know:
1. Git status: it informs the differences between local and published versions

2. git add / git commit / git push: these commands together will publish the updates to server

A few notes on the commands:
- "git add ." with the period means to add all new files
- "git commit -m "message" adds a message to the commit, explaining what is the changes
- "git push" publishes to server
Notes on the lecture - which may not be important to include here..
Project Management crucially involves both Time Management and Documentation.
A key point from Neil's lecture is the idea of Spiral Development, which essentially means to "make it work, then make it better."
This week I worked on defining my final project idea and started to getting used to the documentation process.
Time Management:
Apparently there is so much to do and learn in the Fab Academy that careful time management is of the utmost importance to complete tasks in time.
In this context the idea of Supply Side time managment sticks out as an important concept. This means that one should not do one thing and then the next until the project is finished. This cannot work effectively because there is a deadline. Instead we should determine the available time, usually in our context one week, and schedule the necessary steps to be completed within that time.
Documentation:
Although I generally get the concept, I lack sufficient practice in documenting all that I do, and hope to gain from engaging with the practice of documentation every day.
Neil gave 3 reasons for documenting:
- It's how we will be graded.
- It's helpful for others, we can search the site for projects (example: how to make a drone)
- It's helpful for ourselves.
- The process of documentation can solidify knowledge
- The documented content can serve as a resource for ourselves