All projects

Aurijin

A management system for jewelry businesses, with many businesses sharing one platform — tracking the full order lifecycle from intake, through multi-stage production and gram-level gold tracing, to delivery.

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

  • Automatically logs gold weight and calculates loss at every production step — metal and gems tracked separately, in Vietnamese jewelry industry units.
  • A Kanban-style production workflow (Casting → Stone Setting → Polishing → Plating → Quality check) with batch handover tickets.
  • Two workers can never accidentally claim the same task, even when they tap at the same moment.
  • Past orders keep their original details even when products are repriced later.
  • Detailed role-based permissions; every change leaves a history, and deleted data can be restored.
  • Real-time chat and notifications between teams across the production workflow.

About the project

Aurijin is a management system I built for the jewelry industry, from December 2025 to June 2026, as CTO & Lead Engineer — owning the architecture and personally building both the interface and the server side.

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

The system serves many roles within one business, and many businesses on one platform — so permissions, change history, and ticketed handovers between teams were built carefully from day one.

Under the hood

  • The frontend is a Turborepo (pnpm) monorepo with 4 Next.js 16 + React 19 apps sharing UI/types packages; TanStack Query + Zustand for state.
  • The backend is NestJS + Prisma + PostgreSQL with a multi-tenant architecture — around 30 modules and 45+ data models.
  • Redlock (Redis) for distributed locking, preventing race conditions when multiple workers claim the same task.
  • Immutable BOM snapshots stored per order, so past orders stay unchanged when products are repriced.
  • Granular RBAC with soft-delete and a full audit trail for a multi-role enterprise environment.
  • Redis for caching, BullMQ for background jobs, Socket.io for real-time chat/notifications, and images on AWS S3.

Got questions?

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