Dino Fizzotti

Engineer, maker, hacker, thinker, funner.

Oct 14, 2018 - 3 minute read - Comments - Software Python

CarbAlert - Part 1: Let Your Next Laptop Find YOU!

This is part 1 of a 4 part series of articles where I explain how I discovered and purchased my laptop by building a web application which scrapes a local PC parts forum and sends automated email alerts when posts featuring specific keywords appear:

CarbAlert on GitHub: https://github.com/dinofizz/carbalert

TL;DR

Web inbox

CarbAlert is a web application which scrapes a local (South African) second-hand computer parts forum for new posts offering laptops featuring keywords of interest (specifically the first page of the “laptops” forum) I'm using Django for the admin console and database/ORM integration, Scrapy for web-scraping, Celery for task management, Flower for task monitoring and Mailgun for sending out alert emails. I am using Docker to manage and run the containers which make up the CarbAlert application.

Find the code here: https://github.com/dinofizz/carbalert

Problem

I needed a new laptop. I have various “work laptops” that don't belong to me, but my personal laptop was a 2011 HP Pavilion dv6 with a 2nd gen i7 and a 1366x768 display. Over the years I had bought a new battery, swapped out the spinning disk for an SSD, added an additional RAM module and even once replaced a faulty fan. I was starting to miss having a decent portable computer of my own. I was lugging out the HP every now and then, but the battery life was (again) non-existent and the screen was proving to be inadequate after years of getting used to 1080p+ displays on the work laptops.

Desirable Specs

These are the things I was looking for in a laptop:

  • 7/8 gen i5/i7
  • 13”/14”/15” 1080p display
  • 16 GB RAM minimum
  • 256 GB SSD minimum
  • NVMe SSD would be great
  • Integrated graphics
  • Good battery life
  • Linux friendly components/driver availability
  • Budget ~R15000 (~$1100)

After watching a bunch of YouTube reviews I narrowed my search down to the Lenovo T4xx and T5xx Thinkpad series laptops, and Dell 5xxx, 7xxx and XPS series laptops.

But where to find a nice laptop for a decent price?

Carbonite

Carbonite is a South African tech classifieds forum where people buy, sell and discuss all things PC hardware related (and more!). The site features a reputation based buy/sell/trade system where individuals and resellers exhibit their wares.

After getting my feet wet buying a few PC components and getting a feel for the reputable laptop resellers, I decided the “Laptops” forum would be the place to sit and wait for a good deal to come by.

Carbonite Carbonite

For a few weeks I checked the forum daily, and found myself often refreshing the first page of posts when idle on my phone, or when waiting for builds at work. A few times a great candidate laptop sale was posted, and I excitedly clicked through only to find that the last post in the thread read “Sold.” :(

And then I realised I don't have to be the one checking the forum every day.

Solution

CarbAlert is a web app I put together which periodically checks the Carbonite laptop forum and scans posts for keywords of interest to me. CarbAlert sends me an email with the post details when it finds a new post matching one or more of the keywords.

OK honestly the motivation to build this was only partly inspired by my laziness to check the forum. I really enjoy learning new technologies/frameworks/APIs by writing small apps and tools. There are probably better ways of accomplishing my end result, but I had a great time learning new things, trying the wrong things and breaking perfectly working things in the process of finding a new laptop for myself :)

Next post in series: Part 2: Django and Scrapy