Inspected Korean cars, verifiable history, bought from anywhere.
A Korea-to-worldwide used-car export marketplace in four languages, with public VIN verification and a gamified community.
- ROLE
- Full-Stack Engineer
- COMPANY
- HM Group
- TIMELINE
- MAR — AUG 2026
- SCOPE
- Full-stack build · Admin panel · Deploy pipeline
- STACK
- 4 LANGUAGES
- PUBLIC VIN CHECK
- KRW + LIVE USD
- GAMIFIED COMMUNITY
Overseas buyers need to trust a car they will never see before it ships.
AutoAuction helps buyers in Central Asia purchase inspected Korean vehicles — ready to drive or crashed-with-parts — from licensed Korean dealers. Buyers browse a filterable catalog, verify any car’s history through a public VIN checker backed by real sale records, and book consultations that admins track through a request pipeline.
Built solo: a Node.js + Express + TypeScript REST API with MongoDB, session-based auth and an EJS admin panel; a React 18 + TypeScript frontend with Redux Toolkit, MUI and react-i18next; Cloudinary media; deployed on Railway behind Cloudflare.
Public VIN verification
Anyone — a customs officer, a bank, a second-hand buyer — can confirm a car was really sold through the platform, with buyer, price and date.
Export-shaped catalog
Search, brand filters, sorting and pagination split into “Ready to drive” and “Crashed”, the way export buyers actually shop.
Live USD estimates
Prices in KRW with a USD estimate from a currency service cached in memory for 6 hours.
Frictionless consultations
Guests inquire on any car without an account, via WhatsApp, Telegram, email or a call.
Gamified community
Points for signup, daily login, views, likes, comments and posts, with a public Top-Users leaderboard.
Four languages
English, Korean, Russian and Uzbek, modeled for translation from one source instead of duplicated per language.
One Express app, two clients, two auth strategies.
The backend is organized as MVC: controllers delegate to service classes, and Mongoose schemas own the data layer. The React SPA consumes a REST API with a JWT in an httpOnly cookie, while the admin panel is server-rendered with EJS under its own subdomain, using express-sessions persisted in MongoDB so admins stay logged in across deploys behind Railway’s proxy.
Car images upload through Multer straight to Cloudinary. Everything runs as a multi-stage, non-root Docker image on Railway with /health probes, and the SPA is deployed separately as a static build.
Designed to bring back a buyer base that transacts rarely.
A server-rendered control panel for listings, inventory and the end-to-end export workflow.
Catalog management
Up to 10 Cloudinary images per car, rich specs, and single-price or range pricing.
Sale recording
Marking a car SOLD with buyer, price and date is what powers public VIN verification.
Export pipeline
Listing, inspection, payment and shipping status, so buyers abroad can track a vehicle after purchase.
Consultation triage
Pending → In Progress → Resolved / Cancelled, with assignment and admin notes.
Community & members
Publish news, moderate the community and manage member accounts.