Fab Academy 2026  ·  Week 01

Principles and Practices
& Project Management

This week I built and customized my personal website for Fab Academy and learned how to document my work properly. I explored templates, chose a visual style that represents me, and modified the HTML files to structure my site. I also learned the basics of Git, how to manage versions locally, and how to push updates to the Remote Repository. Overall, I set up the foundation for my documentation and now I'm ready for the upcoming weeks.

Git HTML / CSS Personal Website GitLab Warm Minimalism VS Code
HigiBox Final Project Final Project Sketch Git Explanation

Principles and Practices

  1. Plan and sketch a potential final project.
  2. Read, sign and upload the student agreement.

Project Management

  1. Work through a git tutorial.
  2. Build a personal site.
01
Principles and Practices

Principles & Practices

✏️ Sketch of Final Project

Intelligent Menstrual Care Dispenser

For my final project, I plan to design and prototype an intelligent menstrual care dispenser intended for personal use. The project focuses on improving the menstrual experience by combining physical interaction, embedded electronics, sensors, and mobile connectivity.

The objective is not only to create a dispenser, but a smart companion device that supports, informs, and empowers users throughout their menstrual cycle. The system promotes hygiene, accessibility, and menstrual health, while also helping to reduce the stigma surrounding menstruation.

Final Project Sketch

Click each section to expand the details:

🖥 Front View +

The front features an elegant enclosure with an LCD screen displaying notifications such as period reminders, low product alerts, and motivational messages. A yellow accent line and warm lighting enhance visibility and create a friendly user experience.

🔽 Downside +

Contains product output openings designed to dispense one sanitary item at a time, ensuring controlled and safe distribution.

📂 Open View +

Shows the refilling mechanism — users push and open the front door to access the internal storage area for easy restocking and maintenance.

⚙️ Inside / Side View +

Presents two design options. Option A uses spiral strips (like vending machines) with motion sensors for higher capacity and multiple openings. Option B simplifies with buttons instead of sensors, providing more internal space and one output hole per product. Both include a lower circuit box with motor, microcontroller, power supply, and a dedicated space for menstrual pain relief pills.

📱 Mobile Interface +

Complements the dispenser with period tracking, notifications, reminders, and interaction messages, keeping users informed and emotionally supported.

HigiBox - AI Generated Concept
🤖 This image was generated with ChatGPT after describing my final project concept to it.
✦ More about Final Project →

📋 Student Agreement

The Fab Academy is responsible for:
  • Teaching principles and practices of digital fabrication
  • Arranging lectures, recitations, meetings, and events for the class
  • Evaluating and providing feedback on student work
  • Offering clear standards for completing assignments
  • Certifying and archiving student progress
  • Supervising class preparation
  • Reviewing prospective students, instructors, and labs
  • Providing central staff and infrastructure for students, instructors, and labs
  • Fund-raising for costs not covered by student tuition
  • Managing and reporting on the program's finances, results, and impacts
  • Publicizing the program
  • Promoting a respectful environment free of harassment and discrimination
  • Encourage a diverse, accessible, and equitable community
I am a Fab Academy student, responsible for:
  • Attending class lectures and participating in reviews
  • Developing and documenting projects assigned to introduce and demonstrate skills, in enough detail to be able to reproduce them
  • Honestly reporting on my work, and appropriately attributing the work of others (both human and machine, including AI prompts)
  • Being prepared to answer questions about my work
  • Allowing the Fab Academy to share my work (with attribution) in the class for purposes compatible with its mission
  • Working safely
  • Leaving workspaces in the same (or better) condition than I found them
  • Participating in the upkeep of my lab
  • Ensuring that my tuition for local and central class costs is covered
  • Following locally applicable health and safety guidance
  • Recognizing limits on lab and staff time
  • Promoting a respectful environment free of harassment and discrimination
Signed by committing this file in my repository,
Micaela Lucrecia Córdova Carmelino
02
Project Management

Project Management

🗂️ Git Tutorial

Despite having zero experience with terminals, this process went smoothly by following Fab Academy's Git Extended Cheat Sheet alongside my instructor.

Some minor complications I ran into:

  • Ctrl + C / Ctrl + V don't work in Git Bash — you have to paste manually.
  • Commands with double dashes "--" sometimes merged into one line when pasted, causing errors.
  • I also learned about file size limits and submission requirements.

Before starting, it was important to understand what Git actually is. Git is a version control system that saves changes over time — letting you work locally, stage your changes, commit them as snapshots, and push them to a remote repository that everyone can see. Pulling brings the latest version back to your local machine.

Git Explanation

⚠️ If you used a template for your repository, you must give credit to the website and share the link.

🔧 SETUP GIT: Tutorial to enable access

  1. Install GitBash for Windows from https://git-scm.com/install/windows and open it inside the general folder. GitBash for Windows
02
Add your Git username and set your email address:

git config --global user.name "YOUR_USERNAME"

git config --global user.email "jSmith@mail.com"
03
Check if you have an SSH key already:

cat ~/.ssh/id_rsa.pub
04
If you don't have an SSH key, generate it with ssh-keygen -t rsa -C "$your_email". Since I already had one, I just used cat ~/.ssh/id_rsa.pub to display it.
05
Copy your SSH key — use clip < ~/.ssh/id_rsa.pub (Ctrl + C does not work in Git Bash).
06
Log in to your GitLab account (provided by Fab Academy) and go to your profile.
Git Bash terminal
  1. Add the copied SSH key to your GitLab profile — follow these four steps inside GitLab:

    a. Enter your account

    GitLab Step a

    b. Edit profile

    GitLab Step b

    c. SSH Keys settings

    GitLab Step c

    d. Paste SSH key

    GitLab Step d

💻 Cloning my Repository to my Laptop

  1. Create a folder on your local computer (I recommend Desktop — short path).
    ⚠️ Warning: Don't create the folder in OneDrive or any place with a long path — it caused issues.
  2. Open GitBash inside that folder (Right-click → "Open Git Bash Here"). Open Git Bash Here
  3. Clone the site using your repository link:

    git clone git@gitlab.fabcloud.org:academy/fabacademy/[My link] Repository link

⬆️ Editing the Website and Uploading Changes

After making all desired changes in your editor and saving them, follow these three steps to push them to the remote repository:

Git Bash terminal
  1. Add changes to the next commit
    git add .Stages everything in the current directory and all subfolders
    git add index.htmlStages only that specific file, even if you changed 10 others
    git add public/nameUsed to add a specific folder or file (HTMLs or images)
  2. Name the commit — tell Git what you did
    git commit -m "Nombre"Creates a named version snapshot with your staged changes
  3. Push to the global repository
    git pushUploads your committed versions to the remote repository
💡 Staging

Means choosing which changes are ready to be saved as a version.

⚠️ Warning

Avoid saving files with spaces in their names.

Local vs Remote comparison
My laptop with the local changes vs. my instructor's laptop showing the remote version (without the changes yet)

Basic Commands in Git

cd\Takes you to the top of the directory tree (C: drive)
cd windows\systems32\Navigate to a specific folder
cd..Go back one folder level
git pullDownload the latest copy of the repository
git mergeMerge a working copy
git rmRemove a tracked file
git mvMove or rename a file
git statusSee what changed or current status
dirView contents of a directory
lsView files as a list
cdKnow which directory you're in
cd NameMove between directories
mkdirCreate a new directory
⚠️ Attention: There is a 10MB limit per push
If the push fails due to file size, reset Git to delete the commit history. First check status: git status

Two types of reset:
git reset --soft — Resets the last commit without touching local files.
git reset --hard — Resets to a specific commit and discards all uncommitted changes.
🔄 Update Week 5: Cleaning Large Files from the Repository +

During Week 5, I encountered an issue in my repository. By accident, I had uploaded a PDF file larger than 10MB. When trying to push the changes to GitHub, the platform rejected the upload due to the file size limit.

Fortunately, I had already studied Git history management and repository cleanup commands during Week 1, so I applied those concepts step by step to solve the problem.

  1. Identify Large Files — First, I confirmed which file was exceeding the size limit using:
    find . -type f -size +10M
    This command searches the current directory and lists all files larger than 10MB. It helped me quickly identify the problematic PDF file inside the images folder.
  2. Remove the File from Git Tracking
    git rm --cached images/apuntesfisicauniversidaddelpacifico.pdf
    The --cached option ensures that the file is no longer tracked by Git but remains in the project folder.
  3. Clean the Repository History
    git filter-branch --force --index-filter \
    'git rm --cached --ignore-unmatch images/apuntesfisicauniversidaddelpacifico.pdf' \
    --prune-empty --tag-name-filter cat -- --all
    This command rewrites the repository history and removes all traces of the large file.
  4. Adjust Recent Commits (If Necessary)
    git reset --soft HEAD~3
    This allowed me to move back three commits while keeping my changes staged, giving me the opportunity to clean up and recommit properly.
  5. Force Push the Clean Repository
    git push origin --force --all

🌐 Building My Personal Web

Web Design Process

Creating my personal website as a portfolio was exciting, but I soon realized I had to build everything from scratch. Even though I had experience with Python and other tools, it felt like starting over again — especially since I hadn't built a website since I was 15.

To begin, I sketched the layout of the different pages to define the structure, navigation, and main sections. My goal was to create a clear template so I could easily upload weekly progress. The reason for this is that I wanted to have everything ready so that each week, as I worked on assignments and made progress on my project, I could just enter the template and write the information.

Web Template Sketch
🌐 Inspiration

For inspiration, I looked at Ofelia Sevilla's 2025 Fab Academy repository, which influenced how I organized and structured my own site in a clean and professional way.

🤖 Built with Claude — From Scratch

I did not use any pre-made template for my repository. Every page was built entirely from scratch. With the help of Anthropic's Claude, I designed and coded a custom template for the index, About Me, Final Project, and each weekly assignment page. The content, structure, and design decisions are all my own — Claude assisted in refining the code, improving clarity, and ensuring consistency across pages.

Claude AI assistant

💻 Code, Structure & Style

I chose Visual Studio Code as my editor — I had used it before for data analysis and I appreciated how it has Copilot integrated, which helped guide me while building the site.

To learn the fundamentals, I visited W3Schools. The three pillars of any webpage are simple: HTML defines the structure and content, CSS controls the visual appearance, and JavaScript adds interactivity and animations. Understanding how these three work together made everything click.

Visual Studio Code HTML Structure
Chosen Style: Warm Minimalism

The philosophy is simple: less is more, but with human warmth. Spacious layouts, a restrained color palette, soft shadows, and subtle animations — everything designed to feel approachable and clean without being cold.

My main references were Apple/macOS for its spacious minimalism, Notion for clear structure, and the YouTuber Scott Yu-jan — a front-end designer whose warm, polished style aligned perfectly with what I wanted to achieve.

Scott Yu-jan Design Reference Scott Yu-jan reference 2 Scott Yu-jan reference 3

🎨 Color Palette — hover to copy hex

Warm Background#FBF9F4
Card White#FFFFFF
Warm Light#FFE5C2
Warm Glow#FFD4A3
Accent Honey#E8B875
Accent Deep#D89A5A
Text Gray#6A6A6A
Text Dark#2A2520
✓ Copied!

HTML Important Codes That I Used

  • <!DOCTYPE html>Defines this as an HTML5 document
  • <html lang="en">Declares the site language is English
  • <html>Root element of the HTML page
  • <head>Contains meta information about the page
  • <title>Specifies the title shown in the browser tab
  • <body>Container for all visible content
  • <h1>Large heading
  • <p>Paragraph
  • <img src="images/photo.jpg" alt="description">Add images from local repository
  • <li><a href="final.html">Final Project</a></li>Create navigation links to other pages

Get in Touch