Duong Dinh Dai — Live Portfolio Demos

Self-hosted demo environment for two production systems I built and operate solo. Architecture docs: github.com/daiduong-eth → portfolio/

Xóm Data — Job Board + Data Pipeline ● LIVE

Automated job-data pipeline: Node.js crawler on a 30-minute cron ingests jobs into MySQL with idempotent upserts and self-healing backfill, feeding a Next.js job board. Seeded with real production data; the crawler keeps ingesting live.

Next.js 15PrismaMySQL 8Redisnode-cronDocker

CrystalShop — Dual-Currency Ledger Platform ● LIVE

License-key rental platform with a dual-currency ledger (paid Crystal / earned Shard), concurrency-safe money mutations, RBAC + audit-logged admin, and DoD/WoW/MoM metric dashboards. Seeded with demo data.

Node.js 20ExpressPostgreSQL 16RedisReact 19Docker

Admin demo login: demo@crystalshop.io / DemoAdmin@2026

Data Catalog — OpenMetadata ● LIVE

Self-hosted OpenMetadata instance cataloging both demo databases (MySQL + PostgreSQL): browse schemas, tables, and column-level metadata the way a data team would — ingested via the OpenMetadata CLI workflows.

OpenMetadata 1.13ElasticsearchPostgreSQLmetadata ingestion

Login: admin@open-metadata.org / DemoAdmin@2026

Demo data only — production runs elsewhere. Everything here is Docker Compose on a 2 vCPU / 4GB VPS behind Caddy (automatic HTTPS). Contact: daiduong.eth@gmail.com · GitHub · LinkedIn