Skip to content
Clinton Jay Ramonida

03myGarage

Saved vehicles, viewing history and price-drop alerts, stored so a shopper’s list still makes sense across dealer sites, even after a vehicle sells.

The MyGarage page on the AutoSync demo: two viewed vehicles with price alerts, and the garage drawer open beside them
Fig. 01autosyncmotors.com/garage/viewed
Period
2019 · Convertus, on the Tadvantage platform
Role
Full-stack engineer
Reading
1 min
01

The constraint

A shopper saves a handful of vehicles, comes back a week later, and expects the list to still make sense. Meanwhile the inventory has moved on: vehicles sell and prices change. A saved list that stores a snapshot of each vehicle is out of date within days.

02

A reference, not a copy

myGarage stores an advertisement ID against the user instead of the vehicle’s details. A price alert keeps the price from when the alert was set next to the current one, so the comparison stays live. When a vehicle sells or is withdrawn, the garage handles it the way a normal browsing session would, because nothing in the record depends on the vehicle still existing.

03

Why it lives outside any one dealer site

On Tadvantage each dealer has its own WordPress site, but a shopper’s garage has to follow them from one dealer site to another on the same platform. So the garage tables (saved vehicles, viewing history, price alerts, and a user record keyed to the platform’s VMS identity) live in their own AWS RDS database, reached through a singleton connection, instead of in any one dealer site’s WordPress tables. That one decision is what makes the rest of the feature possible. Without it, a garage would be stuck on whichever site the shopper landed on first.

  1. Dealer site A
  2. Shared AWS RDS: garage database
  3. Dealer site B
04

Closing the loop: price alerts

A Node.js service reads the alerts table, compares each stored price with the current price from the platform’s vehicle-management service, and sends a bilingual HTML email when a watched vehicle drops, with unsubscribe handling and monitoring for failures. The front end is Vue inside Tadvantage and the back end is Node, sharing one database so there’s only ever one source of truth for a price. I built this with a colleague.

  1. garage.alerts_vehicle
  2. Node price-check service
  3. Bilingual email + unsubscribe
05

What I’d do differently

Nobody instrumented save, remove and viewed events, so I can’t tell you how many shoppers used it. It’s the same gap I name in the Tadvantage case study. The design holds up, but the adoption data was never collected, and next time I’d set that up before shipping.

06

Stack

  1. PHP01
  2. MySQL02
  3. AWS RDS03
  4. Node.js04
  5. Vue.js05