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.
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?
- Integrated lid design: The control box doubles as the cage lid, saving space and keeping all electronics together
- Sensors inside the cage: Direct measurement of actual living conditions
- External controls: Safe from moisture, easy to maintain
- 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)
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
- I push changes to GitLab
- GitLab CI runs automatically
- Installs MkDocs and themes
- Builds the site (
mkdocs build) - 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
- Theme installation: Added mkdocs-bootswatch to CI script
- 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
- Fab Academy 2026 - Principles and Practices
- Fab Academy 2026 - Project Management
- MkDocs Documentation
- Material for MkDocs
- Git Documentation
Last updated: January 25, 2026