Admin dashboard for an online art store: products, inventory, orders, and campaign analytics.

Running an online store means managing products, inventory, orders, campaigns, and media across tools that rarely connect. Glam Gallery consolidates every operational concern into one admin interface, with each module handling exactly one operational domain.
The design prioritizes clarity and structured data. Clean module separation means admin users work inside one context at a time, without visual competition from unrelated data.

Admin tools get cluttered because they try to surface everything at once. The goal was clean module separation: one section per operational concern, with layout that makes the current context immediately clear.

Built modular, with each management section owning one operational area. Products, orders, analytics, and media are independently navigable without visual competition between modules.

One module per operational domain
Admin interfaces get cluttered when modules share layout and compete for attention. Each concern (products, inventory, orders, campaigns, traffic, media) is a self-contained section with its own data layer. This made it possible to scope access per module and extend any section without touching the rest of the codebase.
PostgreSQL over a document store for product data
Products have variants, collections, inventory levels, and order relationships. The join complexity of product → variant → order → customer maps naturally to relational tables. A document store would have required significant denormalization to support the filtering and reporting queries the analytics module needs.
Shadcn UI for data tables and status systems
Six admin modules each needed consistent data tables with sorting, filtering, status badges, and pagination. A shared table primitive from Shadcn ensured visual consistency across modules without re-implementing table behavior six times.
6
Admin modules
6
Order status states
24
Campaigns tracked
Folder-based
Media organization

