Week 1: Principles and Practices, Project Management

Assignment Overview

This week, I learned about Fab Academy principles and set up my project management environment.

Date: January 21-27, 2026


Part 1: Principles and Practices

Assignment

Plan and sketch a potential final project.

My Final Project Idea

I decided to make a Smart Reptile Habitat System!

This system will automatically control temperature and humidity for my pet geckos and snakes. I want my pets to live in comfortable environment without stress.

You can see more details on my Final Project page.


Hand-Drawn Sketch

I started by drawing my idea on paper to visualize the system.

Project Sketch - Full View Hand-drawn sketch showing the reptile habitat with control system

What the Sketch Shows

What the Sketch Shows

Main Components:

1. Reptile Cage (glass enclosure)

  • Transparent walls to see the pet
  • Comfortable environment inside

2. Control Box Lid (top part)

  • Contains all electronics
  • Acts as both lid and equipment housing
  • Easy to access for maintenance

3. Inside the Cage:

  • 🦎 Happy Gecko - my pet living comfortably!
  • Temperature & Humidity Sensor
  • Heater - for temperature control
  • Lighting - for day/night cycle
  • Humidifier - for humidity control(☁️ symbol)

4. Labels on Sketch:

  • Control Board
  • Power Supply Unit
  • Temperature & Humidity Sensor
  • Humidifier
  • Heater
  • Lighting

Design Thinking Process

Why this design?

  1. Integrated lid design: The control box doubles as the cage lid, saving space and keeping all electronics together
  2. Sensors inside the cage: Direct measurement of actual living conditions
  3. External controls: Safe from moisture, easy to maintain
  4. Simple layout: Easy to understand and build

Key considerations:

  • Safety (electronics away from water)
  • Accessibility (easy to maintain)
  • Pet comfort (minimal intrusion)
  • Expandability (can add more sensors/devices later)

Project System Diagram Conceptual diagram showing how components connect (Note: This will be created in future weeks with CAD software)


Why This Project?

I want my pets to live in comfortable environment without stress.

But we humans cannot fully understand what is the best environment for reptiles. We cannot feel what they feel.

So, my first goal is to provide stable environment continuously. Then I can watch my pets and see if they are happy. This will be the base for making better improvements.

I think this kind of environment control system can also be used for livestock farming and agriculture in the future.


Initial Technical Planning

Based on my sketch, I identified the key components I'll need:

Hardware:

  • Microcontroller (ESP32 or similar)
  • DHT11 sensors (temperature & humidity)
  • Relay modules (for controlling high power devices)
  • Heater
  • Lighting system
  • Ultrasonic humidifier
  • Fan (for air circulation)

Software:

  • Sensor data reading
  • Automatic control logic
  • Data logging
  • WiFi communication (future)
  • Mobile app/web dashboard (future)

Fabrication:

  • 3D printed control box lid
  • Laser cut mounting plates
  • Custom PCB for sensor & environment control integration
  • Cable management system

Part 2: Project Management

Assignment

  • Download, read, and sign the student agreement
  • Work through a Git tutorial
  • Build a personal site describing myself and my final project

Setting Up Git

Installing Git

I already had Git installed on my Windows PC. I checked the version:

git --version

Configuring Git

I set up my name and email for Git commits:

git config --global user.name "Shinya Sakakibara"
git config --global user.email "myemail@address"

Cloning My Repository

First, I tried SSH but got an error because of Japanese characters in my Windows username. So I used HTTPS instead:

cd C:\Users\******\Documents (Masked)
git clone https://gitlab.fabcloud.org/academany/fabacademy/2026/labs/nagoya/students/shinya-sakakibara.git

This worked perfectly! (Maybe)

Basic Git Workflow

I learned the basic Git commands:

# Check status
git status

# Add files
git add .

# Commit changes
git commit -m "Commit message"

# Push to GitLab
git push origin main

Building My Website

Why MkDocs?

The repository came with HTML files, but I decided to use MkDocs instead because: - Easier to write content in Markdown - Automatic site generation - Clean, professional look - Easy to maintain

Setting Up MkDocs

Step 1: Install MkDocs and Material theme

pip install mkdocs mkdocs-material --break-system-packages

Step 2: Initialize MkDocs

cd shinya-sakakibara
python -m mkdocs new .

This created: - docs/ folder (for Markdown files) - mkdocs.yml (configuration file)

Step 3: Configure MkDocs

I edited mkdocs.yml:

site_name: Shinya Sakakibara - Fab Academy 2026
site_author: Shinya Sakakibara
site_url: https://fabacademy.org/2026/labs/nagoya/students/shinya-sakakibara

theme:
  name: material (will be changed)

nav:
  - Home: index.md
  - About me: about.md
  - Assignments:
    - assignments.md
    - Week 1: assignments/week01.md
  - Final Project: final-project.md

Step 4: Create pages

cd docs
New-Item about.md -ItemType File
New-Item final-project.md -ItemType File
New-Item assignments.md -ItemType File
mkdir assignments
cd assignments
New-Item week01.md -ItemType File

Step 5: Test locally

python -m mkdocs serve

I opened http://127.0.0.1:8000 in my browser and could see my site!

Trying Different Themes

I experimented with several themes:

Material theme (my choice):

theme:
  name: material

Bootswatch themes (installed separately):

pip install mkdocs-bootswatch --break-system-packages

Then I could use: cerulean, flatly, slate, darkly, etc.

I tried a few themes and decided to use flatly for now because it looks clean and professional.


GitLab CI/CD Setup

Problem

The original .gitlab-ci.yml was configured for plain HTML files, not MkDocs.

Solution

I updated .gitlab-ci.yml to build MkDocs automatically:

image: python:3.11

pages:
  stage: deploy
  script:
    - pip install mkdocs-material mkdocs-bootswatch
    - mkdocs build --site-dir public
  artifacts:
    paths:
      - public
  rules:
    - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH

How it works

  1. I push changes to GitLab
  2. GitLab CI runs automatically
  3. Installs MkDocs and themes
  4. Builds the site (mkdocs build)
  5. Publishes to https://fabacademy.org/2026/labs/nagoya/students/shinya-sakakibara/

Testing the Pipeline

First attempt failed because theme name was wrong in mkdocs.yml. After fixing, the pipeline succeeded! ✅


Student Agreement

Reading the Agreement

I downloaded and read the Fab Academy Student Agreement. It explains:

  • Rights and responsibilities
  • Documentation requirements
  • Safety guidelines
  • Intellectual property

Signing the Agreement

Status: ✅ Completed

I created the Student Agreement as a Markdown page in my repository.

By committing this agreement to my repository, I officially sign and accept the terms. You can view my signed agreement here: Student Agreement

Date signed: January 25, 2026


What I Learned

Technical Skills

  • ✅ Git basics (clone, add, commit, push)
  • ✅ MkDocs setup and configuration
  • ✅ Markdown writing
  • ✅ GitLab CI/CD pipeline
  • ✅ Troubleshooting (SSH vs HTTPS, theme errors)

Project Management Principles

  • Spiral development: Start simple, improve gradually
  • Documentation: Write as you work, not after
  • Version control: Git makes everything safe
  • Automation: CI/CD saves time

Problems I Solved

  1. Theme installation: Added mkdocs-bootswatch to CI script
  2. Pipeline failure: Fixed theme name in config file

Time Management

Activity Time Spent
Git setup 1 hour
MkDocs learning 2 hours
Website structure 1 hour
About me page 2 hours
Final project page 2 hours
CI/CD troubleshooting 1 hour
This documentation 2 hours
Total 11 hours

Files in My Repository

shinya-sakakibara/
├── docs/
│   ├── index.md
│   ├── about.md
│   ├── final-project.md
│   ├── assignments.md
│   ├── student-agreement.md
│   ├── assignments/
│   │   ├── week01.md
│   │   └── week02.md
│   └── images/
│       ├── profile.jpg
│       ├── final-project-diagram.jpg
│       └── fcontrol-box-sketch.jpg
├── mkdocs.yml
├── .gitlab-ci.yml
└── README.md

Week 2 Preview

Next week is Computer-Aided Design. I will start designing the control box for my reptile habitat system using CAD software!


References


Last updated: January 25, 2026