Selected work
Desktop Tool · ElectronTypeScript · Electron · React · Node.js

ITC Market Tracker

Real-time commodity futures dashboard with live CBOT/CME tracking, Discord webhook automation, cron scheduling, sparkline charts, and neon terminal UI

A desktop commodity trading dashboard that pulls live futures prices from CBOT and CME exchanges and automatically posts formatted market updates to Discord via webhooks on a configurable cron schedule.

Role — Solo developer
  • Electron
  • React
  • Vite
  • Tailwind CSS
  • Express.js
  • node-cron
  • axios
  • Cheerio
  • SQLite
  • Node.js

Built with Electron + React (Vite + SWC) as a monorepo workspace spanning three main packages: a React frontend renderer with Tailwind CSS, an Express.js backend server handling market data fetching and Discord posting, and a Node.js C++ addon for Windows-specific window chrome customization. The app tracks eight major commodities (corn, wheat, soybeans, soybean meal, soybean oil, live cattle, feeder cattle, lean hogs) fetching real-time or 10-minute delayed data from Barchart commodity futures pages via web scraping with Cheerio.

The scheduler runs entirely backend-side using node-cron with two independent jobs: one to fetch fresh market data on a user-configured interval, and another to post formatted Discord embeds when price data changes (or on every cycle if redundant posts are enabled). All configuration—watchlist, webhook URLs, cron expressions, scheduling mode—persists in a local SQLite database, so the app continues from where it left off across restarts.

The frontend displays contract cards with sparkline price history, volume and high/low stats, session status indicators, and a full activity log showing successful and failed fetch/post operations. The design intentionally uses a neon lime (#00ff00) on pure black 'Hacker Legacy Pro' aesthetic with a canvas grid background, monospace fonts, and high-contrast accessible UI that's distinctly terminal-like yet fully functional.

What's notable
  • Live Barchart futures scraping with fractional price parsing (e.g., '418-4' → 418.50) and fallback to decimal notation
  • Independent backend-side scheduler running cron jobs on configurable intervals—persists across restarts via SQLite; frontend is UI only
  • Sparkline price history with fetch point markers, canvas-based rendering at native device pixel ratio, responsive container sizing
  • Discord embed preview + test connection before enabling; formatted color-coded messages with arrows (↑/↓) for price movement
  • Neon lime terminal aesthetic with Tailwind CSS: pure black background, glowing text, monospace fonts, high-contrast focus rings; Windows 11 native border suppression in Electron