Week 1:

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.

HigiBox Final Project Final Project Sketch Git Explanation

Assignments

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.

Principles and 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, aimed at 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 actively contributing to the reduction of 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:

I am a Fab Academy student, responsible for:

Signed by committing this file in my repository,
Micaela Lucrecia Córdova Carmelino

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:

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

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
2

Add your Git username and set your email address:

git config --global user.name "YOUR_USERNAME"

git config --global user.email "jSmith@mail.com"

3

Check if you have an SSH key already:

cat ~/.ssh/id_rsa.pub

4

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.

5

Copy your SSH key — use clip < ~/.ssh/id_rsa.pub (Ctrl + C does not work in Git Bash).

6

Log in to your GitLab account (provided by Fab Academy) and go to your profile.

7

Navigate to Edit Profile → User Settings → SSH Keys to reach the key configuration page.

Git Bash terminal Git Bash terminal
8

Add the copied SSH key to your GitLab profile — follow these four steps inside GitLab:

a.

Enter your GitLab account provided by Fab Academy

GitLab Step a
b.

Go to your profile and click on Edit profile

GitLab Step b
c.

Go to User Settings → SSH Keys

GitLab Step c
d.

Add a new key and paste the SSH key copied from Git Bash

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").

Opening Git Bash Open Git Bash Here
3

Clone the site using your repository link:

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

Repository 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.html Stages only that specific file, even if you changed 10 others
git add public/name Used 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 push Uploads 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 pull — Download the latest copy of the repository
  • git merge — Merge a working copy
  • git rm — Remove a tracked file
  • git mv — Move or rename a file
  • git status — See what changed or current status
  • dir — View contents of a directory
  • ls — View files as a list
  • cd — Know which directory you're in
  • cd Name — Move between directories
  • mkdir — Create a new directory

Requirements for Submitted Files

⚠️ 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.

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

Once I located the file, I removed it from Git tracking without deleting it from my local machine:

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

Since the file had already been committed, simply removing it was not enough. I needed to remove it from the entire commit 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)

Before finalizing everything, I reviewed my recent commits and reorganized them using:

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

Because the history was rewritten, I needed to force push the updated 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.

Claude AI assistant
🤖 Built with Claude

I am developing my website with the assistance of Anthropic's Claude. However, the content comes entirely from my own experience and learning process. Claude supports me in refining the structure, improving clarity, and presenting my information effectively.

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

Any questions? Let's Contact

  • micaela.cordova.carmelino@gmail.com
  • ml.cordovac@alum.up.edu.pe
follow me: