Skip to main content
Charles Tsoi

Production showcase

Live deployments, repos, and how they connect

Curated production details for projects I've shipped — URLs, architecture, clone steps, and API endpoints. Expand a section during screen-share; add live URLs in this file as you deploy more.

3 live · 3 repo-only — click a project to expand details

LungLens

Live

Frontend: github.com/Charleschtsoi/LungLens → live at lunglenshk.vercel.app · Backend: lunglens-backend → charleschtsoi-lunglens-backend.hf.space

LungLens results view — chest X-ray with AI attention maps and pipeline model summary showing pneumonia analysis

Full-stack AI product in production: Next.js on Vercel, BFF routes for async jobs, inference on Hugging Face — same PoC-to-production shape as enterprise work.

frontend

Frontend (Next.js app)

Contains

  • UI, upload flow, results
  • Next.js BFF routes (/api/analyze/jobs, /api/health, etc.)

Does not contain

  • Full ML weights or production inference (see backend repo)

Clone frontend

git clone https://github.com/Charleschtsoi/LungLens.git
cd LungLens
npm install
cp .env.example .env.local
npm run dev   # http://localhost:3000

backend

Backend (production ML API)

Contains

  • FastAPI server, model loaders
  • POST /api/v1/analyze
  • Async jobs: POST/GET /api/v1/analyze/jobs
  • Health endpoints

Clone backend

git clone https://github.com/Charleschtsoi/lunglens-backend.git
cd lunglens-backend
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
uvicorn main:app --host 127.0.0.1 --port 7861

How they connect (production)

Browser talks to Vercel; BFF proxies and polls the Hugging Face inference API.

Browser → https://lunglenshk.vercel.app
Vercel BFF (/api/analyze/jobs + polling)
→ https://charleschtsoi-lunglens-backend.hf.space

Environment variables

NameValue / notes
BACKEND_API_BASE_URLhttps://charleschtsoi-lunglens-backend.hf.space (Vercel env)
BACKEND_API_KEYSame as HF Space API_KEY — share privately, not in GitHubsecret

Sample backend inside frontend repo

LungLens/backend/main.py in the frontend repo is a lightweight sample only (Gemini health-check + generate-questions). It is not production inference — no full /api/v1/analyze ensemble. Teammates doing real uploads should use lunglens-backend, not only the monorepo backend/ folder.

Art Globe

Live

Interactive global art discovery experience with map-based exploration — live on Vercel with source available on GitHub.

Art Globe preview showing an interactive Earth visualization with museum artwork markers across regions

A visual web experience that maps artworks and artists geographically for exploratory storytelling — useful proof of product thinking plus frontend execution.

frontend

Frontend (interactive web app)

Contains

  • Interactive globe-based exploration UI
  • Artwork and artist discovery by geography
  • Production deployment for live demo access

How they connect (production)

Browser-only interactive frontend deployed on Vercel.

Browser → https://art-globe.vercel.app/ (Vercel deployment)

Hermes (ExpiryScanner)

Repo only

github.com/Charleschtsoi/Hermes — React Native + Expo mobile app with barcode scanning, GPT-4o-mini product analysis, and Supabase backend.

Full mobile product loop: camera scan → AI identification → shelf-life estimation → push notifications. Same product discipline as enterprise, at app scale.

frontend

React Native / Expo app

GitHubCharleschtsoi/Hermes
Branchmain

Contains

  • Barcode scanning (EAN13, UPC, QR)
  • AI product analysis via OpenAI GPT-4o-mini
  • Supabase auth, inventory, and push notifications

Clone

git clone https://github.com/Charleschtsoi/Hermes.git
cd Hermes
npm install
npx expo start

AI Agent X-Ray

Repo only

github.com/Charleschtsoi/ai-agent-xray — Interactive visualization of LLM tool-calling flow with guardrail toggles.

Side-by-side chat and x-ray panel showing agent steps — tool routing, token usage, guardrails. Built to explain agent architecture to non-engineering stakeholders.

frontend

Single-file interactive demo

Contains

  • Chat + tool-calling flow visualization
  • Guardrail toggle demo
  • Token and step-by-step x-ray panel

Open locally

git clone https://github.com/Charleschtsoi/ai-agent-xray.git
cd ai-agent-xray
open ai-agent-xray.html   # or serve with any static server

Product Tax Deduction Log

Live

React Native + Expo mobile app for tracking tax-deductible expenses — now live on the Hong Kong Apple App Store.

HK Tax Deduction Log app listing preview with icon and title in the Hong Kong App Store

A production mobile app now live in the Hong Kong App Store. It helps users capture and organize deductible expenses throughout the tax year.

frontend

React Native / Expo app

Contains

  • Product purchase logging
  • Tax deduction tracking and categorisation
  • Live in Hong Kong Apple App Store

Region

Published on the Hong Kong Apple App Store.

Motion Resume (this site)

Repo only

github.com/Charleschtsoi/resume — Apple-style narrative resume with presenter mode. Add Vercel live URL when deployed.

This site — scroll narrative, presenter mode, curated work and production showcase. Meta proof of presentation-first product thinking.

frontend

Next.js resume site

GitHubCharleschtsoi/resume
Branchmain

Contains

  • Homepage narrative, presenter mode
  • /work curated GitHub
  • /showcase production deployments

Clone

git clone https://github.com/Charleschtsoi/resume.git
cd resume
npm install
npm run dev   # http://localhost:3000

Deploy

Import repo at vercel.com/new or run npx vercel --prod. Add live URL to liveLinks when ready.