principles & Practices, Project management

cat banner

Sketching my final project

For my final project, I have decided to create an automatic cat feeder. I chose to do this because I currently face a problem with my three cats, each leading different lifestyles. Gumball has breathing issues and spends most of his days sleeping indoors. Pipoca (meaning popcorn in Portuguese) is the "wild" one who rarely stays indoors, enjoying exploring the land, climbing trees, and zooming around. Lastly, we have Gary, a mix of the two, capable of being very active or spending the whole day relaxing with Gumball. The three cats have varying food consumption patterns, and some tend to overeat due to different feeding times after we've fed them.

Project Management

Introduction

At the moment, Gumball and Gary are not at a healthy weight, while Pipoca is maintaining a healthy condition. If I start feeding one less, they end up eating each other's food. To address this issue, my solution is a modular cat feeding station. Each cat will have a designated feeding pod accessible only to them. These feeding pods will be connected to the main body where cat food is stored and dispensed to each pod separately.

final project sketch final project sketch final project sketch

more detailed sketches for the final project

Feeding Process

The feeding process would be automatic and controlled through a mobile app, allowing me to set different amounts of food for each cat. Additionally, the cat door would be activated by a specific cat collar, ensuring that it only opens for the designated cat. This system not only prevents my cats from overeating but also safeguards their food from other animals, avoiding disturbances during their meals. I live in an area where the cats are fed outside, elevated to prevent interference from dogs. However, birds and wasps in the summer still linger around their food.

My final project idea was heavily inspired by Pamela Martello's final project, where she made a cat door that only allows her cat to enter through it via his collar, and Toni F. Barreiros's final project, an automatic cat feeder that uses an Archimedes screw to dispense food.

Time management and spiral development

This is how I plan to manage my tasks to make my final project a reality. I want to incorporate everything I will learn into my project.

Project Setup

Downloading Linux, VS Code, WSL

First, I installed Ubuntu through the Microsoft Store.

download linux

Then I had to enable the Windows Subsystem for Linux. I did this by opening "Windows Features on or off" and selecting to turn on the feature "Windows Subsystem for Linux". After making this change, I had to reboot my computer to finish installing.

After this, I used Windows PowerShell to install Ubuntu with the command "wsl --install ubuntu".

Next, I installed Fish with the command "sudo apt install fish".

After I installed Fish, I started to familiarize myself with the commands on Ubuntu. I did this by making a few directories with the command "mkdir" and then the name of the directory. In my case, I called it Fab Academy.

I also tested out how to make a webpage through the terminal with the command "nano" to edit the file and "cat" to display what I wrote.

I'm not quite sure why some of the letters got messed up, but it still worked to help me learn. Lastly, I installed VS Code with the command "sudo snap install code --classic".

Installing Git

I installed Git with the command "sudo apt install git".

Next, I configured my email (use the email registered in your GitLab), username, and password.

Next, I used the command "cat ~/.ssh/id_rsa.pub" to retrieve the SSH key generated. Lastly, I copied this key to my GitLab account.

In this last step, I cloned my repository from GitLab and opened it in VS Code with the command "cd" to enter the directory where I saved the file and "code ." to open the file in VS Code.

Webpage

After searching through the Fab Academy index, I found a type of webpage I liked and a few pages that inspired me. Here are a few of my favorite web pages, and also useful ones. I also used W3Schools for certain HTML and CSS functions, and to fix bugs I consulted other sites and used the "inspect" option to compare my code to another. Something that also really helped me with fixing bugs is GitHub's Copilot and Chat GPT to correct my spelling and translate certain sentences.

Installing ncdu

I'm installing ncdu through Windows Terminal Preview. ncdu is a disk usage analyzer on remote systems, it is useful because it allows me to check the size and how much space each of my directories and files are taking up, this will help me save space on the server, and have a faster working website, as I'll be able to find and compress large files.

  1. I started with the command "sudo apt install ncdu"
  2. Next, I used the command on terminal preview "ncdu" to start ncdu. ncdu will open and with the up and down arrows, and the enter key I can navigate through my directories and files

Installing git

Before installing anything, on terminal preview I used the command "sudo apt update && sudo apt upgrade". The command "sudo apt update" in the terminal updates the package lists for available software packages, ensuring that your system has the latest information about them. However, it does not actually install or upgrade any software packages on your system. Following that, the command "sudo apt upgrade" is used to upgrade and install the packages on your system to their latest versions. This command downloads and installs the updated versions of the packages that were identified during the update process. So, the sequence "sudo apt update && sudo apt upgrade" is a way to keep your system up-to-date by first updating the package information and then upgrading the installed packages to their latest versions.

I installed git with the command "sudo apt install git".

Next, I configured my email (use the email registered in your GITLAB), username, and password.

Next, I used the command "cat ~/.ssh/id_rsa.pub" to retrieve the SSH key generated. Lastly, I copied this key to my GitLab account.

In this last step, I cloned my repository from GitLab and opened it in VS Code with the command "cd" to enter the directory where I saved the file and "code ." to open the file in VS Code.

Webpage

After searching through the Fab Academy index, I found a type of webpage I liked and a few pages that inspired me. Here are a few of my favorite web pages, and also useful ones. I also used W3Schools for certain HTML and CSS functions, and to fix bugs I consulted other sites and used the "inspect" option to compare my code to another. Something that also really helped me with fixing bugs is GitHub's Copilot and Chat GPT to correct my spelling and translate certain sentences.

Installing ncdu

I´m installing ncud through windows terminal preview, ncud is a disk usage analyzer on remote systems, it is usefull because it allows me to check the size and how much space each of my directories an files are taking up, this will help me save space on the server, and have a faster working website, as I´ll be able to find and compress large files.

  • 1. I started with the command "sudo apt install ncdu"
  • 2. next I used the command on terminal preview "ncdu" to start ncud. ncud will open and with the up and down arrows, and the enter key I can navigate through my directories and files
  • Image compression

    I used GIMP and the add-on BIMP to compress my images, since I can edit multiple images all at once. To install BIMP, I ran into a few problems. Since I decided to download GIMP through the Microsoft Store, the installation of BIMP didn't work. It only worked after I reinstalled GIMP directly from the web.