Back to Home

Promotions Aggregator (Single-Mall MVP)

Node.jsTypeScriptREST APIWeb ScrapingPostgreSQLReact/Next.jsTailwind CSS
RoleLead AI Automation Engineer
OutcomeConverted unstructured mall promotion listings into a structured, filterable promotions platform with API-driven access and enriched brand metadata.

Promotions Aggregator (Single-Mall MVP)

Video walkthroughhttps://www.loom.com/share/12e42752e983406f906a1a43cccfea68Githubhttps://github.com/tesddev/promo-aggregator
Promotion Grid ViewBrand Grouped View

Overview

Built a specialized data aggregation platform designed to scrape and organize promotion data from a single mall portal. The system replaces manual browsing of mall websites with a typed REST API and a clean, searchable user interface, allowing users to find offers by brand or category instantly.

Problem

Mall promotion portals are often designed for browsing, not for data consumption. They suffer from:

  • Unstructured HTML that makes automated tracking difficult.
  • No centralized API for third-party integration.
  • Poor searchability and lack of advanced filtering.
  • High friction for users trying to compare offers across different brands in the same mall.
  • Solution

    Developed a complete data pipeline from ingestion to presentation:

    1. Web Scraping Layer: Implemented a robust scraper using Node.js and TypeScript that targets the mall's promotion portal, handling dynamic content and pagination.

    2. Structured Storage: Designed a PostgreSQL schema to store offer details, brand metadata, and validity dates, ensuring data integrity and fast query and performance.

    3. Typed REST API: Exposed the data through a strictly typed API, providing endpoints for searching, filtering by brand, and paginated results.

    4. Searchable UI: Built a frontend with React and Next.js that allows users to filter promotions in real-time, with brand-grouped views for better discoverability.

    Stack

  • Node.js & TypeScript — backend orchestration and scraping logic
  • PostgreSQL — relational data storage for promotions and brands
  • REST API — typed endpoints for data delivery
  • React / Next.js — frontend UI and server-side rendering
  • Tailwind CSS — responsive and modern styling