All projects

Aurijin

Enterprise multi-tenant CRM/ERP for the jewelry industry, managing the full order lifecycle — from order intake through multi-stage production, gram-level gold traceability, to delivery. Scale: 4 frontend apps, ~30 backend modules, 45+ data models.

Date12/2025 - 06/2026Tech
  • Next.js 16
  • React 19
  • Turborepo
  • NestJS
  • Prisma
  • PostgreSQL
  • Redis
  • BullMQ
  • Socket.io
  • TanStack Query
  • Zustand
  • Tailwind CSS 4
  • AWS S3
Aurijin

Highlights

  • Automatic gold weight logging and loss calculation across every production step — metal and gems tracked separately, using Vietnamese jewelry industry units.
  • Multi-stage Kanban production workflow (Casting → Stone Setting → Polishing → Plating → QC) with batch handover tickets.
  • Distributed locking (Redlock) to prevent race conditions when multiple workers claim tasks.
  • Immutable BOM snapshots — past orders stay unchanged even when products are repriced later.
  • Granular role-based access control with soft-delete and full audit trail.
  • Real-time chat & notifications (Socket.io) between teams across the production workflow.

About the project

Aurijin is a multi-tenant CRM/ERP system I built for the jewelry industry, from December 2025 to June 2026, as CTO & Lead Engineer — owning the architecture and personally building both backend and frontend.

The core problem is managing a jewelry order's full lifecycle: from order intake, through multiple production stages (casting, stone setting, polishing, plating, QC), to delivery — while accurately tracing gold weight loss at every step.

On the engineering side, the system uses Redlock for distributed locking so multiple workers can't claim the same task; immutable BOM snapshots so past orders stay unchanged when products are repriced later; and granular RBAC with an audit trail for a multi-role enterprise environment.

The frontend is a Turborepo (pnpm) monorepo with 4 Next.js 16 + React 19 apps sharing UI/types packages; the backend is NestJS + Prisma + PostgreSQL, using Redis for caching and Redlock, BullMQ for background jobs, and Socket.io for real-time chat/notifications.

Got questions?

I'm always excited to collaborate on innovative and exciting projects!