RESTful API with Web Scraping: My FastAPI + Flask Project

What This Project Is I built a backend that scrapes websites, stores data in PostgreSQL and MongoDB, and exposes REST APIs through FastAPI and Flask. I made it as a portfolio piece — something I could demo and actually run on my machine. 1. What Does This Project Do? (Simple Explanation) This project is a data aggregator backend. It can: Scrape product or article data from websites Store that data in two databases (PostgreSQL for structured data, MongoDB for flexible logs) Expose REST APIs so other apps can create, read, update, and delete data Call external APIs and return the results You can think of it as: ...

March 7, 2026 · 7 min · Saad

Gentoo Install: What I Did on My Laptop

Why I Installed Gentoo Processor: Intel Core i5 4th Gen (4 cores) RAM: 8GB Storage: 256GB SSD I’ll be using the Minimal ISO because I like full control over my system, but if you prefer a GUI installer, that’s totally fine too! Step 1: Grab the Gentoo ISO Head over to Gentoo’s official website and download the ISO. You’ll see two options: GUI Installer (if you want an easier time) Minimal (CLI) Installer (if you want to go full pro mode) For this guide, we’re going Minimal. Let’s get our hands dirty! ...

December 3, 2022 · 3 min · Saad

Odoo on Ubuntu: How I Installed It

What I Did I installed Odoo (open-source ERP) on Ubuntu for a project. These are the exact steps I ran — all apt commands on Ubuntu. sudo apt update && sudo apt upgrade Create an Odoo User Run this command to create a system user for Odoo: sudo adduser -system -home=/opt/odoo -group odoo Install PostgreSQL Odoo needs PostgreSQL as its database, so install it with: sudo apt-get install postgresql -y Create a PostgreSQL User for Odoo sudo su - postgres -c "createuser -s odoo" 2> /dev/null || true Install Python Dependencies Odoo requires some Python packages. Install them with: ...

August 11, 2022 · 2 min · Saad

ProFTPD on Ubuntu: Setting Up FTP

What I Set Up I needed a simple FTP server on Ubuntu for file transfers. ProFTPD did the job. This is my setup — on Arch you’d install with sudo pacman -S proftpd and edit the same config path. Plain FTP is not encrypted. For anything serious, use SFTP over SSH instead. Installing ProFTPD Getting ProFTPD set up is pretty simple. Just run: sudo apt-get install proftpd Configuring ProFTPD Once it’s installed, you’ll need to tweak the config file. Open it up with: ...

August 7, 2022 · 2 min · Saad

VoIP with Asterisk: My Home Phone Setup on Ubuntu

What I Built I set up a home VoIP system using Asterisk as the server and Twinkle as the softphone client. Everything here runs on Ubuntu — same network, two extensions, calls between machines. How VoIP Works VoIP sends your voice as data over the internet instead of through a phone line. Cheaper than landlines, especially for long-distance — that’s why I tried it. Asterisk as the Server Asterisk is the PBX — it handles call routing between extensions. I compiled it from source on Ubuntu. ...

August 2, 2022 · 3 min · Saad

Dual Boot Ubuntu and Windows: What I Did

Why I Dual-Booted I needed Windows for some things and Linux for everything else. Instead of picking one, I installed Ubuntu alongside Windows on the same machine. This is the process I followed. Steps to Dual Boot Ubuntu with Windows Step 1: Prepare a Bootable USB Drive Download the latest Ubuntu ISO from the official Ubuntu website. Download and install Rufus or balenaEtcher to create a bootable USB. Insert a USB drive (at least 8GB) into your computer. Open Rufus or balenaEtcher: Select the Ubuntu ISO file. Choose the USB drive. Click “Start” to create the bootable drive. Step 2: Configure BIOS/UEFI Settings Restart your computer and enter BIOS/UEFI by pressing a specific key (usually F2, F12, Del, or Esc) during startup. Look for Boot Order/Boot Priority and set the USB drive as the first boot device. Disable Secure Boot (if enabled) under the Security tab. Enable UEFI mode (recommended) instead of Legacy mode. Save changes and exit BIOS. Step 3: Boot from the USB Drive Insert the bootable USB drive into your computer. Restart the system and press the Boot Menu key (F12, F9, Esc, or as per your motherboard). Select the bootable USB drive from the list. Press Enter to boot into Ubuntu Live. Step 4: Try or Install Ubuntu Once the Ubuntu installer loads, you will see two options: Try Ubuntu – Runs Ubuntu without installing it. Install Ubuntu – Proceeds with the installation. Click on Install Ubuntu to continue. Step 5: Select Keyboard Layout Choose your preferred keyboard layout and language. Click Continue. Step 6: Connect to Wi-Fi (Optional) Select your Wi-Fi network. Enter the password and click Continue. Step 7: Choose Installation Type Select Normal Installation (recommended). Check the box Install third-party software for graphics and Wi-Fi hardware, Flash, MP3, and other media. Click Continue. Step 8: Choose Installation Method Select Something else (for manual partitioning). Click Continue. Step 9: Create Partitions for Ubuntu Ubuntu requires three main partitions: ...

August 13, 2021 · 3 min · Saad

Hugo: The Static Site Generator I Use for This Blog

Why I Picked Hugo I wanted a blog that loads fast, doesn’t need a database, and lets me write posts in Markdown. Hugo does exactly that — it builds plain HTML files from my content, and I host them on GitHub Pages. No WordPress, no PHP, no MySQL. Just markdown files and a hugo command. What I Like About It Fast builds — my whole site compiles in under a second Markdown posts — write in any editor, commit to Git Themes — I’m using PaperMod GitHub Pages — free hosting, deploys on push How I Set Up Hugo 1. Install Hugo On Arch Linux sudo pacman -S hugo On Ubuntu sudo apt update sudo apt install hugo Or install the extended edition from the official release page (recommended for themes that use Sass): ...

December 3, 2020 · 4 min · Saad

My First Post

Hello — this is my first blog post on Hugo. I set this site up to document what I’m learning as I go. More posts coming soon.

September 15, 2020 · 1 min · Saad