Ta Thai™Loading / 000%
Code. Design. Ship.

Loading

Preparing a focused brutalist interface for projects, skills, writing, and product work.

HCMC, VNBooting portfolio
E-COMMERCE2026Mechanical keyboard e-commerce

LACKEY

LắcKey is a full-stack e-commerce system for Vietnam's mechanical keyboard community. It supports public shopping flows, keyboard-specific product variants, guest and customer carts, checkout, SePay/VietQR and COD payments, GHN shipping, supplier inventory, admin CMS, blog content, ratings, wishlist, notifications, and Docker-based deployment.

Product detail page for selecting keyboard optionsIMG
26Data models & enums
20+Backend controllers
03Primary user roles
<300msTarget API response
01 / Product logic

Problem

Generic e-commerce sites do not model mechanical keyboard buying well: products need technical variants such as switch, layout, color, SKU, pricing and stock; customers need a smooth checkout and order lookup flow; suppliers need inventory and order visibility; admins need CMS, discounts, payment reconciliation, shipping, and operational dashboards.

Solution

The system separates a Next.js storefront from a NestJS API, then organizes commerce, product, content, payment, shipping, supplier, and admin domains around a MongoDB/Prisma data model. SePay webhooks automate bank-transfer confirmation, Redis/BullMQ handle asynchronous work, and Docker/Nginx make deployment reproducible.

02 / Extracted from report

Product Flow

The screens are grouped by the commerce journey: customers configure keyboard variants and checkout, operators manage orders and runtime workflows, then the architecture visuals show payment, data, and deployment design.

Shopping & Checkout

Customer Journey
Option selection flow for a custom keyboard buildIMG
Variant selection for switch, layout, and product attributesIMG
Checkout flow with shipping and cash payment stateIMG
Public storefront with customer support overlayIMG
Checkout and payment sequence diagramIMG

Operations & Runtime

Admin + Supplier + Backend
Admin dashboard for order monitoringIMG
Admin order detail screen for status and fulfillmentIMG
Backend runtime logs during system executionIMG
03 / Tooling

Stack & Tools

Frontend

Next.js 15 App RouterReact 19TypeScriptTailwind CSSRadix UITanStack QueryZustandnext/image

Backend

NestJS 10REST APIJWT AuthPassportRBAC GuardsDTO validationWinston loggingSwagger

Data & Commerce

MongoDBPrisma ORMRedisBullMQCartOrdersInventoryMovementDiscountsWishlist

Integrations & Infra

SePay WebhookVietQRCODGHNCloudinaryNodemailerPDFKitTelegramDocker ComposeNginx
04 / Core modules

What LACKEY Does

  • Multi-role commerce model for customers, suppliers, admins, and sales staff with JWT authentication and role-based access control.
  • Keyboard-focused catalog with categories, brands, tags, attributes, product variants, SKU pricing, stock quantities, ratings, and wishlist.
  • Checkout pipeline with cart calculation, discounts, order lifecycle states, COD, SePay webhook confirmation, idempotency, and payment event history.
  • Operational dashboards for admin and supplier workflows, including orders, low-stock reporting, inventory movements, content, customers, and blog/CMS.
01

Storefront and product discovery

A public shopping experience for keyboard buyers with home sections, product listing, category browsing, search, filters, product detail pages, custom keychain content, blog pages, and SEO metadata.

SSR pagesProduct filtersVariant displayWishlistBlog & CMS
02

Cart, checkout, and payment

A complete order flow from guest/customer cart to checkout, address selection, shipping fee calculation, discount validation, payment method selection, VietQR transfer, COD, and order completion.

Cart pricingDiscountsSePay webhookCODOrder lookup
03

Admin and supplier operations

Back-office tools let admins manage products, categories, brands, attributes, suppliers, orders, customers, ratings, site content, blog posts, discounts, and supplier accounts.

Admin dashboardSupplier dashboardInventory reportsOrder statusCMS
04

Integrations and notifications

External services handle product media, payment confirmation, shipping/tracking, transactional email, PDF invoice generation, scheduled cleanup, and real-time operational alerts.

CloudinaryGHNNodemailerPDFKitTelegramBullMQ
05 / Architecture

How It Runs

Separated client-server architecture

The Next.js client serves public and dashboard interfaces while the NestJS API owns business logic, validation, authentication, and data access through domain modules.

Commerce data model

MongoDB and Prisma model customers, users, suppliers, products, variants, carts, orders, payments, invoices, discounts, ratings, wishlist items, CMS pages, and inventory movements.

Automated payment lifecycle

SePay webhook and IPN endpoints verify payment notifications, write payment events, reconcile pending payments, and update order states while guarding against duplicated transactions.

Containerized deployment

Docker Compose coordinates the Next.js client, NestJS API, MongoDB, Redis-backed queues/cache, and Nginx reverse proxy for a repeatable production environment.

Entity relationship model for the commerce databaseIMG
SePay and order confirmation flowIMG
Checkout and payment sequence diagramIMG
System architecture and module boundariesIMG
Client-server architecture with API and data layersIMG
Frontend folder organizationIMG
Backend module organizationIMG
Docker, Nginx, MongoDB, and Redis deployment architectureIMG
06 / Screen Gallery

Full Visual Index

A compact map of every important product screen, diagram, email, and deployment visual extracted from the report.

01

Product detail page for selecting keyboard options

Featured Screen

02

Option selection flow for a custom keyboard build

Diagram

03

Variant selection for switch, layout, and product attributes

Interface Screen

04

Checkout flow with shipping and cash payment state

Diagram

05

Admin dashboard for order monitoring

Interface Screen

06

Admin order detail screen for status and fulfillment

Interface Screen

07

Public storefront with customer support overlay

Project Visual

08

Backend runtime logs during system execution

Terminal

09

Entity relationship model for the commerce database

Diagram

10

SePay and order confirmation flow

Diagram

11

Checkout and payment sequence diagram

Diagram

12

System architecture and module boundaries

Diagram

13

Client-server architecture with API and data layers

Diagram

14

Frontend folder organization

Diagram

15

Backend module organization

Diagram

16

Docker, Nginx, MongoDB, and Redis deployment architecture

Diagram

FEATURED WORK: CAPTOC + CALENTO + BLOAIBUILT FOR REAL USERSAI + WEB + PRODUCTOPEN FOR OPPORTUNITIES
LET'S WORK TOGETHERTA THAI™FULL-STACK DEVELOPERLET'S CONNECTJAPAN-FOCUSEDIMPACT-DRIVENCODE. DESIGN. SHIP.

LET'S WORK
TOGETHER一緒に作りましょう

Have an idea or project?
Let's build something amazing.アイデアやプロジェクトがありますか?素晴らしいものを一緒に作りましょう。

© 2026 Ta Thai™
Built by Ta Thai™